From 80554b297bf56fe03579ebecb24536b0e76ee5e7 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Wed, 1 Oct 2025 16:45:52 +0200 Subject: [PATCH] teams: Add BEAM team. * CODEOWNERS: Regenerate. * etc/teams.scm (beam): New variable. ("Giacomo Leidi"): Add to BEAM team. * etc/teams/beam/elixir-manifest.scm: New file. * etc/teams/beam/erlang-manifest.scm: New file. Change-Id: I0a42ef400f2d63aac5672d25277aabfca0e6fe28 Reviewed-by: Hartmut Goebel Signed-off-by: Sharlatan Hellseher --- CODEOWNERS | 9 +++++ etc/teams.scm | 17 ++++++++- etc/teams/beam/elixir-manifest.scm | 60 ++++++++++++++++++++++++++++++ etc/teams/beam/erlang-manifest.scm | 60 ++++++++++++++++++++++++++++++ 4 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 etc/teams/beam/elixir-manifest.scm create mode 100644 etc/teams/beam/erlang-manifest.scm diff --git a/CODEOWNERS b/CODEOWNERS index b2e2ea61c4..f09d4747ae 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -12,6 +12,15 @@ gnu/packages/audio\.scm @guix/audio gnu/packages/fluidplug\.scm @guix/audio gnu/packages/xiph\.scm @guix/audio +gnu/packages/elixir(-.+|)\.scm$ @guix/beam +guix/build/mix-build-system\.scm @guix/beam +guix/build-system/mix\.scm @guix/beam +gnu/packages/erlang(-.+|)\.scm$ @guix/beam +guix/build/rebar-build-system\.scm @guix/beam +guix/build-system/rebar\.scm @guix/beam +guix/import/hexpm\.scm @guix/beam +guix/scripts/import/hexpm\.scm @guix/beam + gnu/packages/commencement\.scm @guix/bootstrap gnu/packages/mes\.scm @guix/bootstrap diff --git a/etc/teams.scm b/etc/teams.scm index b47f0dfdd9..91c0d9f437 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -464,6 +464,21 @@ already exists. Lookup team IDs among CURRENT-TEAMS." "gnu/packages/fluidplug.scm" "gnu/packages/xiph.scm"))) +(define-team beam + (team 'beam + #:name "Erlang/Elixir/BEAM team" + #:description "The virtual machine at the core of the Erlang Open +Telecom Platform (OTP), Erlang and Elxir languages and packages, development +of Rebar and Mix build systems and Hex.pm importer." + #:scope (list (make-regexp* "^gnu/packages/elixir(-.+|)\\.scm$") + "guix/build/mix-build-system.scm" + "guix/build-system/mix.scm" + (make-regexp* "^gnu/packages/erlang(-.+|)\\.scm$") + "guix/build/rebar-build-system.scm" + "guix/build-system/rebar.scm" + "guix/import/hexpm.scm" + "guix/scripts/import/hexpm.scm"))) + (define-team bootstrap (team 'bootstrap #:name "Bootstrap" @@ -1328,7 +1343,7 @@ the \"texlive\" importer." (define-member (person "Giacomo Leidi" "goodoldpaul@autistici.org" "fishinthecalculator") - audio) + audio beam) (define-member (person "Saku Laesvuori" "saku@laesvuori.fi" diff --git a/etc/teams/beam/elixir-manifest.scm b/etc/teams/beam/elixir-manifest.scm new file mode 100644 index 0000000000..1e622310c1 --- /dev/null +++ b/etc/teams/beam/elixir-manifest.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2025 Giacomo Leidi +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages built using the mix-build-system. +;;; It is used to assist continuous integration of the beam-team branch. +;;; +;;; +;;; You can use it to build all covered packages with: +;;; +;;; ./pre-inst-env guix build -m etc/teams/beam/elixir-manifest.scm +;;; +;;; or to update them with: +;;; +;;; ./pre-inst-env guix refresh -u -m etc/teams/beam/elixir-manifest.scm + +(use-modules (guix packages) + (guix profiles) + (guix gexp) + (guix build-system) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + +(define* (has-mix-build-system? build-system #:key modules #:allow-other-keys) + (or (eq? (build-system-name build-system) 'mix) + (any + (match-lambda + (('guix 'build 'mix-build-system) #t) + ('((guix build mix-build-system) . _) #t) + (_ #f)) + (cond + ((gexp? modules) (gexp->approximate-sexp modules)) + ((pair? modules) modules) + (else '()))))) + +(manifest + (map package->manifest-entry + (fold-packages + (lambda (package lst) + (if (apply has-mix-build-system? + (package-build-system package) + (package-arguments package)) + (cons package lst) + lst)) + (list)))) diff --git a/etc/teams/beam/erlang-manifest.scm b/etc/teams/beam/erlang-manifest.scm new file mode 100644 index 0000000000..d4f647c247 --- /dev/null +++ b/etc/teams/beam/erlang-manifest.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2025 Giacomo Leidi +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages built using the rebar-build-system. +;;; It is used to assist continuous integration of the beam-team branch. +;;; +;;; +;;; You can use it to build all covered packages with: +;;; +;;; ./pre-inst-env guix build -m etc/teams/beam/erlang-manifest.scm +;;; +;;; or to update them with: +;;; +;;; ./pre-inst-env guix refresh -u -m etc/teams/beam/erlang-manifest.scm + +(use-modules (guix packages) + (guix profiles) + (guix gexp) + (guix build-system) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + +(define* (has-rebar-build-system? build-system #:key modules #:allow-other-keys) + (or (eq? (build-system-name build-system) 'rebar) + (any + (match-lambda + (('guix 'build 'rebar-build-system) #t) + ('((guix build rebar-build-system) . _) #t) + (_ #f)) + (cond + ((gexp? modules) (gexp->approximate-sexp modules)) + ((pair? modules) modules) + (else '()))))) + +(manifest + (map package->manifest-entry + (fold-packages + (lambda (package lst) + (if (apply has-rebar-build-system? + (package-build-system package) + (package-arguments package)) + (cons package lst) + lst)) + (list))))