Re: SSH key management for Guix cloud machines

2024-01-20 Thread Development of GNU Guix and the GNU System distribution.
Hi Fabio,

On Fri, Jan 19 2024, Fabio Natali wrote:

> How does the publishing happen exactly

You can query SSH server keys remotely [1] but I would deploy keys I
know already.

Kind regards
Felix

[1] https://serverfault.com/a/1033095



Re: December/January update on QA and related things

2024-01-20 Thread Development of GNU Guix and the GNU System distribution.
Hi Chris,

On Sat, Jan 20 2024, Christopher Baines wrote:

> I hopefully mitigated the port encoding issue [3] by switching from
> using the display procedure to log to using string->utf8 and
> put-bytevector.
>
> [...]
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62590

Could the error be due to the 7-bit encoding in HTTP headers? [1] The
"84" is EILSEQ from errno.h. [2] Wingo added the functionality here. [3]

I left that comment in your bug, and in Bug#59510. [4] I also submitted
a patch to resolve the errno in the future. [5] Then I wrote here in
case anyone sees the error again.

Thank you for your hard work on the Guix infrastructure! Your generous
contributions serve as inspirations to many.

Kind regards
Felix

[1] https://lists.gnu.org/archive/html/guile-user/2020-09/msg00015.html
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/errno.h#n67
[3] 
https://git.savannah.gnu.org/cgit/guile.git/commit/?id=43b6feeb1adafe54170304e7cc3c29a15c1d3808
[4] https://issues.guix.gnu.org/59510
[5] https://debbugs.gnu.org/68624



Re: Guix CLI, thoughts and suggestions

2024-01-20 Thread Ian Eure

Hi Carlo,

Thank you for the thoughtful reply.

Carlo Zancanaro  writes:


Hi Ian,

Much of what you've written is fair, and I'm sure that Guix's 
commands
could be better organised. I'm not really involved in Guix 
development,
but I think there are two "inconsistencies" that you've 
mentioned which

can be explained.

On Mon, Jan 15 2024, Ian Eure wrote:
Some examples of where I think Guix could do better.  This is 
an

illustrative list, not an exhaustive one.

Inconsistent organization
=

Most package-related commands are under `guix package', but 
many are
sibling commands.  Examples are `guix size', `guix lint', `guix 
hash',

etc.


I think the real inconsistency here is that `guix package' is 
poorly
named. This command really operates on profiles, and performs 
operations
(install, remove, list, etc.) on those profiles. Packages are 
given as

arguments to this command.

The other commands operate on, and show the properties of, 
packages.

Similarly with `guix build'.



Yes, I agree the behavior makes a bit more sense from that 
viewpoint.  However, it does have non-profile-related things in 
it, such as `--show' and `--search'.  This is getitng into another 
thing I’ve seen a bit of, which is overloaded commands -- ones 
that do multiple things that are unrelated or tangentally related. 
But, I didn’t have a good example, and my message was long enough 
already.





Inconsistency between verbs and options
===


... For example, installing a package is `guix package -i foo' 
rather
than `guix package install foo', removing is `guix package -r 
foo'
rather than `guix package remove foo', and listing installed 
packages

is `guix package -I' rather than `guix package installed' (or
similar).


The specific example of `guix package' might be explained by 
considering
it as a single transaction to update the profile. The command 
`guix
package' really says "perform a transaction on the profile", and 
the
options are the commands in the transaction. Since there can be 
multiple
commands, and the command names look like package names, they 
are

provided as options.

This doesn't fully explain the behaviour. In particular the 
example you

give:

This means that users can express commands which *seem* like 
they

should work, but do not.  For example `guix package -i emacs -r
emacs-pgtk -I' represents a command to 1) install emacs 2) 
remove
emacs-pgtk 3) list installed packages (which would verify the 
previous

two operations occurred). ...


seems reasonable to have working within the view of `guix 
package' as a

transactional operation.



I agree that this would make sense, but my understanding is that 
`guix package' doesn’t work like that -- it only performs the 
final operation in the list.  IMO, it should either do 
*everything* the commands specify, or print an error and take no 
action.



It's also worth noting that there are convenience shortcuts in 
`guix

install' and `guix remove'.

It seems like a lot of work to change, and backwards 
compatibility

also is an issue.


I see backwards compatibility as the main issue here. There was 
a lot of
discussion preceding the inclusion of `guix shell', because of 
the
prospect of breaking existing tutorials/documentation floating 
around on

the internet. This is an even bigger concern for a more drastic
reorganisation of the CLI.



I agree, I don’t think the situation can be improved without 
finding a solution to preserve BC.  But, I didn’t think it was 
worth making detailed plans for any of this before gauging whether 
the problem was one broadly considered to be worth solving.


 — Ian



Re: Golang mudules to follow common grouping

2024-01-20 Thread Christina O'Donnell

Hi Oleg,

> I've added comments in commentary section in the top of the file 
asking to

> keep packages alphabetically sorted seen in julia-xyz.scm as well.
> python-*.scm ordered semi random grouped closer to package purpose which
> require more thinking where to put a new one :-)

Ah, I suppose it isn't that important given you can grep for the right
package.

> Good point her, I did manual split, with Emacs keyboard macros, magit 
history
> scan for copyright lines and manual check where package was used to 
include

> new module name.
>
> The split into golang-crypto is in review now and there would be 2 
more common

> grouping: golang-compression and golang-build (or golang-extension). Rest
> packages which are hard to determine a group wound go to generic 
golang-xyz

> sorted alphabetically.

Hmm, there seems to be a limit in the degree of parallelizability in this
process unfortunately. But if there's anything you can think of that 
could help

(manually) in this effort, then I'd be happy to help!

> Let me know your tooling which you familiar with I might think
> about some sort of automation.

I've had a grep around the web and I can't see any tools or libraries 
that have
been created already to perform functions like this. I know everyone has 
their
own scripts (I've got one written in shell but it won't be of much use 
here. I

would suggest writing it in Scheme so it could be easier to add more complex
features and it's familiar to Guix developers.

 1. Put a magic comment above each package that you would like to move.
 2. Run a simple script that makes a note of all of these into a 
to-move-list.
 3. Then stash the change with the comments you made (in case you need 
to change

    things)
 4. Run another script that takes the package list and performs the move in
    one's repository.
 5. Sort out the use-package declarations manually and run tests.
 6. When satisfied, stash the change and keep just the use-package changes.
 7. Run a final script that loops through all the packages and commits 
each one

    in turn.
 8. Rebase to suit.

That's 3 scripts:
 - xyz-source-transform-read-packages scm-filename package-list (for 
step 2)
 - xyz-source-transform-move-packages package-list from-filename 
to-filename

   (for step 4)
 - xyz-source-transform-stage-package-commit package-list from-filename
   to-filename (for step 7)

(Where 'xyz' is either 'guix' or something else depending on where the 
code ends

up part of Guix or not. That's not important for now.)

Some caveats:
 - I'm not a scheme programmer, but I did use Haskell at university so I'm
   familiar with thinking in a functional style.
 - For this to work, you'd have to update most package files that 
reference (gnu

   package golang) to also reference the new package, so there will be some
   use-module redundancy (which could be resolved in a final clean-up 
commit).


I'm also imagining some the possibility of having a script that can remove
redundant #:use-module's in the future, though I don't know if we care 
about a

few unneeded modules being included.

I'd love to hear what you think before I fire up another emacs instance. 
Does it

sound like a realistic workflow?

All comments welcome!

Kind regards,
 - Christina




Re: Golang mudules to follow common grouping

2024-01-20 Thread Maxim Cournoyer
Hi Christina,

Christina O'Donnell  writes:

> Hi Oleg,
>
> On 13/01/2024 21:05, Sharlatan Hellseher wrote:
>> Hi Guix,
>>
>> I'm about to prepare split and aggregation of all golag packages
>>  related to cryptography. The process would be the same as for
>>  golang-check and golang-web.
>>
>>
>> In progress:
>> golang-cryptography
>>
>> Planned:
>> golang-compression
>> golang-build
>
> I just wanted to offer my labor to this task. I'm very new to guix
> development
> (I've only packaged one package so far), but I've got a fair amount of
> free time
> and I've been looking for ways to contribute to Guix. (Plus I've
> already got my
> head in golang.scm trying to package gitleaks and all its dependencies.)

Thanks for offering to help!  The most important part in doing so is to
synchronize with the other members of the Go team to avoid duplicating
the work, I think.

> I know that there's a lot to do already, but I was also wondering whether
> they're going in any particular order once they're moved. There's a
> comment at
> the end of golang.scm that says,
>
>> ;;; Avoid adding new packages to the end of this file. To reduce the
>   chances
>> ;;; of a merge conflict, place them above by existing packages with
>   similar
>> ;;; functionality or similar names.
>
> Would it be more organized if they was just one order: either in
> alphabetical
> order or grouped by function? My suggestion would be to use the file
> split to
> group by function and then sort each file alphabetically. Do you know
> how it is
> arranged for other languages?

That'd be neat, but in practice is hard to maintain as the module
becomes quite large and people easily (and understandably) miss the
intended grouping when adding new packages.

> Another question I have: Is there any tooling that can help big package
> migrations like this go faster? Eg. a script to split one big diff into
> individual package moves with appropriate change-log entries.

Not that I'm aware of.

-- 
Thanks,
Maxim



Re: [Guix-europe-sac] Shutting down qa.guix?

2024-01-20 Thread Christopher Baines

Andreas Enge  writes:

> Am Sat, Dec 09, 2023 at 11:54:59AM +0100 schrieb Ludovic Courtès:
>> I think this underlines a collective failure to get our act together.
>
> indeed, and besides what Simon mentioned about the bank situation I think
> there was a certain lack of consistency between deciding on the technical
> and on the financial questions. And of course the lack of urgency, since
> anyway things continued thanks to Chris... So thank you for all you have
> done, Chris, and thank you for taking action now to force us to get our act
> together! Indeed QA has become a central part of our project infrastructure.
>
> I suggest the following, which resolves the lockstep between technology and
> finance:
> - Decide that the funds at the FSF pay for the hosting in its current form.
>   Ideally move the billing to Guix Foundation, and then, as we use to do
>   for bayfront, periodically ask the FSF to reimburse the hosting cost.
>   I think we have an informal consensus for this, and just require a formal
>   vote at the Guix spending committee and at the Guix Foundation SAC.
> - Reimburse Chris for the costs incurred for hosting before this move.
>   As Simon has said, we have a vote for this already, but could also
>   start over with the exact amount once the first point is handled, so
>   that Chris does not pay for future hosting any more.
>
> Then in a separate step, other people can discuss about potential
> technical changes to the hosting situation. It would probably be good
> to have a small group of people, including Chris at least for a
> transitory period, who take care of the sysadmin part.
>
> Any thoughts on this proposal?

Sounds good to me.


signature.asc
Description: PGP signature


Re: Golang mudules to follow common grouping

2024-01-20 Thread Sharlatan Hellseher
Hi Christina,

> Would it be more organized if they was just one order: either
> in alphabetical order or grouped by function? My suggestion
> would be to use the file split to group by function and then sort
> each file alphabetically. Do you know how it is arranged for other
> languages?

I've added comments in commentary section in the top of the file
asking to keep packages alphabetically sorted seen in
julia-xyz.scm as well. python-*.scm ordered semi random grouped
closer to package purpose which require more thinking where to put a new
one : -)

> Another question I have: Is there any tooling that can help big package
> migrations like this go faster? Eg. a script to split one big diff into
> individual package moves with appropriate change-log entries.

Good point her, I did manual split, with Emacs keyboard macros,
magit history scan for copyright lines and manual check where
package was used to include new module name.

The split into golang-crypto is in review now and there would be 2 more
common grouping: golang-compression and golang-build (or
golang-extension). Rest packages which are hard to determine a
group wound go to generic golang-xyz sorted alphabetically.

Let me know your tooling which you familiar with I might think
about some sort of automation.

Thanks,
Oleg


December/January update on QA and related things

2024-01-20 Thread Christopher Baines
Hey,

I sent out the last update [1] back near the start of December.

1: https://lists.gnu.org/archive/html/guix-devel/2023-12/msg00021.html

In summary, QA has been not really working since mid December as
data.qa.guix.gnu.org wasn't keeping up with processing revisions for
patches and branches. I was also looking to shutdown
data.qa.guix.gnu.org but this didn't happen, there still seems to be
some interest in managing the infrastructure though the project (and
shutting it down also takes more time and effort than leaving it
running). Things are still running though, and I'm hopeful that QA will
be back processing patches in the next few weeks.

Specifically for the QA frontpage, little has changed in the last
month. I have got around to making a diagram to put QA in context and
it's now included in the README [2]. Let me know if any more diagrams
would be useful as I've now got a process.

2: https://qa.guix.gnu.org/README#orgd169767

For the Guix Data Service, I've put some time in to speeding up the
processing of revisions. I replaced all uses of delete-duplicates with a
sort and pair-fold alternative and parallelised computing the guix
derivations, computing the package derivations and a few other things
that happen through inferiors. This still needs a bit more testing, but
the changes are deployed on data.qa.guix.gnu.org and I think it's sped
up processing individual revisions at least.

Since data.qa.guix.gnu.org had less revisions in the database, I took
advantage of this to do some maintenance and managed to reduce the size
of the database considerably. Hopefully the frequent cleanup tasks will
prevent it from getting this large again.

Finally, I made various small fixes and speedups in the Guix Build
Coordinator. I hopefully mitigated the port encoding issue [3] by
switching from using the display procedure to log to using string->utf8
and put-bytevector. I opened a bug for a Guile segfault I hadn't seen
before [4]. I also hopefully reduced the impact of the build coordinator
stopping listening for connections by checking this internally and
exiting if there's an issue. Unfortunately I've been quite slow in
tracking down and trying to fix or at least mitigate these frequent but
hard to reproduce bugs, but I think I've made some progress recently.

3: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62590
4: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68221

Looking forward, there's still the issue of me hosting various parts of
QA. Andreas has sent a proposal around on this in the last couple of
days though.

There's been some discussion in the past about using the data service to
monitor performance related things, but maybe this is important for just
keeping QA running as well. Failing to spot these issues before they're
introduced can cause significant disruption, so maybe we need the data
service to start monitoring and reporting on how particular performance
characteristics change between revisions so that this can be reported by
QA.

While the bordeaux build farm is still doing well I think, I still
haven't got around to implementing a way of pruning the nars that aren't
for the master branch from being stored indefinitely. I've got some
design ideas, but they need implementing and testing. There's also the
ongoing issue of build hardware for current and up and coming
architectures.

Let me know if you have any comments or questions! I'm also planning to
be at the Guix Days event and FOSDEM in a couple of weeks.

Thanks,

Chris


signature.asc
Description: PGP signature


Re: Golang mudules to follow common grouping

2024-01-20 Thread Christina O'Donnell

Hi Oleg,

On 13/01/2024 21:05, Sharlatan Hellseher wrote:
> Hi Guix,
>
> I'm about to prepare split and aggregation of all golag packages
>  related to cryptography. The process would be the same as for
>  golang-check and golang-web.
>
>
> In progress:
> golang-cryptography
>
> Planned:
> golang-compression
> golang-build

I just wanted to offer my labor to this task. I'm very new to guix 
development
(I've only packaged one package so far), but I've got a fair amount of 
free time
and I've been looking for ways to contribute to Guix. (Plus I've already 
got my

head in golang.scm trying to package gitleaks and all its dependencies.)

I know that there's a lot to do already, but I was also wondering whether
they're going in any particular order once they're moved. There's a 
comment at

the end of golang.scm that says,

> ;;; Avoid adding new packages to the end of this file. To reduce the 
chances
> ;;; of a merge conflict, place them above by existing packages with 
similar

> ;;; functionality or similar names.

Would it be more organized if they was just one order: either in 
alphabetical
order or grouped by function? My suggestion would be to use the file 
split to
group by function and then sort each file alphabetically. Do you know 
how it is

arranged for other languages?

Another question I have: Is there any tooling that can help big package
migrations like this go faster? Eg. a script to split one big diff into
individual package moves with appropriate change-log entries.

If you could share any scripts that you're using then that could help speed
up similar tasks in future.

Kind regards,
 - Christina




Re: Golang mudules to follow common grouping

2024-01-20 Thread Sharlatan Hellseher
Hi,

Part III of the split is sent for review,
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68605

Thank,
Oleg
-- 
VCS: https://github.incerto.xyz/; https://git.sr.ht/~hellseher/
GPG: 9847 81DE 689C 21C2 6418 0867 76D7 27BF F62C D2B5

… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.


Re: An update on ‘core-updates’

2024-01-20 Thread Janneke Nieuwenhuizen
Janneke Nieuwenhuizen writes:

Hi,

> Janneke Nieuwenhuizen writes:

> (building the info fails in the Hurd cross build), but lateron there's
> another segfault.

This is now also fixed, by including libc-utf8-locales-for-target as
native input.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen   | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com