Commit cd60f498 authored by Eric Timmons's avatar Eric Timmons
Browse files

Only sync the necessary releases of a quicklisp dist

parent 795a7979
Pipeline #975 passed with stage
in 10 minutes and 12 seconds
......@@ -61,7 +61,7 @@
(declare (ignore c))
(when (find-restart 'sync-and-retry)
(log:info "Syncing source and retrying")
(invoke-restart 'sync-and-retry)))))
(invoke-restart 'sync-and-retry c)))))
(setf lockfile (read-lockfile lockfile-pathname)))
(progn
;; The lock file doesn't exist. Create it!
......
......@@ -48,6 +48,13 @@
;;;
;;; The data for Quicklisp distributions is stored in a sqlite database.
;;; * Quicklisp conditions
(define-condition quicklisp-version-missing (source-no-such-object)
((missing-version
:initarg :missing-version)))
;;; * Quicklisp backed source
......@@ -137,15 +144,18 @@
:project-name project-name
:dist-version-id version-string)
(when error
(error 'source-no-such-object)))))
(error 'quicklisp-version-missing
:missing-version version-string)))))
(defmethod source/project-release ((source quicklisp-source) project-name version-string
&optional (error t))
(restart-case
(%source/project-release source project-name version-string error)
(sync-and-retry ()
(sync-and-retry (c)
:report "Sync source and try again."
(sync-source source)
(sync-version-list! source)
(with-source-connection (source)
(sync-version! (find-dao 'ql-dist-version :id (slot-value c 'missing-version))))
(%source/project-release source project-name version-string error))))
(defmethod source/project ((source quicklisp-source) project-name)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment