unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
To: guile-user@gnu.org
Subject: Re: Newbie thoughts on Guile Hall + Guix
Date: Sun,  6 Feb 2022 02:53:21 +0000	[thread overview]
Message-ID: <dbd5dc39-1476-9f91-e745-5868b3bf5c59@posteo.de> (raw)
In-Reply-To: <87iltt846s.fsf@dustycloud.org>

On 2/5/22 21:01, Christine Lemmer-Webber wrote:
> Hello!
>
> It's been a while since Guile was my main hacking environment; I've been
> returning to it, and one of the nicest things to change about its
> ecosystem is the presence of Guile Hall.
>
> I really, really like Guile Hall.  A lot!  I think it has room to grow
> but it fills a clearly missing piece of the Guile ecosystem while doing
> it in the best way possible: making itself explicitly compatible with
> Guix.
>
> I thought I'd write down some impressions while everything is fresh.
>
>   - Its ability to make an autotools-compatible tarball, but without me
>     needing to think about autotools at all, is a real delight.
>
>   - Its test suite stuff is also really nice.
>
>   - I found myself surprised that hall.scm is "just data", instead of
>     taking the more guix'y approach of being code that actually builds a
>     datastucture.  I'm not sure what the goal of this is; there can be
>     reasons to take that approach but I'm not sure what it is here?
>     My assumption is that the main reason is so that "hall scan" can
>     correctly read and then modify and spit out another file, but I'm
>     not sure.
>
>   - What I would actually *really* like would be for the Hall package
>     definition structure to be a wrapper *around* the Guix package
>     structure.  Then the guix.scm would be really simple: it could just
>     "peel off" the outer struct.  If I wanted to do some smart
>     modifications of things from there maybe I could.  I dunno, something
>     like this.
>
>   - "hall scan" is really cool, but I kind of wish I didn't need to use
>     it.  I'd rather not keep track of any of this stuff at all.
>     I'd be happy just pointing some code at a directory and say "snarf
>     up all the .scm files you see therein!"
>
>   - I'm currently writing a manual starting in a .org file that's then
>     converted into a .texi file.  I'd prefer if I could find an
>     entrypoint to insert this into the compilation workflow: a pre-step
>     to the docs compilation that generates the .texi file *from* my
>     .org file.
>   
>   - On that note, it strikes me that Hall's integration with autotools
>     is great because it means that existing distros don't need to be
>     aware of Guile *or* Guix.  But it also means that Hall probably has
>     all of the information that it could do all the steps that autoconf
>     and automake do too.  That might be interesting to see that.
>     
> Anyway, just some thoughts.  Making Guile packages is already much less
> intimidating now thanks to Hall's work.  Thank you for it!
>
>   - Christine

For what it is worth: You do not need to use Hall, if you do not need to run 
tests, when installing via Guix or similar things. If you are fine with running 
tests before publishing a version of a package to Guix, then you only need Guix 
and a package definition. No autotools.

I found all the stuff that is generated by Hall a bit worrying. Lots of 
autotools appearing in my repository, which I do not fully understand. Being 
forced to use hall scan and so on. Too much magic behind the scenes. Packaging 
should be so simple, that I can still easily understand all the things in my 
repository, without studying autotools for a week, searching for archaic 
variable names and what they to and how everything works. I am not a huge fan of 
the JS ecosystem at all, but if we look at the NPM world, there is only one file 
that needs to exist, the package.json, and already you have a valid package. Why 
can it not be the same simplicity for Guile? And if Guix really requires there 
to be a `make` `make check` or whatever, then where is the guide, that tells me 
how to hand-craft the Makefile, so that everything works and I don't need extra 
tooling to generate files.

I want to be able to edit the guix package definition, point it to the tests 
directory, and be done with it. When I use Hall, then I have yet another tool in 
the workflow. Again more commands and things to keep in mind. I want less tools 
and simplicity. I don't run autotools for running my tests locally, so there is 
no theoretical need for that. The maximum I do it a very simple Makefile, which 
provides me with a `make test` to run tests or `make` to run the program. It is 
just that from the Guix side of things, something would have to be done to be 
able to invoke tests properly, without a `make test` command being available, 
but knowing where the tests are. They could be declared in the package 
definition for example. Why do I need any autotools stuff? Just make Guix call 
my SRFI-64 tests.

This is why I decided to not use Hall for guile-fslib. I did not like the 
complexity of having all the autotools stuff in my repo, which I don't even 
fully understand, just for it becoming a package. Even if I don't need to 
manually touch any of those files. I can run tests on my machine before sending 
in a patch for a new version and that will be fine.

Hall is probably a great thing, if you have a package, that is not pure Guile, 
so that one has to do other things than simply running a Guile command to run 
the tests, perhaps to generate documentation or other files. For pure Guile 
packages, I still need to see or learn about a good reason to add the complexity 
of it to a repository.

Best regards,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl




  parent reply	other threads:[~2022-02-06  2:53 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-05 20:01 Newbie thoughts on Guile Hall + Guix Christine Lemmer-Webber
2022-02-05 22:15 ` Mikael Djurfeldt
2022-02-05 23:19   ` Jose Antonio Ortega Ruiz
2022-02-06 14:09     ` Ricardo Wurmus
2022-02-06  0:40   ` Christine Lemmer-Webber
2022-02-06  4:54     ` Aleix Conchillo Flaqué
2022-02-06 13:14       ` Mikael Djurfeldt
2022-02-06 14:03         ` Ricardo Wurmus
2022-02-06 14:28           ` Vijay Marupudi
2022-02-06 14:53             ` Ognen Duzlevski
2022-02-06 15:13               ` Maxime Devos
2022-02-06 15:29               ` Vijay Marupudi
2022-02-06 21:34                 ` Zelphir Kaltstahl
2022-02-07  2:11                   ` David Pirotte
2022-02-07  2:47                     ` David Pirotte
2022-02-07 19:21                     ` Zelphir Kaltstahl
2022-02-07 22:35                   ` adriano
2022-02-05 22:16 ` Vivien
2022-02-06  2:53 ` Zelphir Kaltstahl [this message]
2022-02-06 16:35 ` Olivier Dion via General Guile related discussions
2022-02-06 16:44   ` Vivien Kraus
2022-02-06 22:10     ` Olivier Dion via General Guile related discussions
2022-02-06 16:55   ` Maxime Devos
2022-02-06 22:05     ` Olivier Dion via General Guile related discussions
2022-02-06 22:32       ` Maxime Devos
2022-02-06 23:00         ` Olivier Dion via General Guile related discussions
2022-02-06 21:37   ` Zelphir Kaltstahl
2022-02-06 22:12     ` Olivier Dion via General Guile related discussions
  -- strict thread matches above, loose matches on Subject: below --
2022-02-06 13:40 dsmich
2022-02-08 12:19 Blake Shaw
2022-02-08 19:46 ` Chris Vine
2022-02-09  6:28 ` Catonano
2022-02-08 16:13 Blake Shaw
2022-02-09  3:23 Blake Shaw
2022-02-09 10:30 Blake Shaw
2022-02-09 14:13 ` Olivier Dion via General Guile related discussions
2022-02-09 20:05   ` Aleix Conchillo Flaqué
2022-02-09 20:28     ` Maxime Devos
2022-02-09 21:13       ` Aleix Conchillo Flaqué
2022-02-10 18:03     ` Vivien
2022-02-10 12:42 Blake Shaw

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://www.gnu.org/software/guile/

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

  git send-email \
    --in-reply-to=dbd5dc39-1476-9f91-e745-5868b3bf5c59@posteo.de \
    --to=zelphirkaltstahl@posteo.de \
    --cc=guile-user@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.
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).