diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32e52f4..743afb5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,22 +19,6 @@ "fail-fast": false, "matrix": { "exclude": [ - { - "quicklisp": "quicklisp", - "lisp": "abcl-bin" - }, - { - "quicklisp": "quicklisp", - "lisp": "clasp" - }, - { - "quicklisp": "quicklisp", - "lisp": "lispworks" - }, - { - "quicklisp": "quicklisp", - "lisp": "mkcl" - }, { "quicklisp": "quicklisp", "lisp": "ecl" @@ -46,10 +30,6 @@ ], "lisp": [ "sbcl-bin", - "abcl-bin", - "clasp", - "lispworks", - "mkcl", "ecl" ] } @@ -63,13 +43,14 @@ "steps": [ { "name": "Checkout Code", - "uses": "actions/checkout@v3" + "uses": "actions/checkout@v4" }, { "name": "Setup Common Lisp Environment", - "uses": "40ants/setup-lisp@v3", + "uses": "40ants/setup-lisp@v4", "with": { - "asdf-system": "40ants-doc-full" + "asdf-system": "40ants-doc-full", + "cache": "false" } }, { diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0409ef7..a3d4c74 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -19,13 +19,14 @@ "steps": [ { "name": "Checkout Code", - "uses": "actions/checkout@v3" + "uses": "actions/checkout@v4" }, { "name": "Setup Common Lisp Environment", - "uses": "40ants/setup-lisp@v3", + "uses": "40ants/setup-lisp@v4", "with": { - "asdf-system": "40ants-doc-full" + "asdf-system": "40ants-doc-full", + "cache": "false" } }, { diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 6f7b770..58100ab 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -19,13 +19,14 @@ "steps": [ { "name": "Checkout Code", - "uses": "actions/checkout@v3" + "uses": "actions/checkout@v4" }, { "name": "Setup Common Lisp Environment", - "uses": "40ants/setup-lisp@v3", + "uses": "40ants/setup-lisp@v4", "with": { - "asdf-system": "40ants-doc" + "asdf-system": "40ants-doc", + "cache": "false" } }, { diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 954a253..4362396 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ "steps": [ { "name": "Checkout Code", - "uses": "actions/checkout@v3" + "uses": "actions/checkout@v4" }, { "name": "Create release tag", diff --git a/40ants-doc.asd b/40ants-doc.asd index af5f91b..797d15a 100644 --- a/40ants-doc.asd +++ b/40ants-doc.asd @@ -17,6 +17,7 @@ "40ants-doc/glossary" "40ants-doc/changelog" "40ants-doc/ignored-words" + "40ants-doc/locatives/asdf-system" ;; This subsystem is not loaded by default ;; because it brings a multiple additional dependencies: ;; alexandria, cl-change-case, cl-ppcre, cl-unicode, closer-mop. diff --git a/full/doc.lisp b/full/doc.lisp index 5323fb6..cda31f2 100644 --- a/full/doc.lisp +++ b/full/doc.lisp @@ -56,6 +56,8 @@ #:locate-definition-for-emacs) (:import-from #:40ants-doc/autodoc #:defautodoc) + (:import-from #:40ants-doc/locatives/asdf-system + #:asdf-system-documentation-title) (:export #:@index #:@readme #:@changelog)) @@ -582,6 +584,8 @@ See full list of changes in the 40ANTS-DOC/CHANGELOG::@CHANGELOG section. (40ants-doc/locatives package) (system locative) + (asdf-system-documentation-title generic-function) + (section locative) (variable locative) (constant locative) diff --git a/full/locatives/asdf-system.lisp b/full/locatives/asdf-system.lisp index 9c93695..419d44e 100644 --- a/full/locatives/asdf-system.lisp +++ b/full/locatives/asdf-system.lisp @@ -18,14 +18,20 @@ (:import-from #:40ants-doc-full/commondoc/section #:make-section-with-reference) (:import-from #:40ants-doc-full/commondoc/builder - #:to-commondoc)) + #:to-commondoc) + (:import-from #:40ants-doc/locatives/asdf-system + #:asdf-system-documentation-title)) (in-package #:40ants-doc-full/locatives/asdf-system) (define-locative-type asdf:system () "Refers to an asdf system. The generated documentation will include meta information extracted from the system definition. This also serves as an example of a symbol that's not accessible in the - current package and consequently is not exported.") + current package and consequently is not exported. + + A title of the documentation section can be modified if you'll + define a method for 40ANTS-DOC/LOCATIVES/ASDF-SYSTEM:ASDF-SYSTEM-DOCUMENTATION-TITLE generic-function. + Use EQL specifier for the method.") (defun find-system (name) @@ -59,9 +65,7 @@ (:snippet ""))) (defmethod to-commondoc ((system asdf:system)) - (let ((title (format nil "~A ASDF System Details" - (string-upcase - (asdf:primary-system-name system))))) + (let ((title (asdf-system-documentation-title system))) (flet ((item (name getter &key type) (let* ((value (funcall getter system)) (href nil)) diff --git a/qlfile.lock b/qlfile.lock index abd6458..39f595a 100644 --- a/qlfile.lock +++ b/qlfile.lock @@ -1,8 +1,8 @@ ("quicklisp" . (:class qlot/source/dist:source-dist - :initargs (:distribution "http://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest) + :initargs (:distribution "https://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest) :version "2023-10-21")) ("ultralisp" . (:class qlot/source/dist:source-dist - :initargs (:distribution "http://dist.ultralisp.org" :%version :latest) - :version "20240303155001")) + :initargs (:distribution "https://dist.ultralisp.org" :%version :latest) + :version "20240504100002")) diff --git a/src/changelog.lisp b/src/changelog.lisp index f674df4..e25deba 100644 --- a/src/changelog.lisp +++ b/src/changelog.lisp @@ -153,6 +153,8 @@ "CLEAN-URLS" ;; These objects are not documented yet: "40ANTS-DOC/COMMONDOC/XREF:XREF")) + (0.16.0 2024-05-04 + "* A generic-function 40ANTS-DOC/LOCATIVES/ASDF-SYSTEM:ASDF-SYSTEM-DOCUMENTATION-TITLE was added. It allows to override the text of a section showing an information about ASDF system.") (0.15.4 2024-01-26 "* Another fix to URLs on the search page. Now if CLEAN-URLS argument is true, search page will link to the pages ended with a backslash. Otherwise, it will link to the html pages.") (0.15.3 2024-01-24 diff --git a/src/ci.lisp b/src/ci.lisp index be02180..a3c6a5c 100644 --- a/src/ci.lisp +++ b/src/ci.lisp @@ -13,16 +13,25 @@ (defparameter *lisp-implementations* (list "sbcl-bin" ;; Some tests fail on CCL - ;; "ccl-bin/1.12.1" - "abcl-bin" + ;; "ccl-bin" + ;; CLISP is not supported by bordeaux-threads + ;; but it is a transitive dependency + ;; "clisp-head" + ;; Some tests fail on ABCL + ;; "abcl-bin" ;; At 2023-04-22 tests started to fail on Allegro with error: ;; Allegro CL(pid 6257): System Error (gsgc) scavenge found ref to cons outside cons area in 0xffba645c ;; "allegro" - "clasp" - ;; This CL implementation does not work in any matrix combinations + ;; CLASP ails with "Too many arguments for option DOCUMENTATION" error: + ;; "clasp-bin" + ;; CMU fails with "Redefining slot accessor CHUNK-CACHE-CHUNKS for structure type CHUNK-CACHE" error, + ;; occured somewhere inside esrap library: ;; "cmu-bin" - "lispworks" - "mkcl" + ;; Lispworks is not supported by setup-lisp action: + ;; "lispworks" + ;; MKCL has problems when setup-lisp tries to install it: + ;; https://github.com/40ants/setup-lisp/issues/17 + ;; "mkcl" ;; This fails to install under the Roswell on Ubuntu ;; "npt" "ecl") ) diff --git a/src/locatives/asdf-system.lisp b/src/locatives/asdf-system.lisp new file mode 100644 index 0000000..5167b0c --- /dev/null +++ b/src/locatives/asdf-system.lisp @@ -0,0 +1,16 @@ +(uiop:define-package #:40ants-doc/locatives/asdf-system + (:use #:cl) + (:export #:asdf-system-documentation-title)) +(in-package #:40ants-doc/locatives/asdf-system) + + +(defgeneric asdf-system-documentation-title (system) + (:documentation "Returns a title for a section describing an ASDF system. + + You might want to define a method using EQL specializer + to make a title shorter or to remove a system name from it.") + + (:method ((system asdf:system)) + (format nil "~A ASDF System Details" + (string-upcase + (asdf:primary-system-name system)))))