Message ID | 20231102151725.31362-1-ngraves@ngraves.fr |
---|---|
Headers | show |
Series | Composer build-system | expand |
Hi, Nicolas Graves <ngraves@ngraves.fr> 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`. > > 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? 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? 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. Thanks in advance! Ludo’.
On 2023-12-18 23:33, Ludovic Courtès wrote: > Hi, > > Nicolas Graves <ngraves@ngraves.fr> 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 ngraves@ngraves.fr 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’.