unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Daniel Meißner" <daniel.meissner-i4k@ruhr-uni-bochum.de>
To: guix-devel@gnu.org, Arun Isaac <arunisaac@systemreboot.net>
Cc: "Ludovic Courtès" <ludo@gnu.org>,
	"Efraim Flashner" <efraim@flashner.co.il>
Subject: Re: Development repositories as Guix channels
Date: Thu, 06 Jul 2023 19:40:16 +0200	[thread overview]
Message-ID: <C8E32A49-3486-44F9-8515-D673A24A2ED0@ruhr-uni-bochum.de> (raw)
In-Reply-To: <87edllw1k5.fsf@systemreboot.net>

Hi Arun,

Am 6. Juli 2023 16:35:06 MESZ schrieb Arun Isaac <arunisaac@systemreboot.net>:
> 
> Hi,
> 
> This is with reference to the "Level 2: The repository as a channel"
> section in the Guix blog post "From development environments to
> continuous integration—the ultimate guide to software development with
> Guix"[1]. This section describes how to convert a project repository
> into a Guix channel so that the repository can double as a way to
> distribute packages. I have been trying to follow the instructions and
> have hit a little snag.
> 
> The post says the source field of the package definition should be a
> local-file file-like object. This is fine as long as we are using `guix
> build' to build packages in the repository. But, when the repository is
> distributed as a channel, the local-file becomes meaningless. The
> channel only has access to the sources under the .guix/modules directory
> and none of the sources required to build the package itself.
> 
> It seems to me that it is not possible to distribute project
> repositories as Guix channels. But hopefully, I'm missing something
> simple. Could anybody please clarify?

I have recently followed the instructions from this blog post as well and indeed you are right that it does not work as advertised. There's however only a small mistake in the changes for Level 2. You have to replace the relative path in the local-file form with "../.." as that gives you the root of your source tree relative to the new location of the Scheme file. Then everything works nicely. Even building the package with `guix build -f guix.scm' works from the root of the tree. Somehow Guile computes the directory relative to real file and not the symlink. Didn't expect.

Bonus: I have even setup CI via Cuirass which was surprisingly easy on a Guix system and now it rebuilds my package every time one of its inputs in Guix changes ❤️ This is awesome! Thanks for this blog post, it was inspiring.

Hope that helps

Best

-- 
Daniel


  reply	other threads:[~2023-07-06 17:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-06 14:35 Development repositories as Guix channels Arun Isaac
2023-07-06 17:40 ` Daniel Meißner [this message]
2023-07-09 23:07   ` Arun Isaac
2023-07-16 13:22     ` Ludovic Courtès
2023-07-16 17:58       ` Arun Isaac

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=C8E32A49-3486-44F9-8515-D673A24A2ED0@ruhr-uni-bochum.de \
    --to=daniel.meissner-i4k@ruhr-uni-bochum.de \
    --cc=arunisaac@systemreboot.net \
    --cc=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).