File tree Expand file tree Collapse file tree 3 files changed +37
-3
lines changed
Expand file tree Collapse file tree 3 files changed +37
-3
lines changed Original file line number Diff line number Diff line change @@ -2919,7 +2919,10 @@ Since 0.2."
29192919 (clrhash considered)
29202920 (throw 'restart-planning t))
29212921 (unless (and considered-before (version-list-<= required-version considered-version))
2922- (unless (package-built-in-p package-name required-version)
2922+ (when (or (not (package-built-in-p package-name required-version))
2923+ ;; See issue 102. Do replace built-in packages with the project itself
2924+ ;; and local dependencies. See `local' below.
2925+ (and (not self) (eldev--loading-mode package-name)))
29232926 (when (eq package-name 'emacs)
29242927 (when optional
29252928 (eldev-verbose "Emacs version %s (this is %s) is %s; skipping the optional dependency"
@@ -3174,8 +3177,8 @@ for all archives instead."
31743177
31753178(defun eldev--loading-mode (dependency)
31763179 "Get loading mode of package DEPENDENCY.
3177- DEPENDENCY can be either a name (symbol) or a package
3178- descriptor ."
3180+ DEPENDENCY can be either a name (symbol) or a package descriptor.
3181+ Returns nil if it is neither a project nor a local dependency ."
31793182 (let ((dependency-name (if (symbolp dependency) dependency (package-desc-name dependency))))
31803183 (if (eq dependency-name (package-desc-name (eldev-package-descriptor)))
31813184 (or eldev-project-loading-mode 'as-is)
Original file line number Diff line number Diff line change 3636 (should (= exit-code 0 )))))
3737
3838
39+ (ert-deftest eldev-issue-102-1 ()
40+ ; ; Org is an Emacs built-in. Make sure it still can be developed with Eldev.
41+ (let ((eldev--test-project " project-fake-org" ))
42+ (eldev--test-delete-cache)
43+ (eldev--test-run nil (" eval" `(bound-and-true-p org-is-fake))
44+ (should (string= stdout " t\n " ))
45+ (should (= exit-code 0 )))))
46+
47+ (ert-deftest eldev-issue-102-2 ()
48+ (let ((eldev--test-project " dependency-org" ))
49+ (eldev--test-run nil (" eval" `(progn (require 'org ) (bound-and-true-p org-is-fake)))
50+ (should (string= stdout " nil\n " ))
51+ (should (= exit-code 0 )))
52+ ; ; Must load the local dependency if requested, even if Org is a built-in.
53+ (eldev--test-run nil (" --setup" `(eldev-use-local-dependency " ../project-fake-org" )
54+ " eval" `(progn (require 'org ) (bound-and-true-p org-is-fake)))
55+ (should (string= stdout " t\n " ))
56+ (should (= exit-code 0 )))))
57+
58+
3959; ; Not a bug, just doesn't seem to fit anywhere else. Test that
4060; ; `eldev-known-tool-packages' can be customized.
4161(ert-deftest eldev-known-tool-packages-1 ()
Original file line number Diff line number Diff line change 1+ ; ;; org.el --- Fake of an Org snapshot
2+
3+ ; ; Version: 99999999.9999
4+
5+ (defvar org-version " 99999999.9999" )
6+
7+ (defvar org-is-fake t )
8+
9+ (provide 'org )
10+
11+ ; ;; org.el ends here
You can’t perform that action at this time.
0 commit comments