diff mbox series

[bug#67328] Upgrade clojure-tools to 1.11.1.1413 + clojure-tools-deps transition

Message ID 20231120200909.126545-1-eugen.stan@netdava.com
State New
Headers show
Series [bug#67328] Upgrade clojure-tools to 1.11.1.1413 + clojure-tools-deps transition | expand

Commit Message

Eugen Stan Nov. 20, 2023, 8:09 p.m. UTC
From: Eugen Stan <eugen.stan@netdava.com>

* clojure-tools-deps-alpha was superserded by clojure-tools-deps
---
 gnu/packages/clojure.scm | 77 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 71 insertions(+), 6 deletions(-)

Comments

Eugen Stan Nov. 23, 2023, 10:22 a.m. UTC | #1
user guix
usertag 67328 + reviewed-looks-good
thanks

Guix QA review form submission:


Items marked as checked: Lint warnings, Package builds, Commit messages, 
New package licenses, New package tests, New package synopsis and 
descriptions
Christopher Baines Nov. 23, 2023, 1:51 p.m. UTC | #2
user guix
usertag 67328 - reviewed-looks-good
thanks

Eugen Stan <eugen.stan@netdava.com> writes:

>
> Guix QA review form submission:
>
>
> Items marked as checked: Lint warnings, Package builds, Commit
> messages, New package licenses, New package tests, New package
> synopsis and descriptions

As it says on the QA page:

  This feature is for people other than those involved in submitting the
  patches to record a review, which will highlight that these patches
  should be ready to merge.

I believe you have been involved in submiting the patch.
Christopher Baines Nov. 23, 2023, 1:52 p.m. UTC | #3
eugen.stan@netdava.com writes:

> From: Eugen Stan <eugen.stan@netdava.com>
>
> * clojure-tools-deps-alpha was superserded by clojure-tools-deps
> ---
>  gnu/packages/clojure.scm | 77 ++++++++++++++++++++++++++++++++++++----
>  1 file changed, 71 insertions(+), 6 deletions(-)
>
> diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
> index e28998b570..ee9cd19b0e 100644
> --- a/gnu/packages/clojure.scm
> +++ b/gnu/packages/clojure.scm
> @@ -203,14 +203,14 @@ (define (make-classpath libraries)
>  (define-public clojure-tools
>    (package
>      (name "clojure-tools")
> -    (version "1.11.1.1165")
> +    (version "1.11.1.1413")
>      (source
>       (origin
>         (method url-fetch)
>         (uri (string-append "https://download.clojure.org/install/clojure-tools-"
>                             version
>                             ".tar.gz"))
> -       (sha256 (base32 "1lg97waqfcgzr3dz5426fbc4kqcsavpbqil2iyjm1dw3zrfa8ysi"))
> +       (sha256 (base32 "1q0z71ifdxwvyy9gvq8mx8jbygf8cszrlhb3h22walfamnisbhwk"))
>         ;; Remove AOT compiled JAR.  The other JAR only contains uncompiled
>         ;; Clojure source code.
>         (snippet
> @@ -249,7 +249,7 @@ (define-public clojure-tools
>                   ":"))))))))
>      (inputs (list rlwrap
>                    clojure
> -                  clojure-tools-deps-alpha
> +                  clojure-tools-deps
>                    java-commons-logging-minimal))
>      (home-page "https://clojure.org/releases/tools")
>      (synopsis "CLI tools for the Clojure programming language")
> @@ -419,9 +419,9 @@ (define-public clojure-data-xml
>         #:phases
>         (modify-phases %standard-phases
>           (add-before 'build 'delete-cljs-tests
> -                     (lambda _
> -                       (delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
> -                       (delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
> +           (lambda _
> +             (delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
> +             (delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
>      (propagated-inputs (list clojure-data-codec))
>      (synopsis "Clojure library for reading and writing XML data")
>      (description "@code{data.xml} is a Clojure library for reading and writing
> @@ -572,7 +572,72 @@ (define-public clojure-tools-cli
>  work with command-line arguments.")
>      (license license:epl1.0)))
>  
> +(define-public clojure-tools-deps
> +  (package
> +    (name "clojure-tools-deps")
> +    (version "0.18.1354")
> +    (home-page "https://github.com/clojure/tools.deps")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url home-page)
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "0ls5nixhsjjhf3qz8kbyhmks5lw7a25zxl46yrizbw7vba3mzrpl"))))
> +    (build-system clojure-build-system)
> +    (arguments
> +     `(#:source-dirs '("src/main/clojure" "src/main/resources")
> +       #:test-dirs '("src/test/clojure")
> +       #:doc-dirs '()
> +       ;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory
> +       #:tests? #f
> +       #:phases
> +       (modify-phases %standard-phases
> +         ;; FIXME: Currently, the S3 transporter depends on ClojureScript,
> +         ;; which is very difficult to package due to dependencies on Java
> +         ;; libraries with non-standard build systems. Instead of actually
> +         ;; packaging these libraries, we just remove the S3 transporter that
> +         ;; depends on them.
> +         (add-after 'unpack 'remove-s3-transporter
> +           (lambda _
> +             (for-each delete-file
> +                       (list
> +                        (string-append
> +                         "src/main/clojure/clojure/"
> +                         "tools/deps/util/s3_aws_client.clj")
> +                        (string-append
> +                         "src/main/clojure/clojure/"
> +                         "tools/deps/util/s3_transporter.clj")
> +                        (string-append
> +                         "src/test/clojure/clojure/"
> +                         "tools/deps/util/test_s3_transporter.clj")))
> +             (substitute*
> +                 "src/main/clojure/clojure/tools/deps/util/maven.clj"
> +               (("clojure.tools.deps.util.s3-transporter")
> +                "")))))))
> +    (propagated-inputs (list maven-resolver-api
> +                             maven-resolver-spi
> +                             maven-resolver-impl
> +                             maven-resolver-util
> +                             maven-resolver-connector-basic
> +                             maven-resolver-provider
> +                             maven-core
> +                             maven-resolver-transport-http
> +                             maven-resolver-transport-file
> +                             clojure-tools-gitlibs
> +                             clojure-tools-cli
> +                             clojure-data-xml))
> +    (synopsis "Clojure library supporting clojure-tools")
> +    (description "This package provides a functional API for transitive
> +dependency graph expansion and the creation of classpaths.")
> +    (license license:epl1.0)))
>
>  (define-public clojure-tools-deps-alpha
> +  ;; this was superseded by clojure-tools-deps
> +  ;; https://github.com/clojure/tools.deps.alpha
> +  ;; Keeping it to give upstream packages a chance to upgrade
>    (package
>      (name "clojure-tools-deps-alpha")
>      (version "0.14.1212")

Upstream of Guix is the publishers of the software that Guix packages,
so "upstream" in this case is probably the Clojure project.

I don't think there's any particular concerns for those upstream or
downstream of Guix in replacing clojure-tools-deps-alpha with
clojure-tools-deps.

The other thing with this change is that it should probably be two
commits, separating the version change of clojure-tools from the other
changes (even if the other changes cause clojure-tools to break before
it's upgraded).
Eugen Stan Nov. 24, 2023, 5:27 a.m. UTC | #4
Hello Christopher,

Thank you for taking a look at this.

I meant downstream, thanks.
IMO there might be libs that use the alpha version/
Removing clojure-tools-deps-alpha means those packages will have to find 
another way around this.

I would put a deprecation notice and remove it at a later time.
Both packages can co-exist (probably in the same app) - they use 
different namespaces (a lot of Clojure projects do not use 'semantic' 
versioning)

I can split the commit in 2 or 3 parts:
- one adds clojure-tools-deps
- one makes the switch
- optional one drops clojure-tools-deps-alpha

This seems like busy-work, but I think I get the point.

Will close this and send the other + link them to this issue.

Regards,
Eugen Stan Nov. 24, 2023, 5:56 a.m. UTC | #5
This was split in 2 issues:

- https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67425
- https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67426

A third issue, dropping clojure-tools-deps-alpha can be created at a 
later date (or package just dropped)

close 67328
Andreas Enge Feb. 6, 2024, 11:55 a.m. UTC | #6
As written in the last message, this bug has been split in two,
67425 and 67426.

Andreas
diff mbox series

Patch

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index e28998b570..ee9cd19b0e 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -203,14 +203,14 @@  (define (make-classpath libraries)
 (define-public clojure-tools
   (package
     (name "clojure-tools")
-    (version "1.11.1.1165")
+    (version "1.11.1.1413")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.clojure.org/install/clojure-tools-"
                            version
                            ".tar.gz"))
-       (sha256 (base32 "1lg97waqfcgzr3dz5426fbc4kqcsavpbqil2iyjm1dw3zrfa8ysi"))
+       (sha256 (base32 "1q0z71ifdxwvyy9gvq8mx8jbygf8cszrlhb3h22walfamnisbhwk"))
        ;; Remove AOT compiled JAR.  The other JAR only contains uncompiled
        ;; Clojure source code.
        (snippet
@@ -249,7 +249,7 @@  (define-public clojure-tools
                  ":"))))))))
     (inputs (list rlwrap
                   clojure
-                  clojure-tools-deps-alpha
+                  clojure-tools-deps
                   java-commons-logging-minimal))
     (home-page "https://clojure.org/releases/tools")
     (synopsis "CLI tools for the Clojure programming language")
@@ -419,9 +419,9 @@  (define-public clojure-data-xml
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'delete-cljs-tests
-                     (lambda _
-                       (delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
-                       (delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
+           (lambda _
+             (delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
+             (delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
     (propagated-inputs (list clojure-data-codec))
     (synopsis "Clojure library for reading and writing XML data")
     (description "@code{data.xml} is a Clojure library for reading and writing
@@ -572,7 +572,72 @@  (define-public clojure-tools-cli
 work with command-line arguments.")
     (license license:epl1.0)))
 
+(define-public clojure-tools-deps
+  (package
+    (name "clojure-tools-deps")
+    (version "0.18.1354")
+    (home-page "https://github.com/clojure/tools.deps")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ls5nixhsjjhf3qz8kbyhmks5lw7a25zxl46yrizbw7vba3mzrpl"))))
+    (build-system clojure-build-system)
+    (arguments
+     `(#:source-dirs '("src/main/clojure" "src/main/resources")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()
+       ;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; FIXME: Currently, the S3 transporter depends on ClojureScript,
+         ;; which is very difficult to package due to dependencies on Java
+         ;; libraries with non-standard build systems. Instead of actually
+         ;; packaging these libraries, we just remove the S3 transporter that
+         ;; depends on them.
+         (add-after 'unpack 'remove-s3-transporter
+           (lambda _
+             (for-each delete-file
+                       (list
+                        (string-append
+                         "src/main/clojure/clojure/"
+                         "tools/deps/util/s3_aws_client.clj")
+                        (string-append
+                         "src/main/clojure/clojure/"
+                         "tools/deps/util/s3_transporter.clj")
+                        (string-append
+                         "src/test/clojure/clojure/"
+                         "tools/deps/util/test_s3_transporter.clj")))
+             (substitute*
+                 "src/main/clojure/clojure/tools/deps/util/maven.clj"
+               (("clojure.tools.deps.util.s3-transporter")
+                "")))))))
+    (propagated-inputs (list maven-resolver-api
+                             maven-resolver-spi
+                             maven-resolver-impl
+                             maven-resolver-util
+                             maven-resolver-connector-basic
+                             maven-resolver-provider
+                             maven-core
+                             maven-resolver-transport-http
+                             maven-resolver-transport-file
+                             clojure-tools-gitlibs
+                             clojure-tools-cli
+                             clojure-data-xml))
+    (synopsis "Clojure library supporting clojure-tools")
+    (description "This package provides a functional API for transitive
+dependency graph expansion and the creation of classpaths.")
+    (license license:epl1.0)))
+
 (define-public clojure-tools-deps-alpha
+  ;; this was superseded by clojure-tools-deps
+  ;; https://github.com/clojure/tools.deps.alpha
+  ;; Keeping it to give upstream packages a chance to upgrade
   (package
     (name "clojure-tools-deps-alpha")
     (version "0.14.1212")