guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On my way to my first patch, need review


From: Ben Woodcroft
Subject: Re: On my way to my first patch, need review
Date: Sun, 27 Mar 2016 22:11:54 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

Hi Vincent, thanks for the contribution.

On 26/03/16 15:49, address@hidden wrote:
[..]

First some comments on the patch. In general we try to keep line lengths below 80 chars, and not leave blank lines within package definitions.


(define-public wayback-machine-downloader
  (package
    (name "wayback-machine-downloader")
    (version "0.2.1")
    (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri
               "wayback_machine_downloader"
               version))

Please put the above 3 lines on the same line.

        (sha256
          (base32
            "1nrwm5bc7vqm02m2x0lylxyya446kg0spg6ksi7dfkrad0l9jq8y"))))
    (build-system ruby-build-system)
    (arguments
       `(#:tests? #f ; no rakefile
              ))

Stylistically, we don't leave empty braces alone like this.

It seems there is a Rakefile with a test task defined in the github repository, but not in the gem itself. So in this case I would point guix to download the source from the github page not rubygems.org, as is currently done for ruby-nokogumbo for example:

(define-public ruby-nokogumbo
  (package
    (name "ruby-nokogumbo")
    (version "1.4.6")
    (source (origin
              ;; We use the git reference, because there's no Rakefile in the
              ;; published gem and the tarball on Github is outdated.
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/rubys/nokogumbo.git")
                    (commit "d56f954d20a")))
              (file-name (string-append name "-" version "-checkout"))
              (sha256
               (base32
                "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl"))))


    (native-inputs
     `(("ruby-rake-compiler" ,ruby-rake-compiler)

Is this really needed?

       ("ruby-minitest" ,ruby-minitest)))

    (synopsis
      "Download website from archive.org's Wayback Machine")

Maybe "Download a website ..." ? Also, please put on one line.

    (description
      "Download any website from the Wayback Machine.  Wayback Machine by Internet Archive (archive.org) is an awesome tool to view any website at any point of time but lacks an export feature.  Wayback Machine Downloader brings exactly this.")

I would remove "awesome" as being too opinionated. I think it would also make sense to comment on the fact that it is a command line tool.

    (home-page
      "https://github.com/hartator/wayback-machine-downloader")
    (license expat)))


Then I ran: `guix package -i wayback-machine-downloader -f ~/Documents/ruby` and it successfully installed.

So my questions are:

1) Do you guys and gals have a better workflow that includes the git repo, so I can send a patch? All I saw in the documentation was about building guix itself. I guess I could clone somewhere and use `guix package -f`,  but will this be a reliable way of testing? And will this make my guix less stable on the long run?

My personal workflow for this situation would be something like this:

$ git checkout -b wayback-machine-downloader origin/master
$ make -j4
... modify gnu/packages/ruby.scm adding the package definition ...
$ ./pre-inst-env guix build -K wayback-machine-downloader
... modify further as necessary until I am happy ...
... run through the checklist of things to do (e.g. list) when submitting a package at https://www.gnu.org/software/guix/manual/guix.html#Submitting-Patches
$ git diff #check that I'm committing the right code and only the one package's code
$ git commit
... edit commit message ...
$ git format-patch -1
... send to guix-devel ...

hope that helps.


2) Should I add "ruby-" before the name of the package? I know technically all gems should have "ruby-" before the name, but this is designed to be use independently. Could it have multiple names, or is it a bad idea?

In this case I would say no, leave it as wayback-machine-downloader since it is not intended to be used as a library, rather a command line tool.


3) Where does this package belong in the directory?

My guess would be web.scm not ruby.scm.


4) Is the package declaration itself all right? Are packages sorted or organized in any way?

This depends on the file being modified, in ruby.scm we just add it to the end of the file.


5) I speak fluent French, can I add a description and summary in French?

I'm not sure on this sorry.

Would you mind submitting an updated patch please?
Thanks,
ben

reply via email to

[Prev in Thread] Current Thread [Next in Thread]