diff --git a/asdf.asd b/asdf.asd index 92f7fe3e5c6d72527fd829351b7a46f0990f49f3..14f4fd291dc4f796da64a5fa62a499fbfc43ebc7 100644 --- a/asdf.asd +++ b/asdf.asd @@ -74,7 +74,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.28.6" ;; to be automatically updated by make bump-version + :version "2.28.7" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 ;; For most purposes, asdf itself specially counts as a builtin system. diff --git a/component.lisp b/component.lisp index a00cdeb353acc895270d423e0d4f1a6e847a8d54..7f6c8ed9575251bc6f908a87a59d65eedf27bd7a 100644 --- a/component.lisp +++ b/component.lisp @@ -55,6 +55,8 @@ another pathname in a degenerate way.")) (defgeneric version-satisfies (component version)) (defgeneric component-version (component)) (defgeneric (setf component-version) (new-version component)) + (defgeneric component-parent (component)) + (defmethod component-parent ((component null)) (declare (ignorable component)) nil) ;; Backward compatible way of computing the FILE-TYPE of a component. ;; TODO: find users, have them stop using that, remove it for ASDF4. diff --git a/defsystem.lisp b/defsystem.lisp index c1540b5fa3d8980de11c2bbcec0c4b3a0cb71b44..9d8444ec4a432f5511b2bdcc96e00adc3ac89c03 100644 --- a/defsystem.lisp +++ b/defsystem.lisp @@ -189,8 +189,10 @@ (make-instance 'system :name name :source-file source-file)))) (system (reset-system (cdr registered!) :name name :source-file source-file)) - (component-options (remove-plist-key :class options))) - (apply 'load-systems defsystem-depends-on) + (component-options (remove-plist-key :class options)) + (defsystem-dependencies (loop :for spec :in defsystem-depends-on :collect + (resolve-dependency-spec nil spec)))) + (apply 'load-systems defsystem-dependencies) ;; We change-class AFTER we loaded the defsystem-depends-on ;; since the class might be defined as part of those. (let ((class (class-for-type nil class))) diff --git a/header.lisp b/header.lisp index 9efcb619259f66024617fa9588b75f6deeb885b6..a749020acead297746d82571ebe32d3bf2ff251c 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.28.6: Another System Definition Facility. +;;; This is ASDF 2.28.7: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/test/test-version.script b/test/test-version.script index 0c5d32e1a36a0dfc59bd0986999dad3b93f4977c..869496cca3dae70d3766aaaa09e9d8aa1aa6b042 100644 --- a/test/test-version.script +++ b/test/test-version.script @@ -1,23 +1,21 @@ ;;; -*- Lisp -*- +(def-test-system :versioned-system-1 + :pathname #.*test-directory* + :version "1.0") +(def-test-system :versioned-system-2 + :pathname #.*test-directory* + :version "1.1") -(progn - (def-test-system :versioned-system-1 - :pathname #.*test-directory* - :version "1.0") +(def-test-system :versioned-system-3 + :defsystem-depends-on ((:version :test-asdf/file2 "2.1")) + :pathname #.*test-directory* + :version "1.2") - (def-test-system :versioned-system-2 - :pathname #.*test-directory* - :version "1.1") - - (def-test-system :versioned-system-3 - :pathname #.*test-directory* - :version "1.2") - - (flet ((test (name v &optional (true t)) - (or (eq true (version-satisfies (find-system name) v)) - (error "no satisfaction: ~S version ~A not ~A" name v true)))) - (test :versioned-system-1 "1.0") - (test :versioned-system-2 "1.0") - (test :versioned-system-3 "2.0" nil))) +(defun vtest (name v &optional (true t)) + (or (eq true (version-satisfies (find-system name) v)) + (error "no satisfaction: ~S version ~A not ~A" name v true))) +(vtest :versioned-system-1 "1.0") +(vtest :versioned-system-2 "1.0") +(vtest :versioned-system-3 "2.0" nil) diff --git a/upgrade.lisp b/upgrade.lisp index 9c24321051dfb53fc6297e35246537dce2190296..3593adc33c71c71aa5b240a1b123c4a7ea737ae2 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5. ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 - (asdf-version "2.28.6") + (asdf-version "2.28.7") (existing-version (asdf-version))) (setf *asdf-version* asdf-version) (when (and existing-version (not (equal asdf-version existing-version))) diff --git a/version.lisp-expr b/version.lisp-expr index afdb499913293e4697ce60c0e8872083f8b34415..17fe02a28d451bf82c3f10bc74d456e671af587c 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.28.6" +"2.28.7"