Re: The e(macs)lephant in the room and the Guix Bang

2023-09-22 Thread Nathan Dehnel


>Hi, for some reason emacs has become the elephant in the room of the
discussion on contributing to guix.

>Regardless of one's opinion of emacs, I just want to add that this is
itself strange.  I have contributed some (package definition) patches
to guix, all without using emacs.

>I am not an emacs user, so emacs is not necessary for contributing to guix.
For what it's worth, the emacs-motif package in Guix was my addition.
I don't use it myself.

I don't use emacs either (because it's so impenetrable), so I just use
kate instead, which isn't a great environment for me either. It has
rainbow parens, but it doesn't balance them, which is a hassle. I keep
using it though due to lack of time to browse through alternatives. I
heard about guile-studio, but it doesn't appear to have a dark mode,
and I imagine trying to add one would require a bunch of emacs-style
screwing around with it.

https://archive.fosdem.org/2022/schedule/event/lispforeveryone/
This is the only setup for coding in lisp that has actually looked
attractive to me. (Coding in wisp with colored blocks that transpiles
to s-expressions) Though I haven't had the time (and probably
expertise) to set it up for myself.



Re: Stuck patch 64345

2023-09-22 Thread Development of GNU Guix and the GNU System distribution.
Hi nigko,

On Fri, Sep 22 2023, nigko wrote:

> As far as I understand the reason for this behavior is that since I sent 
> the patch the content of the gnu/packages/maths.scm was modified by 
> another patch(es) and now git is unable to apply my old patch onto new 

Yes! It's probably your copyright line at the top.

> What am I supposed to do to promote my stuck 
> patch?

Please rebase your patch onto the current 'master' branch from Savannah.

> Should I resend it anew?

Just amend your existing bug. Please also tag your submission with '-v2'
as explained here. [1]

Thank you for your valuable contribution to Guix!

Kind regards
Felix

[1]
https://guix.gnu.org/manual/en/manual/devel/en/html_node/Sending-a-Patch-Series.html#Single-Patches-1



Re: How can we decrease the cognitive overhead for contributors?

2023-09-22 Thread Ekaitz Zarraga
 
> I think a lot of this discussion is stuck on what is better web or
> email. Where it doesn't have to be.
> 
> What we instead need to do is acknowledge that some people like the web
> approach.
> 
> And accommodate them so we can have guix used by more people. Simple as that 
> :D


Exactly.
An option is to make some kind of user-story based documentation might help?

For example:

--
- If you are used to a web-based git forge such as gitlab or github, Guix's 
approach
to collaboration might seem a little bit hard at the beginning.
Guix uses an email based approach, like many other GNU projects do. Email based
approach relies on sending commits as patches that can be later applied by 
commiters
and maintainers. Thee patches are sent via email, in plain text, instead of 
using a
website for a Pull- or Merge- Request.

You don't have to worry about the format of the emails, as git is able to 
generate
them for you:

   $ git commit ...
   $ git format-patch ...

If you configure git properly (link to how to do it), git can send those emails 
to
guix automatically (see Using Git Send Mail). If you prefer, you can copy the 
content
of the file `format-patch` generates in a plain text email, or attach it and 
send it to
`guix-patches`.

When that email is received a bug report will be opened in guix's issue system, 
where
you can further discuss, as you would do in any other issue board or merge- or 
pull-
-request discussion. The discussion is available at `URL` and looks like 
`screenshot`.

If you want to share a series of patches...
--

Something like that (done with more care and attention than what I just did), 
might
help newcomers. It's mostly the same our documentation says, but our 
documentation
currently (I think) relies too much on the people knowing what everything means.

Maybe a deeper contribution guide might be an interesting thing to write down...
Also including some introduction to the internals and how to write a 
build-system...
Stuff like that is always useful.
It has to be properly maintained though, but even if it is out of date, it's 
still
a valuable resource to have some info about the *concepts*. (we can always put 
the
date of the latest change and a note: this documentation is designed to explain 
the
concepts, the specific details might be out of date, but the concepts remain).

Or something, I don't know. But I'm open to try it :)


The case of the Changelog commits has been discussed and its important too.
We need to be able to make contributors learn how much they need to write down 
in
the commit messages. I tend to write too much, and I don't think any of my 
patches
have been applied without changes in the commit message.

For example, in guix we often do (I just invented the name): 

gnu: Add lolo

* gnu/packages/engineering.scm(lolo): New variable.

Is that enough to describe the addition of a new package? If you know what you 
are
looking for it might be, but it looks like an automatism commiters have that is 
not
communicated properly. What if there's something in a `let` i changed? I have 
to list
that too? What if...?

Some help on that might be useful. And also, explaining how important it is to 
follow
the jargon we use in the commit messages. Or how long should our explanations 
be...
Just to help people don't feel overwhelmed about it, nothing more than that 
(and 
nothing less!).

I don't know if this adds anything new to the conversation.

Cheers!



Re: How can we decrease the cognitive overhead for contributors?

2023-09-22 Thread MSavoritias



On 9/22/23 18:14, Imran Iqbal wrote:

On Sun, Sep 03, 2023 at 05:45:41PM +, Ekaitz Zarraga wrote:

I use protonmail and they don't provide smtp access so I can't do git
send-mail as easy as other people do.

A mail provider not allowing SMTP is a git forge that does not allow git
push.

This is not Guix's fault, but it's a problem Guix doesn't help fix either.

This is not on guix to fix, this in you with your choice of mail
provider.


This doesn't mean I'm against the email based approach, in fact, I really
like it. The main problem I see is many people inside guix are not
sensible to people's problems and tastes.

The problem is people's tastes are "we need to use the web browser for
everything" which is what computers have become in a advertising and VC
funded world. We should not be forcing that on people.


Some people are forced to use tools for several reasons, too.

But text editing and email the two things which there are a plethora of
tools, and it's very hard to imagine a scenario where someone is forced
into using one.


This is what I mean when I say many times emacs is kind of mandatory, and
this thread is kind of a demonstration of what I meant because the main
discussion evolved to: you can use this or that in emacs to ease the dev
experience.

This is because emacs is a lisp machine that just happens to let you
edit text. If you are working in a lisp-y language, emacs provides the
best development experience. Emacs also lets you hand mail inside of
emacs (among many many other things). This does not mean you are forced
to use emacs. I use neovim and neomutt for my needs.


I don't think software we use is the main problem, but the fact that we
are not always sensible with other people's experience.

Imagine a different scenario, where instead of this being about email it
was around guile. Would it be fair to say that a Guix makes it hard
to contribute by choosing to be implemented in guile? And that Guix
should move towards using another language that more people are familiar
with like python or javascript?

Personally I don't think its fair to ask Guix to move away from emails
because folks are more familiar with using web browsers for everything.



I think a lot of this discussion is stuck on what is better web or 
email. Where it doesn't have to be.


What we instead need to do is acknowledge that some people like the web 
approach.


And accommodate them so we can have guix used by more people. Simple as 
that :D



Its free software and power to the person that using the software after all.


MSavoritias




Re: How can we decrease the cognitive overhead for contributors?

2023-09-22 Thread Ekaitz Zarraga
Hi,


> On Sun, Sep 03, 2023 at 05:45:41PM +, Ekaitz Zarraga wrote:
> 
> > I use protonmail and they don't provide smtp access so I can't do git
> > send-mail as easy as other people do.
> 
> 
> A mail provider not allowing SMTP is a git forge that does not allow git
> push.


This is a feeling, not a fact.

> > This is not Guix's fault, but it's a problem Guix doesn't help fix either.
> 
> This is not on guix to fix, this in you with your choice of mail
> provider.

I didn't say it's a problem Guix needs to fix.
Also, what I'm trying to say here is maybe I didn't have the chance to choose
my email provider.
This is the exact behavior that I was saying it's not helpful.

The email based approach is fantastic, and as good as it is, is flexible enough
to let me use it even if I don't have SMTP access.
What I think Guix docs lack is an explanation for those users like me, that
don't have the privilege or the mental clarity to choose an email provider that
matches your standards.

> > This doesn't mean I'm against the email based approach, in fact, I really
> > like it. The main problem I see is many people inside guix are not
> > sensible to people's problems and tastes.
> 
> The problem is people's tastes are "we need to use the web browser for
> everything" which is what computers have become in a advertising and VC
> funded world. We should not be forcing that on people.


This is a projection, not what I meant.

And even with that, if everyone wants to use the browser for everything
maybe, if what we want is to *actually* reduce the cognitive overhead of
people we *should* consider giving them a chance.
Or should we *correct* people's tastes because they are wrong, as you
suggest here?

I'm not asking Guix to change the tools but the information about them.
Make them more approachable doesn't necessarily mean to use a flashy web
application imho. It means to give tools and knowledge, or at least to
give enough pointers to that knowledge to let people jump in and feel
comfortable in an easy way.

So, in any case I meant what you are implying here, and I even find slightly
offensive that kind of comment. It feels pretty insensible and purposely 
misleading. 

(Also: VCs and advertising have nothing to do with this, people who proposed
forges proposed quite reasonable alternatives)

> > Some people are forced to use tools for several reasons, too.
> 
> But text editing and email the two things which there are a plethora of
> tools, and it's very hard to imagine a scenario where someone is forced
> into using one.

Some people can't install things in their devices, or they can't access
the network using certain protocols. Giving alternatives helps that group
of people.
 
> > This is what I mean when I say many times emacs is kind of mandatory, and
> > this thread is kind of a demonstration of what I meant because the main
> > discussion evolved to: you can use this or that in emacs to ease the dev
> > experience.
> 
> This is because emacs is a lisp machine that just happens to let you
> edit text. If you are working in a lisp-y language, emacs provides the
> best development experience. Emacs also lets you hand mail inside of
> emacs (among many many other things). This does not mean you are forced
> to use emacs. I use neovim and neomutt for my needs.

Again, this comment assumes I don't understand the reasons behind it.
The problem I'm trying to point is not that emacs is not great, but the fact
that new people to the project has tons of info about emacs and around zero
about any other editor or configuration, giving them the false (as you point)
image that emacs is mandatory to work in guix.

It's a matter of sensibility, exactly the thing you are not having here.

> > I don't think software we use is the main problem, but the fact that we
> > are not always sensible with other people's experience.
> 
> Imagine a different scenario, where instead of this being about email it
> was around guile. Would it be fair to say that a Guix makes it hard
> to contribute by choosing to be implemented in guile? And that Guix
> should move towards using another language that more people are familiar
> with like python or javascript?

That argument is not a fair argument either.
Guile is structural in Guix, but emails are not and (you said it) emacs is
not either.

Also, what we are trying to do here is to reduce the cognitive overhead of
*contributors*, not from every possible individual in the world.

This is not only misleading, but unfair with my comment.
You nitpicked every part of my message you could use for your final argument.
Which is the following:
 
> Personally I don't think its fair to ask Guix to move away from emails
> because folks are more familiar with using web browsers for everything.

First, I didn't, and most of the people didn't, ask Guix to move away from
emails.

Second, folks that are more familiar with web browsers are not inferior to
the users that like using the email. If the majority o

Re: How can we decrease the cognitive overhead for contributors?

2023-09-22 Thread Katherine Cox-Buday
Imran Iqbal  writes:

> Personally I don't think its fair to ask Guix to move away from emails
> because folks are more familiar with using web browsers for everything.

Imran, you bring up good points. I wanted to state that I share this opinion: 
Guix should not move away from emails.

I view this conversation as discussing root-causes and ways to address those 
root causes through addition, not subtraction.

I hope that helps to assuage your concerns.



Re: OCI-backed Guix System Services

2023-09-22 Thread paul

Hi Ricardo,

On 9/21/23 00:12, Ricardo Wurmus wrote:

Because integration with Shepherd is nice I wrote the Swineherd which
serves a related need: https://github.com/BIMSBbioinfo/swineherd


I saw that but I still haven't managed to find the time to play with it, 
it looks quite cool :) I'd love to be able to drop docker compose for 
local development environment in favor of something like the Swineherd.


giacomo




Re: How can we decrease the cognitive overhead for contributors?

2023-09-22 Thread Imran Iqbal
On Sun, Sep 03, 2023 at 05:45:41PM +, Ekaitz Zarraga wrote:
> I use protonmail and they don't provide smtp access so I can't do git
> send-mail as easy as other people do.

A mail provider not allowing SMTP is a git forge that does not allow git
push.
> This is not Guix's fault, but it's a problem Guix doesn't help fix either.

This is not on guix to fix, this in you with your choice of mail
provider.

> This doesn't mean I'm against the email based approach, in fact, I really
> like it. The main problem I see is many people inside guix are not
> sensible to people's problems and tastes.

The problem is people's tastes are "we need to use the web browser for
everything" which is what computers have become in a advertising and VC
funded world. We should not be forcing that on people.

> Some people are forced to use tools for several reasons, too.

But text editing and email the two things which there are a plethora of
tools, and it's very hard to imagine a scenario where someone is forced
into using one.

> This is what I mean when I say many times emacs is kind of mandatory, and
> this thread is kind of a demonstration of what I meant because the main
> discussion evolved to: you can use this or that in emacs to ease the dev
> experience.

This is because emacs is a lisp machine that just happens to let you
edit text. If you are working in a lisp-y language, emacs provides the
best development experience. Emacs also lets you hand mail inside of
emacs (among many many other things). This does not mean you are forced
to use emacs. I use neovim and neomutt for my needs.

> I don't think software we use is the main problem, but the fact that we
> are not always sensible with other people's experience.

Imagine a different scenario, where instead of this being about email it
was around guile. Would it be fair to say that a Guix makes it hard
to contribute by choosing to be implemented in guile? And that Guix
should move towards using another language that more people are familiar
with like python or javascript?

Personally I don't think its fair to ask Guix to move away from emails
because folks are more familiar with using web browsers for everything.



Re: Version from file in a package

2023-09-22 Thread paul

Hi Reza,

I believe local-file should import (guix utils) and use 
current-source-directory. Something like:


(define %cwd (current-source-directory))

(let ([...]
  (version-file (string-append %cwd "/VERSION"))

  [...]

   (source (local-file (string-append %cwd "/../..") "my-package-checkout"
  
  [...]


The current directory may not be where the VERSION file is.

giacomo


Version from file in a package

2023-09-22 Thread Reza Housseini

Hi List

Following the excellent blog post from Ludo [1] to guixify my python 
project, I wanted to include a version string from file to have a single 
source for the guix files and also for the python pyproject.toml file.

Something along this:

(define-public my-package
  (let* ((vcs-file? (or (git-predicate %source-dir) (const #t)))
 (version-file "VERSION")
 (version-from-file (call-with-input-file version-file get-string-all)))
(package
  (name "my-package")
  (version version-from-file)
  (source (local-file "../.." "my-package-checkout"
  #:recursive? #t
  #:select? vcs-file?))
  (build-system pyproject-build-system)
  ...

this seems to work when I build locally but throws an error when I build 
after a guix pull:


(exception system-error (value "open-file") (value "~A: ~S") (value ("No 
such file or directory" "VERSION")) (value (2)))


How can I achieve this?

Thanks for your input!

Best,
Reza

[1] 
https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Stuck patch 64345

2023-09-22 Thread nigko

Hello Guix!

Almost three months ago I sent a patch https://issues.guix.gnu.org/64345 
introducing a package reduce-csl, a computer algebra system Reduce 
similar to Maxima. It was successfully built on major architectures and 
acquired a 'green' status, waiting for a review. But then some dramatic 
changes happened on https://qa.guix.gnu.org/ and my patch went to a 
'gray' zone. Recently a massage with the content


Unable to apply patches

Applying: gnu: Add reduce-csl.
Using index info to reconstruct a base tree...
M   gnu/packages/maths.scm
Falling back to patching base and 3-way merge...
Auto-merging gnu/packages/maths.scm
CONFLICT (content): Merge conflict in gnu/packages/maths.scm
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 gnu: Add reduce-csl.
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

has appeared on https://qa.guix.gnu.org/issue/64345

As far as I understand the reason for this behavior is that since I sent 
the patch the content of the gnu/packages/maths.scm was modified by 
another patch(es) and now git is unable to apply my old patch onto new 
commits automatically. What am I supposed to do to promote my stuck 
patch? Should I resend it anew?


Regards,
N Y