[bug#77093,rust-team,00/18] New Rust packaging workflow based on lockfile importer.

Message ID cover.1742281797.git.hako@ultrarare.space
Headers
Series New Rust packaging workflow based on lockfile importer. |

Message

Hilton Chain March 18, 2025, 7:16 a.m. UTC
  Hi Guix!

This series:
* integrates cargo2guix (https://git.sr.ht/~look/cargo2guix) as a crate importer
  option, ‘-f / --lockfile=’.

* adds Cargo workspace support to cargo-build-system, via two new arguments:
  #:cargo-package-crates and #:cargo-install-paths.

* introduces a new Rust packaging workflow, as described in contributing.texi
  change.

This change is compatible with existing cargo-build-system users.

Thanks

Efraim Flashner (2):
  build/cargo: Don't try to unpack sanity-check.py.
  build/cargo: Use system jemalloc.

Hilton Chain (16):
  build/cargo: Pass ‘--offline’ to cargo.
  build/cargo: Print out all non-empty binary files.
  build-system: cargo: Support packaging Cargo workspace.
  build-system: cargo: Support installing Cargo workspace.
  build/cargo: Set default value of arguments for build phases.
  build/cargo: Support non-workspace directory source inputs.
  scripts: import: Document argument for ‘--insert’ option in help
    message.
  scripts: import: Add two newlines for ‘--insert’ option.
  scripts: import: Support expressions defined by 'define.
  scripts: import: Pass "--insert" to importers.
  scripts: import: Skip existing definition for ‘--insert’ option.
  import: crate: crate-name->package-name: Move to (guix build-system
    cargo).
  build-system: cargo: Add ‘cargo-inputs’.
  import: crate: Add Cargo.lock parser.
  import: crate: Add ‘--lockfile’ option.
  doc: Document lockfile importer based Rust packaging workflow.

 Makefile.am                       |   1 +
 doc/contributing.texi             | 415 ++++++++++++++++++++++++++++--
 doc/guix.texi                     |  25 ++
 etc/teams/rust/cleanup-crates.sh  |  38 +++
 etc/teams/rust/rust-crates.tmpl   |  42 +++
 gnu/local.mk                      |   2 +
 gnu/packages/rust-crates.scm      |  42 +++
 gnu/packages/rust-sources.scm     |  29 +++
 guix/build-system/cargo.scm       |  57 +++-
 guix/build/cargo-build-system.scm | 163 +++++++++---
 guix/import/crate.scm             |  81 +++++-
 guix/import/crate/cargo-lock.scm  | 105 ++++++++
 guix/scripts/import.scm           |  54 ++--
 guix/scripts/import/crate.scm     |  58 ++++-
 guix/utils.scm                    |  27 +-
 tests/crate.scm                   |  88 +++++++
 16 files changed, 1121 insertions(+), 106 deletions(-)
 create mode 100755 etc/teams/rust/cleanup-crates.sh
 create mode 100644 etc/teams/rust/rust-crates.tmpl
 create mode 100644 gnu/packages/rust-crates.scm
 create mode 100644 gnu/packages/rust-sources.scm
 create mode 100644 guix/import/crate/cargo-lock.scm


base-commit: b54a9ca849f013300c633fb79d80bc754f6b28a2
--
2.48.1
  

Comments

Ludovic Courtès March 25, 2025, 9:22 a.m. UTC | #1
Hi Hilton,

Hilton Chain <hako@ultrarare.space> skribis:

> This series:
> * integrates cargo2guix (https://git.sr.ht/~look/cargo2guix) as a crate importer
>   option, ‘-f / --lockfile=’.
>
> * adds Cargo workspace support to cargo-build-system, via two new arguments:
>   #:cargo-package-crates and #:cargo-install-paths.
>
> * introduces a new Rust packaging workflow, as described in contributing.texi
>   change.

I hadn’t noticed this patch series but I’m really happy you’re working
on it, I think it can help make Rust packaging more sustainable. 👍

Ludo’.