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

From: Nicolas Graves <[email-masked]>
Date: Thu, 2 Nov 2023 16:04:20 +0100

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.

 Makefile.am                          |   6 +
 doc/guix.texi                        |  34 +++
 gnu/local.mk                         |   1 +
 gnu/packages/aux-files/findclass.php | 125 +++++++++++
 gnu/packages/php-xyz.scm             |  60 ++++++
 guix/build-system/composer.scm       | 164 +++++++++++++++
 guix/build/composer-build-system.scm | 300 +++++++++++++++++++++++++++
 guix/import/composer.scm             | 267 ++++++++++++++++++++++++
 guix/scripts/import.scm              |   2 +-
 guix/scripts/import/composer.scm     | 107 ++++++++++
 tests/composer.scm                   |  88 ++++++++
 11 files changed, 1153 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/aux-files/findclass.php
 create mode 100644 gnu/packages/php-xyz.scm
 create mode 100644 guix/build-system/composer.scm
 create mode 100644 guix/build/composer-build-system.scm
 create mode 100644 guix/import/composer.scm
 create mode 100644 guix/scripts/import/composer.scm
 create mode 100644 tests/composer.scm

-- 
2.41.0