diff mbox series

[bug#67681] gnu: Add node-commander.

Message ID 5309647d34306d09dba21177002f96a7d7f39e74.1701937716.git.hrn@posteo.net
State New
Headers show
Series [bug#67681] gnu: Add node-commander. | expand

Commit Message

hrn Dec. 7, 2023, 8:29 a.m. UTC
* gnu/packages/node-xyz.scm (node-commander): New variable.

Change-Id: I5b00861705d64e0e89da81acee833e145287bd66
---
 gnu/packages/node-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)


base-commit: 23627b1706af25a0a30b96b9169a3495279aff1b

Comments

Maxim Cournoyer Jan. 4, 2024, 3:31 a.m. UTC | #1
Hi,

Rikard Nordgren <hrn@posteo.net> writes:

> * gnu/packages/node-xyz.scm (node-commander): New variable.
>
> Change-Id: I5b00861705d64e0e89da81acee833e145287bd66
> ---
>  gnu/packages/node-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>
> diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
> index 6c16417309..8486d121dd 100644
> --- a/gnu/packages/node-xyz.scm
> +++ b/gnu/packages/node-xyz.scm
> @@ -155,6 +155,44 @@ (define-public node-color-name
>       "This package provides a JSON list with color names and their values.")
>      (license license:expat)))
>  
> +(define-public node-commander
> +  (package
> +    (name "node-commander")
> +    (version "11.1.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/tj/commander.js")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1xwh85kbxj76ni41r2h0apl8mjbfcnmxzzp3vlspq30w8kwfckni"))))
> +    (build-system node-build-system)
> +    (arguments
> +     '(#:tests? #f

Why is the test suite disabled?  A comment (explaining a good reason) is
needed :-).

> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'patch-dependencies 'delete-dependencies

A comment explaining why these are removed would help.

> +                    (lambda _
> +                      (delete-dependencies '("@types/jest" "@types/node"
> +                                             "@typescript-eslint/eslint-plugin"
> +                                             "@typescript-eslint/parser"
> +                                             "eslint"
> +                                             "eslint-config-standard"
> +                                             "eslint-config-standard-with-typescript"
> +                                             "eslint-plugin-import"
> +                                             "eslint-plugin-jest"
> +                                             "eslint-plugin-n"
> +                                             "eslint-plugin-promise"
> +                                             "jest"
> +                                             "ts-jest"
> +                                             "tsd"
> +                                             "typescript")))))))
> +    (home-page "https://github.com/tj/commander.js")
> +    (synopsis "Command line interface for node.js")
> +    (description "The complete solution for node.js command-line interfaces.")

Could you please expand a bit on the description?  What features does it
have?  Keep it factual; "The complete solution ..." sounds like
marketing language.
hrn Jan. 4, 2024, 5:20 p.m. UTC | #2
Hi,

Thanks  for reviewing!

> Why is the test suite disabled?  A comment (explaining a good reason) 
> is
> needed :-).

This is what many node packages in node-xyz.scm does. I think this is 
because the tests are difficult to bootstrap. The dependency chains for 
the tests
are typically large and circular.

> A comment explaining why these are removed would help.

This is also the norm in node-xyz.scm. The excluded dependencies are for 
development and can in many cases be very difficult to bootstrap.

To be able to make progress with packaging node packages it seems to me 
that the general strategy has been  to disable tests and dependencies 
needed for tests. My assumption might be wrong though. Do you still 
think I should add comments?

> Could you please expand a bit on the description?  What features does 
> it
> have?  Keep it factual; "The complete solution ..." sounds like
> marketing language.

I agree that this needs to be changed. I blindly copied what the package 
said about itself.

Best regards,
Rikard
Maxim Cournoyer Jan. 6, 2024, 7:05 p.m. UTC | #3
Hi,

hrn <hrn@posteo.net> writes:

> Hi,
>
> Thanks  for reviewing!
>
>> Why is the test suite disabled?  A comment (explaining a good
>> reason) is
>> needed :-).
>
> This is what many node packages in node-xyz.scm does. I think this is
> because the tests are difficult to bootstrap. The dependency chains
> for the tests
> are typically large and circular.
>
>> A comment explaining why these are removed would help.
>
> This is also the norm in node-xyz.scm. The excluded dependencies are
> for development and can in many cases be very difficult to bootstrap.
>
> To be able to make progress with packaging node packages it seems to
> me that the general strategy has been  to disable tests and
> dependencies needed for tests. My assumption might be wrong though. Do
> you still think I should add comments?

OK, this makes sense, but hard to grasp for a newcomer like me to (gnu
packages node-xyz).  Perhaps it could be explained in a commentary
comment at the top of the module.

>> Could you please expand a bit on the description?  What features
>> does it
>> have?  Keep it factual; "The complete solution ..." sounds like
>> marketing language.
>
> I agree that this needs to be changed. I blindly copied what the
> package said about itself.

OK.  I look forward to a v2.
diff mbox series

Patch

diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 6c16417309..8486d121dd 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -155,6 +155,44 @@  (define-public node-color-name
      "This package provides a JSON list with color names and their values.")
     (license license:expat)))
 
+(define-public node-commander
+  (package
+    (name "node-commander")
+    (version "11.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tj/commander.js")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xwh85kbxj76ni41r2h0apl8mjbfcnmxzzp3vlspq30w8kwfckni"))))
+    (build-system node-build-system)
+    (arguments
+     '(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'patch-dependencies 'delete-dependencies
+                    (lambda _
+                      (delete-dependencies '("@types/jest" "@types/node"
+                                             "@typescript-eslint/eslint-plugin"
+                                             "@typescript-eslint/parser"
+                                             "eslint"
+                                             "eslint-config-standard"
+                                             "eslint-config-standard-with-typescript"
+                                             "eslint-plugin-import"
+                                             "eslint-plugin-jest"
+                                             "eslint-plugin-n"
+                                             "eslint-plugin-promise"
+                                             "jest"
+                                             "ts-jest"
+                                             "tsd"
+                                             "typescript")))))))
+    (home-page "https://github.com/tj/commander.js")
+    (synopsis "Command line interface for node.js")
+    (description "The complete solution for node.js command-line interfaces.")
+    (license license:expat)))
+
 (define-public node-crx3
   (package
     (name "node-crx3")