Subject: [bug#42338] [PATCH v5 0/9] Composer build-system

From: Nicolas Graves <[email-masked]>
Date: Tue, 19 Dec 2023 08:43:50 +0100

On 2023-12-18 23:33, Ludovic Courtès wrote:

> Hi,
>
> Nicolas Graves <[email-masked]> skribis:
>
>> This is the result of my further rework of the composer import and
>> build-system. The `guix: import: composer` commits can be squashed
>> easily.
>>
>> This is now tested on 94 php packages with all testing enabled except
>> for 3 packages. I will submit these packages as a whole in the
>> alphabetical order (the bootstrap order is not worth it IMO) in a new
>> guix issue.
>>
>> Before accepting it, I also would like to propose a change of
>> names. If me make an analogy with python:
>> tool: pip <-> composer
>> package hub: pypi <-> packagist
>> build-system: python/pyproject <-> php

>>
>> Since we only take about 90 lines of real composer code, I would
>> rather call the build-system php-build-system. 
>> Same thing: instead of `guix import composer` we should rather call
>> `guix import packagist`.

Do you have an opinion on this? I guess now that's in the code, we can
keep it as is, but that's sad we didn't get to discuss on this. 

>>
>> If that's OK, I'll change it with the next (and hopefully last!)
>> version of this build system.
>>
>> Nicolas Graves (9):
>>   guix: import: Add composer importer.
>>   gnu: Add composer-classloader.
>>   guix: Add composer-build-system.
>>   guix: import: composer: Use memoization.
>>   guix: import: composer: Fix json->require.
>>   guix: import: composer: More robust string->license.
>>   guix: import: composer: Modern inputs formatting.
>>   guix: import: composer: Full rewrite composer-fetch.
>>   gnu: composer-build-system: Full check phase rewrite.
>
> In the interest of moving forward, I pushed this:
>
>   6454788a5c build-system/composer: Do not import host-side Guile-JSON modules.
>   9dab758791 build-system: Add ‘composer-build-system’.
>   e8fd78d54e gnu: Add composer-classloader.
>   b7e3945283 guix: import: Add composer importer.
>
> I squashed the importer commits.
>
> However, I also add to make way too many fixes to my taste: adding
> missing #:use-module, fixing unbound variables (guessing…), fixing
> typos, untangling and build system commit that was fixing things in the
> importer, fixing ‘tests/composer.scm’ which wouldn’t pass, fixing a case
> where the importer would return a single value instead of two (breaking
> recursive imports), and probably others that I forgot.  Not great.
>
> Could you please take a closer look and see whether anything is amiss at
> this point?

Not great indeed, seemed to work fine on my end, will take a look. I
hope I didn't send a different patch series than intended. 

>
> Next, which PHP packages do we add?  Julien initially submitted 30ish of
> them, should we take those?  Or are you planning to submit a separate
> set?

I have a set of 94-97 packages, I've sent them in an email to you and
Julien (an email from [email-masked] on november 2nd), these should
work with this set of commits. Will cut that in commits and submit them
quickly. 

>
> It would also be nice if the updater would fill in the ‘inputs’ fields
> of <upstream-source>: that would allow ‘guix refresh -u’ to
> automatically update inputs.

I will first focus on fixes and packages.

> Thanks in advance!
> Ludo’.

-- 
Best regards,
Nicolas Graves