all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: "Pierre-Henry Fröhring" <phfrohring@deeplinks.com>,
	66801@debbugs.gnu.org
Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system.
Date: Thu, 16 Nov 2023 16:11:50 +0100	[thread overview]
Message-ID: <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> (raw)
In-Reply-To: <CAP84DVVBMKfOL6TA0z0FowD6ne8Z+UXKgpbpYuZKmfQxmR3rrg@mail.gmail.com>

Am Donnerstag, dem 16.11.2023 um 14:01 +0100 schrieb Pierre-Henry
Fröhring:
> Do you mind if I paste the conversation using the following org
> format?
I do mind you pasting it in HTML format :P

> * Comment
> ** lilyp
> > +(define (elixir-version elixir)
> > +  "Return an X.Y string where X and Y are respectively the major
> > and
> > minor version number of ELIXIR.
> > +Example: /gnu/store/…-elixir-1.14.0 → 1.14"
> > +  ((compose
> > +    (cut string-join <> ".")
> > +    (cut take <> 2)
> > +    (cut string-split <> #\.)
> > +    last)
> > +   (string-split elixir #\-)))
> 
> I don't think we need to be overly cute here.  The let-binding
> version from python-build-system is less surprising to the
> uninitiated reader.
> 
> See also strip-store-file-name and package-name->name+version.
> 
> 
> ** phf
> Maybe:
> #+begin_src scheme
> (define (elixir-version elixir)
>   "Return an X.Y string where X and Y are respectively the major and
> minor version number of ELIXIR.
> Example: /gnu/store/…-elixir-1.14.0 → 1.14"
>   (receive (_ version) (package-name->name+version (strip-store-file-
> name elixir))
>     (let* ((components  (string-split version #\.))
>            (major+minor (take components 2)))
>       (string-join major+minor "."))))
> #+end_src
> 
> or:
> #+begin_src scheme
> (define (elixir-version elixir)
>   "Return an X.Y string where X and Y are respectively the major and
> minor version number of ELIXIR.
> Example: /gnu/store/…-elixir-1.14.0 → 1.14"
>   (let* ((version     (last (string-split elixir #\-)))
>          (components  (string-split version #\.))
>          (major+minor (take components 2)))
>     (string-join major+minor ".")))
> #+end_src
> 
> or: just inline the code as it is used just once. See [[id:76abe0e4-
> a0e2-4176-bdc0-9ff241e8ba42][next comment]].
Note that you can use SRFI-71 let and let* to bind multiple values at
once.  So you can write the first one without receive.

> 
> * Comment
> :PROPERTIES:
> :ID:       76abe0e4-a0e2-4176-bdc0-9ff241e8ba42
> :END:
> 
> ** lilyp
> > +(define (elixir-libdir elixir path)
> > +  "Return the path where all libraries for a specified ELIXIR
> > version are installed."
> > +  (string-append path "/lib/elixir/" (elixir-version elixir)))
> 
> You probably want to swap path and elixir and perhaps also find a way
> to implicitly parameterize the latter so as to make it optional.
> 
> 
> ** phf
> Is this what you mean?
> #+begin_src scheme
> ;; The Elixir version is constant as soon as it is computable from
> the current
> ;; execution. It is a X.Y string where X and Y are respectively the
> major and
> ;; minor version number of the Elixir used in the build.
> (define elixir-version (make-parameter "X.Y"))
> 
> (define* (elixir-libdir path #:optional (version (elixir-version)))
>   "Return the path where all libraries for a specified ELIXIR version
> are installed."
>   (string-append path "/lib/elixir/" version))
> 
> (define* (configure #:key inputs mix-path mix-exs #:allow-other-keys)
>   …
>   (elixir-version
>    (receive (_ version) (package-name->name+version (strip-store-
> file-name (assoc-ref inputs "elixir")))
>      (let* ((components  (string-split version #\.))
>             (major+minor (take components 2)))
>        (string-join major+minor ".")))))
> #+end_src
I'd use %elixir-version and perhaps make it a fluent rather than a
parameter (not quite sure whether parameters get reset when a function
goes out of scope).

> * Comment
> ** lilyp
> > +(define* (configure #:key inputs mix-path mix-exs #:allow-other-
> > keys)
> > +  "Set environment variables.
> > +See:
> > https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables
> > "
> > +  (setenv "LC_ALL" "en_US.UTF-8")
> > +  (setenv "MIX_HOME" (getcwd))
> > +  (setenv "MIX_ARCHIVES" "archives")
> > +  (setenv "MIX_BUILD_ROOT" "_build")
> > +  (setenv "MIX_DEPS_PATH" "deps")
> > +  (setenv "MIX_PATH" (or mix-path ""))
> > +  (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3")
> > "/bin/rebar3"))
> > +  (setenv "MIX_EXS" mix-exs))
> 
> This does not appear to be a configure phase in the traditional sense
> of the wording.  Instead, it should be a post 'set-paths' 'set-mix-
> env' imho.
> 
> 
> ** phf
> After ~install-locale~ since ~(setenv "LC_ALL" "en_US.UTF-8")~ is
> called in this phase.
> #+begin_src scheme
> (define %standard-phases
>   (modify-phases gnu:%standard-phases
>     …
>     (delete 'configure)
>     (add-after 'install-locale 'set-mix-env set-mix-env)
>     (replace 'unpack unpack)
>     …))
> #+end_src
Good point: you shouldn't be setting LC_ALL anyway, that's already done
by install-locale.

> * Comment
> ** lilyp
> > +(define* (install-hex #:key name inputs outputs #:allow-other-
> > keys)
> > +  "Install Hex."
> > +  (let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES")
> > "/hex")))
> > +    (mkdir-p hex-archive-path)
> > +    (symlink (car (list-directories (elixir-libdir (assoc-ref
> > inputs
> > "elixir")
> > +                                                   (assoc-ref
> > inputs
> > "elixir-hex"))))
> > +             (string-append hex-archive-path "/hex"))))
> 
> Why do we need this?  It looks like we'll be pasting the same
> (native?) input all over the store, which imho would be bad.
> 
> 
> ** phf
> Without ~Hex~, you get this error:
> #+begin_example
> starting phase `build'
> Could not find Hex, which is needed to build dependency :ex_doc
> Shall I install Hex? (if running non-interactively, use "mix
> local.hex --force") [Yn]
> #+end_example
> This message is called from ~handle_rebar_not_found~ in
> ~lib/mix/lib/mix/tasks/deps.compile.ex~ ; which is called from
> ~rebar_cmd~ because
> a ~manager~ (~Hex~) could not be found. Hex must be present =>
> install-hex must be executed.
> 
> I thought that this should not be a problem since Hex is needed at
> build time, and just symlinked.  Maybe should it be copied instead?
Is hex not an (implicit) native-input in your build system?  Anything
that keeps it from functioning is a packaging bug imho.

> * Comment
> ** lilyp
> > +  (define (install-input mix-env input)
> > +    (let ((dir (mix-build-dir mix-env)))
> > +      (mkdir-p dir)
> > +      (match input
> > +        ((_ . path)
> > +         ((compose
> > +           (cut for-each (cut install-lib <> dir) <>)
> > +           (cut append-map list-directories <>)
> > +           (cut filter directory-exists? <>))
> > +          (list (elixir-libdir (assoc-ref inputs "elixir") path)
> > +                (erlang-libdir path)))))))
> 
> I think you're at the wrong layer of abstraction here.
> 
>   (match input
>     ((_ . prefix)
>      (begin
>       (install-subdirectories (elixir-libdir path))
>       (install-subdirectories (erlang-libdir path)))))
> 
> where (install-subdirectories PATH) is basically
>   (when (directory-exists? PATH)
>     (for-each (cute install-lib <> (mix-build-dir mix-env))
>               (list-directories PATH)))
> 
> 
> ** phf
> Does this work?
> #+begin_src scheme
> (define (install-lib lib dir)
>     (let ((lib-name (last (string-split lib #\/))))
>       (symlink lib (string-append dir "/" lib-name))))
> 
>   (define (install-subdirectories mix-env path)
>     (let ((build-dir (mix-build-dir mix-env)))
>       (mkdir-p build-dir)
>       (when (directory-exists? path)
>         (for-each (cute install-lib <> build-dir)
>                   (list-directories path)))))
Maybe move the mkdir-p into the when or at the start of install-lib.


>   (define (install-input mix-env input)
>     (match input
>       ((_ . path)
>        (begin
>          (install-subdirectories mix-env (elixir-libdir path))
>          (install-subdirectories mix-env (erlang-libdir path))))))
> #+end_src
> 
> 
> * Comment
> ** lilyp
> > +  (define (install-inputs mix-env)
> > +    (for-each (cut install-input mix-env <>)
> > +              (append inputs native-inputs)))
> 
> Installing native inputs: probably a bad idea (inhibits cross-
> compilation).
> 
> 
> ** phf
> A slight variant that does not link things when it should not:
> #+begin_src scheme
> (define (install-inputs mix-env)
>     (for-each (cut install-input mix-env <>)
>               (cond
>                 ((string=? mix-env "prod") inputs)
>                 ((member mix-env '("shared" "test")) (append inputs
> native-inputs))
>                 (else (error (format #f "Unexpected Mix env: ~a~%"
> mix-env))))))
> #+end_src
> 
> I did not consider cross-compilation yet. The following might be
> wrong be here we go. I far as I understand, Erlang applications are
> largely platform independent. Once the code is compiled to BEAM
> bytecode, it can run on any platform that has the Erlang VM
> installed.  If an Erlang library uses native extensions, then cross-
> compilation might be required.  For a build to succeed
> in a given environment (one of "prod", "test", "shared"), the BEAM
> files of all dependencies should be present on the build machine. So,
> all dependencies must be installed
Not an expert on elixir, but that sounds borked.  You might get around
this with propagated-inputs maybe?  That being said, native-inputs
shouldn't blow up a build if missing.

> * Comment
> ** lilyp
> > +(define (library-name pkg-name)
> > +  "Return the library name deduced from PKG-NAME.
> > +A package should be named: elixir-lib-name-X.Y.Z from which the
> > library name
> > +lib_name is deduced."
> > +  ((compose
> > +    (cut string-join <> "_")
> > +    (cut drop-right <> 1)
> > +    (cut string-split <> #\-))
> > +   (strip-elixir-prefix pkg-name)))
> 
> Consider defining (package-name-version->elixir-name) analogous to
> (package-name-version->erlang-name) in rebar-build-system.  Also
> allow overriding it through a build system argument.  The thing you
> currently have will blow up with git-version.
> 
> 
> ** phf
> Faily close to the ~rebar-build-system~ version.
> #+begin_src scheme
> (define (package-name-version->elixir-name name+ver)
>   "Convert the Guix package NAME-VER to the corresponding Elixir
> name-version format.  Essentially drop the prefix used in Guix and
> replace dashes by underscores."
>   (let* ((name- (package-name->name+version name+ver)))
>     (string-join
>      (string-split
>       (if (string-prefix? "elixir-" name-)
>           (string-drop name- (string-length "elixir-"))
>           name-)
>       #\-)
>      "_")))
> #+end_src
Looks okay.




  reply	other threads:[~2023-11-16 15:13 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-28 20:19 [bug#66801] [PATCH] mix-build-system: draft 1 Pierre-Henry Fröhring
2023-10-28 21:43 ` Liliana Marie Prikler
2023-10-29 17:19   ` Pierre-Henry Fröhring
2023-10-29 14:36 ` [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages Pierre-Henry Fröhring
2023-10-29 14:36   ` [bug#66801] [PATCH va3e5ae0f..37252e07 02/32] gnu: erlang updated Pierre-Henry Fröhring
2023-10-29 19:22     ` Liliana Marie Prikler
2023-10-29 14:36   ` [bug#66801] [PATCH va3e5ae0f..37252e07 03/32] gnu: erlang-certifi: moved to erlang-xyz.scm Pierre-Henry Fröhring
2023-10-29 19:25     ` Liliana Marie Prikler
2023-10-29 14:36   ` [bug#66801] [PATCH va3e5ae0f..37252e07 04/32] gnu: erlang-getopt: " Pierre-Henry Fröhring
2023-10-29 14:36   ` [bug#66801] [PATCH va3e5ae0f..37252e07 05/32] gnu: erlang-edown: " Pierre-Henry Fröhring
2023-10-29 14:36   ` [bug#66801] [PATCH va3e5ae0f..37252e07 06/32] gnu: erlang-rebar3-git-vsn: " Pierre-Henry Fröhring
2023-10-29 19:31     ` Liliana Marie Prikler
2023-10-29 19:42       ` Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 07/32] gnu: erlang-rebar3-raw-deps: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 08/32] gnu: erlang-rebar3-proper: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 09/32] gnu: erlang-bbmustache: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 10/32] gnu: erlang-cf: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 11/32] gnu: erlang-yamerl: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 12/32] gnu: erlang-covertool: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 13/32] gnu: erlang-cth-readable: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 14/32] gnu: erlang-erlware-commons: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 15/32] gnu: erlang-eunit-formatters: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 16/32] gnu: erlang-proper: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 17/32] gnu: erlang-hex-core: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 18/32] gnu: erlang-jsx: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 19/32] gnu: erlang-relx: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 20/32] gnu: erlang-providers: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 21/32] gnu: erlang-jsone: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 22/32] gnu: erlang-parse-trans: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 23/32] gnu: erlang-unicode-util-compat: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 24/32] gnu: erlang-idna: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 25/32] gnu: erlang-bear: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 26/32] gnu: erlang-erlang-color: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 27/32] gnu: erlang-tdiff: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 28/32] gnu: erlang-rebar3-ex-doc: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 29/32] gnu: erlang-samovar: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 30/32] gnu: erlang-geas: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 31/32] gnu: erlang-covertool: " Pierre-Henry Fröhring
2023-10-29 14:37   ` [bug#66801] [PATCH va3e5ae0f..37252e07 32/32] gnu: erlang-telemetry: " Pierre-Henry Fröhring
2023-10-29 18:29   ` [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages Liliana Marie Prikler
2023-10-29 22:14     ` Pierre-Henry Fröhring
2023-10-30  5:29       ` Liliana Marie Prikler
2023-10-30 12:30         ` Pierre-Henry Fröhring
2023-10-30 20:40           ` Liliana Marie Prikler
2023-11-08  9:21 ` [bug#66801] A minimal set of changes Pierre-Henry Fröhring
2023-11-08  9:22 ` [bug#66801] [PATCH 0/5] build Erlang packages with dependencies Pierre-Henry Fröhring
2023-11-08  9:22   ` [bug#66801] [PATCH 1/5] guix: build-system: rebar: " Pierre-Henry Fröhring
2023-11-08 20:40     ` Liliana Marie Prikler
2023-11-13 18:58       ` Pierre-Henry Fröhring
2023-11-08  9:22   ` [bug#66801] [PATCH 2/5] gnu: Add erlang-goldrush Pierre-Henry Fröhring
2023-11-08  9:22   ` [bug#66801] [PATCH 3/5] gnu: Add erlang-lager Pierre-Henry Fröhring
2023-11-08  9:22   ` [bug#66801] [PATCH 4/5] gnu: Add erlang-unicode-util-compat Pierre-Henry Fröhring
2023-11-08  9:22   ` [bug#66801] [PATCH 5/5] gnu: Add erlang-idna Pierre-Henry Fröhring
2023-11-13 20:26 ` [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system Pierre-Henry Fröhring
2023-11-13 21:22   ` Liliana Marie Prikler
2023-11-14 10:37     ` Pierre-Henry Fröhring
2023-11-14 17:53       ` Liliana Marie Prikler
2023-11-15  9:57         ` Pierre-Henry Fröhring
2023-11-15  9:59           ` Pierre-Henry Fröhring
2023-11-15 12:40           ` [bug#66801] Fwd: " Pierre-Henry Fröhring
2023-11-15 18:36           ` [bug#66801] " Liliana Marie Prikler
2023-11-15 22:49             ` Pierre-Henry Fröhring
2023-11-15 22:51 ` [bug#66801] [PATCH v3 " Pierre-Henry Fröhring
2023-11-16  2:05   ` Liliana Marie Prikler
2023-11-16 13:01     ` Pierre-Henry Fröhring
2023-11-16 15:11       ` Liliana Marie Prikler [this message]
2023-11-16 18:12         ` Pierre-Henry Fröhring
2023-11-16 19:34           ` Liliana Marie Prikler
2023-11-17  7:36             ` Pierre-Henry Fröhring
2023-11-17  8:03 ` Pierre-Henry Fröhring
2023-11-17 19:24   ` Liliana Marie Prikler
2023-11-18  4:44     ` Pierre-Henry Fröhring
2023-11-18  7:12       ` Liliana Marie Prikler
2023-11-18 10:19         ` Pierre-Henry Fröhring
2023-11-18 11:11           ` Liliana Marie Prikler
2023-11-18 12:02             ` Pierre-Henry Fröhring
2023-12-07 22:34 ` [bug#66801] [PATCH] " Pierre-Henry Fröhring
2023-12-08  7:25   ` Liliana Marie Prikler
2023-12-08  8:01     ` Pierre-Henry Fröhring
2023-12-08  9:52       ` Liliana Marie Prikler
2023-12-08 10:17         ` Pierre-Henry Fröhring
2023-12-08 11:50           ` Liliana Marie Prikler
2023-12-08 14:20             ` Pierre-Henry Fröhring
2023-12-08 14:55               ` Liliana Marie Prikler
2023-12-08 11:10 ` [bug#66801] [PATCH 01/15] " Pierre-Henry Fröhring
2023-12-08 11:10   ` [bug#66801] [PATCH 02/15] gnu: elixir: Wrap binaries Pierre-Henry Fröhring
2023-12-08 11:10   ` [bug#66801] [PATCH 03/15] gnu: Add elixir-hex Pierre-Henry Fröhring
2023-12-08 14:27 ` [bug#66801] [PATCH v3 01/15] build-system: Add mix-build-system Pierre-Henry Fröhring
2023-12-08 14:27   ` [bug#66801] [PATCH v3 02/15] gnu: elixir: Wrap binaries Pierre-Henry Fröhring
2023-12-08 14:27   ` [bug#66801] [PATCH v3 03/15] gnu: Add elixir-hex Pierre-Henry Fröhring
2023-12-08 15:29     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 04/15] gnu: Add elixir-nimble-parsec Pierre-Henry Fröhring
2023-12-08 15:30     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 05/15] gnu: Add elixir-makeup Pierre-Henry Fröhring
2023-12-08 15:30     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 06/15] gnu: Add elixir-jason Pierre-Henry Fröhring
2023-12-08 15:31     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 07/15] gnu: Add elixir-file-system Pierre-Henry Fröhring
2023-12-08 15:33     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 08/15] gnu: Add elixir-bunt Pierre-Henry Fröhring
2023-12-08 15:33     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 09/15] gnu: Add elixir-inch-ex Pierre-Henry Fröhring
2023-12-08 15:35     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 10/15] gnu: Add elixir-castore Pierre-Henry Fröhring
2023-12-08 15:36     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 11/15] gnu: Add elixir-excoveralls Pierre-Henry Fröhring
2023-12-08 15:38     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 12/15] gnu: Add elixir-credo Pierre-Henry Fröhring
2023-12-08 15:39     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 13/15] gnu: Add elixir-erlex Pierre-Henry Fröhring
2023-12-08 15:39     ` Liliana Marie Prikler
2023-12-08 15:03   ` [bug#66801] [PATCH v3 14/15] gnu: Add elixir-dialyxir Pierre-Henry Fröhring
2023-12-08 15:03   ` [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete Pierre-Henry Fröhring
2023-12-08 15:40     ` Liliana Marie Prikler
2023-12-08 17:30       ` Pierre-Henry Fröhring
2023-12-08 18:01         ` Liliana Marie Prikler
2023-12-08 18:19           ` Pierre-Henry Fröhring
2023-12-08 18:35 ` [bug#66801] [PATCH v4 01/15] build-system: Add mix-build-system Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 02/15] gnu: elixir: Wrap binaries Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 03/15] gnu: Add elixir-hex Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 04/15] gnu: Add elixir-nimble-parsec Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 05/15] gnu: Add elixir-makeup Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 06/15] gnu: Add elixir-jason Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 07/15] gnu: Add elixir-file-system Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 08/15] gnu: Add elixir-bunt Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 09/15] gnu: Add elixir-inch-ex Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 10/15] gnu: Add elixir-castore Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 11/15] gnu: Add elixir-excoveralls Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 12/15] gnu: Add elixir-credo Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 13/15] gnu: Add elixir-erlex Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 14/15] gnu: Add elixir-dialyxir Pierre-Henry Fröhring
2023-12-08 18:35   ` [bug#66801] [PATCH v4 15/15] gnu: Add elixir-machete Pierre-Henry Fröhring
2023-12-10 12:34 ` [bug#66801] (no subject) Pierre-Henry Fröhring
2023-12-10 13:03 ` [bug#66801] [PATCH v5 01/15] build-system: Add mix-build-system Pierre-Henry Fröhring
2023-12-10 13:03   ` [bug#66801] [PATCH v5 02/15] gnu: elixir: Wrap binaries Pierre-Henry Fröhring
2023-12-10 13:03   ` [bug#66801] [PATCH v5 03/15] gnu: Add elixir-hex Pierre-Henry Fröhring
2023-12-10 13:03   ` [bug#66801] [PATCH v5 04/15] gnu: Add elixir-nimble-parsec Pierre-Henry Fröhring
2023-12-10 13:03   ` [bug#66801] [PATCH v5 05/15] gnu: Add elixir-makeup Pierre-Henry Fröhring
2023-12-10 13:03   ` [bug#66801] [PATCH v5 06/15] gnu: Add elixir-jason Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 07/15] gnu: Add elixir-file-system Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 08/15] gnu: Add elixir-bunt Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 09/15] gnu: Add elixir-inch-ex Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 10/15] gnu: Add elixir-castore Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 11/15] gnu: Add elixir-excoveralls Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 12/15] gnu: Add elixir-credo Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 13/15] gnu: Add elixir-erlex Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 14/15] gnu: Add elixir-dialyxir Pierre-Henry Fröhring
2023-12-10 13:04   ` [bug#66801] [PATCH v5 15/15] gnu: Add elixir-machete Pierre-Henry Fröhring
2023-12-10 14:20   ` [bug#66801] [PATCH v5 01/15] build-system: Add mix-build-system Liliana Marie Prikler
2023-12-10 14:22     ` Pierre-Henry Fröhring
2023-12-18  3:01       ` bug#66801: " Liliana Marie Prikler
2023-12-10 13:05 ` [bug#66801] Erratum Pierre-Henry Fröhring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com \
    --to=liliana.prikler@gmail.com \
    --cc=66801@debbugs.gnu.org \
    --cc=phfrohring@deeplinks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.