unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ben Woodcroft <b.woodcroft@uq.edu.au>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: "guix-devel@gnu.org" <guix-devel@gnu.org>
Subject: Re: [PATCH] Add rubygems updater.
Date: Tue, 5 Jan 2016 23:57:47 +1000	[thread overview]
Message-ID: <568BCBDB.1010308@uq.edu.au> (raw)
In-Reply-To: <87y4c6vjty.fsf@gnu.org>



On 04/01/16 00:06, Ludovic Courtès wrote:
> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>> On 03/01/16 06:54, Ludovic Courtès wrote:
>>> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>>>
>>>> On 02/01/16 04:17, Ludovic Courtès wrote:
>>>>> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
> [...]
>
>>>>>> +     `(#:phases
>>>>>> +       (modify-phases %standard-phases
>>>>>> +         (replace 'check
>>>>>> +           (lambda _
>>>>>> +             (zero? (system* "ruby" "-Ilib" "-r" "ansi")))))))
>>>>> The only case where this would make a difference is for leaf packages,
>>>>> no?  In all the other cases, building dependent packages will ensure
>>>>> that the package at hand works as expected.
>>>> Sure, but even in the case where they aren't leaf packages at least
>>>> the build error gets thrown when building the package at
>>>> fault. There's also the important difference that it makes the
>>>> packager feel less bad about the disappointing lack of tests or the
>>>> necessity of disabling them because of circular dependencies.
>>> Right.  The only downside I can think of is if packagers have to copy
>>> the above 4 lines in each and every package.  Can you think of a way
>>> that would avoid that?
>> I have only been adding these in cases where testing is impossible,
>> but we could make it a wider policy.
>>
>> We could bake it into the build system, by adding an optional argument
>> #:import so that you could do
>>
>>      (build-system ruby-build-system)
>>      (arguments
>>       `(#:import "ansi"
>>         #:tests? #f)) ; tests require circular dependencies
> The problem is that the “-Ilib” in the command above cannot be guessed,
> can it?
My understanding is that the the "-Ilib" is almost invariant because 
putting imported code in the lib subdirectory is a convention that most 
gems adhere to. In those cases where it fails, the 'check-import phase 
can be replaced or removed.

[..]
>> We could even default this to the expected name of the library guessed
>> from the name of the package when #:import is not given. However, this
>> would unfortunately break packages that have been written outside of
>> Guix, so I imagine you don't feel this is a good idea.
> We could choose the package name as a default value, but often that’s
> not going to work, notably because of the “ruby-” prefix.
>
> WDYT?
Removing the "ruby-" from the package name sounds like a reasonable 
default, but won't work every time because some imports use underscores 
where some use dashes e.g. "minitest-pretty_diff".

I'm keen to make sure you understand what I'm attempting to say though. 
By "default" I mean when the #:import flag is missing from arguments, 
"ruby -Ilib -r <guessed_package_name>" will be run. So if I have 
previously packaged a rubygem outside Guix and it is working fine, 
implementing the default might break my package making me unhappy. If 
you instead interpreted "default" as the guessed value that "guix 
import" generates, then that is less likely to end in unhappiness.

WDYT?

Thanks,
ben

  reply	other threads:[~2016-01-05 13:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-01  8:27 [PATCH] Add rubygems updater Ben Woodcroft
2016-01-01  9:28 ` Pjotr Prins
2016-01-01 11:18   ` Ben Woodcroft
2016-01-01 11:42     ` Pjotr Prins
2016-01-01 18:17     ` Ludovic Courtès
2016-01-02  0:11       ` Ben Woodcroft
2016-01-02 20:54         ` Ludovic Courtès
2016-01-03  0:50           ` Ben Woodcroft
2016-01-03 14:06             ` Ludovic Courtès
2016-01-05 13:57               ` Ben Woodcroft [this message]
2016-01-05 14:56                 ` Ricardo Wurmus
2016-01-08 18:18                 ` Ludovic Courtès
2016-01-02  3:43       ` Pjotr Prins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=568BCBDB.1010308@uq.edu.au \
    --to=b.woodcroft@uq.edu.au \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).