[GCD] Migrating repositories, issues, and patches to Codeberg

  • Open
  • quality assurance status badge
Details
28 participants
  • 45mg
  • Alexis Simon
  • Andreas Enge
  • Arun Isaac
  • Ashvith Shetty
  • Carlo Zancanaro
  • Cayetano Santos
  • Divya Ranjan
  • Thompson, David
  • Efraim Flashner
  • Ekaitz Zarraga
  • Felix Lechner
  • Hartmut Goebel
  • indieterminacy
  • Konrad Hinsen
  • Leo Famulari
  • Ludovic Courtès
  • Maxim Cournoyer
  • Nicolas Graves
  • Noé Lopez
  • Ricardo Wurmus
  • Roman Riabenko
  • runciter
  • Benjamin Slade
  • Suhail Singh
  • Andrew Wong
  • Simon Tournier
  • Tomas Volf
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal

Debbugs page

Ludovic Courtès wrote 2 weeks ago
(address . guix-patches@gnu.org)
87wmdgznzx.fsf@inria.fr
Hello Guix!

This is the formal submission of “Migrating repositories, issues, and
patches to Codeberg” (GCD 002), a preliminary draft of which I posted
before the Guix Days⁰.

In accordance with the GCD Process, discussion will end on April 23rd at
the latest.

I would like to remind everyone that you can try out Codeberg either by
contributing to one of the Guix-Science repositories¹, or by reviewing
or making a pull request for a trivial packaging change (and nothing
more!) in my Guix clone at Codeberg:


Please do try it especially if you feel reluctant or wonder what the
workflow would be like.

Ludo’.

Attachment: 002-codeberg.md
Benjamin Slade wrote 2 weeks ago
forge-based workflow
(address . 76503@debbugs.gnu.org)
87frk49v6e.fsf@lambda-y.net
Hi Ludo’,

I think this is an excellent proposal. I've contributed over the years to Guix by sending email patches to debbugs, but I usually forgot each time exactly the best practices and usually someone (often you) has had to amend them slightly before merging. (And then I've got stuck contributing things like the `python-ical2orgpy', which required writing definitions for its python package dependencies, and figuring out how to properly send the patch series.) And finding things in email is often more cognitively difficult to keep all the pieces and steps involved in doing it properly. Since I've used to forge-based workflows from contributing to other projects, I think this would significantly reduce barriers for managing to actually getting round to contribute upstream. (I've got my own channel I use for things and a whole Org TODO list of things I want to submit upstream.)

I would also think a forge could make review and merge workflows smoother.

I'm very excited about this possibility. Thanks again for this proposal!

best,
 —Benjamin
--
 '(Dr Benjamin Slade (he/him)
     (website . https://lambda-y.net)
     `(pgp_fp: ,(B20E 444C FA80 B5F8 15FA 4AD8 6FBF CD68 3B05 2B84))
       "sent by [mu4e] 1.12.8 in [Emacs] 30.0.93 with [org-msg] on [GNU Guix] ([Linux])")






Attachment: file
Ashvith Shetty wrote 2 weeks ago
Re: [GCD] Migrating repositories, issues, and patches to Codeberg
(address . 76503@debbugs.gnu.org)
a42c85d554b6cde792e6eb7616842561418963ed.camel@zohomail.in
Hello,
I am also in favour of this proposal. The email-based workflow was not
easy for me.

It requires significant configuration with Emacs or Vim, so that
convinience is unavailable folks who use text editors like VSCode,
Helix, Kakoune or Micro.

Forge-based workflow removes that cognitive load, and the focus stays
on the project itself.

I am fairly positive that if this proposal is accepted by a majority of
this community, it would improve the contributor's experience.

Regards,
Ashvith
Arun Isaac wrote 2 weeks ago
(address . 76503@debbugs.gnu.org)
87zfia2kbt.fsf@systemreboot.net
Hi,

First off, full disclosure: Along with Ricardo, I wrote most of mumi and
the underlying guile libraries. So, I am simultaneously saddened and
relieved that we are deprecating mumi and moving to Codeberg—saddened
because mumi was many years of work, and relieved because I do not have
to bear any responsibility for the future! So, very mixed feelings. :-)

And, while I strongly prefer the email workflow, I concede that moving
to a pull request workflow will lower the barrier to entry simply
because it is more familiar thanks to GitHub's dominant mindshare. So,
unless there is significant support for mumi and the email workflow, I
will stand aside and go with the flow of the community. That said, my
arguments against Codeberg follow.

GitHub invented the fork+pull-request workflow. Despite git's
under-the-hood hardlinking magic, the pull request workflow is very
expensive in terms of disk space. Every fork takes up disk space, and we
need one fork per contributor. That's an enormous amount of disk space.
Now, I would think git's object storage model makes it easy to
deduplicate storage. But apparently, it's not that simple. GitHub does
complex software engineering behind the scenes to make it all seem easy.
See [1] for details. Cash-strapped and labour-starved community projects
like Codeberg/Forgejo don't (yet?) have the means to replicate such
cloud-scale software engineering. In fact, I am not speculating here;
Codeberg openly mentions this in [2]. Codeberg is already strapped for
storage and is introducing storage quotas[3] to make up for it.

The storage issue is particularly pertinent considering how big of a
project we are and how big our git repo is. At this moment, our git repo
is close to 1 GiB in size. Incidentally, that's already bigger than the
750 MiB Codeberg storage quota. Codeberg is willing to allocate more
storage on a per-project basis, but you have to request for it. Now, we
have a little more than 1K contributors. That means, we are already up
to 1 TiB in storage. That's enormous, especially considering that all
data on Codeberg combined adds up to only 12 TiB[3]. And, for
comparison, all our substitutes stored up from the founding of Guix only
add up to about 25 TiB[4]. Now, imagine we had a 10-fold increase in
contributors—a prospect that's pretty easy considering drive-by
contributors—we would be up to 10 TiB in storage for our git repo.
That's ginormous! We would be putting a lot of stress on a tiny
community organization.

Then, there's the bandwidth issue as well. Our git repo is not merely a
development repo. Every Guix user clones[5] it and pulls from it
regularly. As the Guix userbase grows, this will be an increasingly
heavy toll on Codeberg's bandwidth. [2] already alludes to occasional
slowness when the load is high. Even if we move to Codeberg, we should
maintain a mirror of the git repo on our own machines that is actually
capable of serving a large userbase.

I was present with Ludo and others when we visited the Codeberg stall at
FOSDEM, and enquired about the possibility of hosting Guix on Codeberg.
The person at the stall was hesitant about our large repo, and our many
users. In fact, in order to save on disk space, they suggested that we
encourage our contributors to delete their forks once done. :-D Needless
to say, that's never going to happen!

As well-intentioned as Codeberg is, a single non-profit hoping to host
all the git repos in the world in perpetuity and free of charge is a
very tough proposition. Technical solutions like federation that may
mitigate this are unlikely to materialize, especially in the short term.
More likely, Codeberg may go the way of Matrix, where federation is
possible in theory, but matrix.org is the only server in practice.

It would be nice if we were just a normal software project that could
fit well into a traditional forge. But, we are not. We are a
"distribution", and "distributing" is part of our core competency.
Critical parts of our distribution infrastructure should be directly
under our own control. We are a large enough and specialized enough
organization that this is necessary.

[3]:
[4]: number from Chris Baines

[5]: Quick digression: Users must actually download about 1 GiB of data
on their first guix pull. That's frustrating to new users, and
effectively excludes users from parts of the world where a good Internet
connection cannot be taken for granted.

Cheers,
Arun
Ricardo Wurmus wrote 2 weeks ago
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87ikoyks8g.fsf@elephly.net
Hi Arun,

Toggle quote (4 lines)
> GitHub invented the fork+pull-request workflow. Despite git's
> under-the-hood hardlinking magic, the pull request workflow is very
> expensive in terms of disk space.

With the AGit workflow we can open pull requests without a prior fork.
I've done this before on the Guix Science channel:


There is a little "AGit" tag linking to

The downside of using the AGit workflow is that it requires using an
unwieldy command, but personally I find it less cumbersome than the
common pull request workflow with an extra fork, clone of the fork (or
registering of an "upstream" remote), push to the fork, then pull
request from fork to upstream.

Your points about storage limits are important, though. We may have to
disable on-platform forks to nudge contributors to the AGit workflow.

--
Ricardo
Cayetano Santos wrote 2 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(address . arunisaac@systemreboot.net)
87v7sydq2r.fsf@inventati.org
Toggle quote (3 lines)
> The storage issue is particularly pertinent considering how big of a
> project we are and how big our git repo is.

Agit workflow is something to consider. Still, I wonder how Github
educated people, reluctant to email exchange, will react to a

git push origin HEAD:refs/for/<target-branch>/<session>

based workflow, and if this really lowers the barrier to entry[1].

Toggle quote (2 lines)
> Then, there's the bandwidth issue as well.

Would it be a valid option to keep N mirrors, all in sync, aside from
the main repo ? Upon pulling, you randomly hit one of them. Is there a
reason to avoid this approach (even now) ?

Toggle quote (2 lines)
> As well-intentioned as Codeberg is ...

-----BEGIN PGP SIGNATURE-----

iI0EARYKADUWIQTMuBhC+dcFjs1nN3q/XN9N9r9mggUCZ73bvBccY3NhbnRvc2JA
aW52ZW50YXRpLm9yZwAKCRC/XN9N9r9mgsjSAP9XvkxNVbYum1b15qQI+4tmcii1
MjakFcz6kJ2eNDW1JgEAqtjxXUKmv/ER8Vv50PPMqvqmaNaZHvUdABfm1+9fmQI=
=5P7V
-----END PGP SIGNATURE-----

Andrew Wong wrote 2 weeks ago
(name . Cayetano Santos)(address . csantosb@inventati.org)
3378B5D5-604F-4556-91C3-C6C1C028D6D8@icloud.com
Toggle quote (7 lines)
> On Feb 25, 2025, at 10:04 AM, Cayetano Santos via Guix-patches via <guix-patches@gnu.org> wrote:
> Still, I wonder how Github
> educated people, reluctant to email exchange, will react to a
>
> git push origin HEAD:refs/for/<target-branch>/<session>
>
> based workflow, and if this really lowers the barrier to entry[1].
The linked page refers to a tool called “git-repo”, which smooths out the more technical bits to commands like “git pr”. From appearances it seems like using this tool is lower-investment for users than configuring (or changing!) their email client to interact with mailing lists and the mail-in patch workflow properly. It also helps that this (optional?) special tool is more “orthogonal” to other workflows, rather than involving something as central as emails.
Leo Famulari wrote 2 weeks ago
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
Z74UiyW3L768mraY@jasmine.lan
On Tue, Feb 25, 2025 at 02:03:02PM +0000, Arun Isaac wrote:
Toggle quote (7 lines)
> And, while I strongly prefer the email workflow, I concede that moving
> to a pull request workflow will lower the barrier to entry simply
> because it is more familiar thanks to GitHub's dominant mindshare. So,
> unless there is significant support for mumi and the email workflow, I
> will stand aside and go with the flow of the community. That said, my
> arguments against Codeberg follow.

I think we have similar feelings here. I'll miss living inside of Mutt
but I think we are losing a lot by not using a web-based platform.

Toggle quote (5 lines)
> Now, we have a little more than 1K contributors. That means, we are
> already up to 1 TiB in storage. That's enormous, especially
> considering that all data on Codeberg combined adds up to only 12
> TiB[3].

I disagree that 1 TiB, or even 10 TiB, is enormous. It's certainly
large, but it's "entry-level" for a web service with 1000 users in 2025.
And a 10 TiB hard drive only costs ~$200. I know that's is a lot for
some people and places, but it's nothing for something like this. The
blog post you linked to even says "But storage is cheap!" And it really
is the cheapest thing in computing these days.

If Codeberg is really only hosting 12 TiB, then I suggest that either 1)
they can't handle Guix or 2) they are ready to scale up. And Guix should
think about helping them with scaling capital if necessary.

Toggle quote (7 lines)
> I was present with Ludo and others when we visited the Codeberg stall at
> FOSDEM, and enquired about the possibility of hosting Guix on Codeberg.
> The person at the stall was hesitant about our large repo, and our many
> users. In fact, in order to save on disk space, they suggested that we
> encourage our contributors to delete their forks once done. :-D Needless
> to say, that's never going to happen!

Interesting, that's not the impression I got from other emails from
people who were there. We need to clear this up with Codeberg now if we
want to make this change. It sounds like we would be their first
medium-sized user (I don't consider Guix to be large). Like I said, we
should be ready to offer help with fundraising.

Toggle quote (4 lines)
> As well-intentioned as Codeberg is, a single non-profit hoping to host
> all the git repos in the world in perpetuity and free of charge is a
> very tough proposition.

Well, we already are in that position: we depend on the FSF completely
for our Git hosting.


Toggle quote (4 lines)
> Critical parts of our distribution infrastructure should be directly
> under our own control. We are a large enough and specialized enough
> organization that this is necessary.

I think it would be great if we could do this, but I haven't seen any
evidence that we can. In my years with Guix, we have always struggled to
operate our infrastructure. Also, I'll point out that it is an opinion,
not a fact, that we "should" do this. Very few free software projects
host their own Git servers. But like I said, the prospect does appeal to
me. But I don't volunteer to do it :)

Toggle quote (5 lines)
> [5]: Quick digression: Users must actually download about 1 GiB of data
> on their first guix pull. That's frustrating to new users, and
> effectively excludes users from parts of the world where a good Internet
> connection cannot be taken for granted.

Like I've said several times in this discussion so far, we should look
into the state of the art of shallow cloning. It might be efficient
enough on the server-side these days to be the smart move. I agree that
downloading 1 GB in this context is bad.
Arun Isaac wrote 2 weeks ago
(name . Leo Famulari)(address . leo@famulari.name)
87r03l35on.fsf@systemreboot.net
Hi Leo,

Toggle quote (7 lines)
> I disagree that 1 TiB, or even 10 TiB, is enormous. It's certainly
> large, but it's "entry-level" for a web service with 1000 users in 2025.
> And a 10 TiB hard drive only costs ~$200. I know that's is a lot for
> some people and places, but it's nothing for something like this. The
> blog post you linked to even says "But storage is cheap!" And it really
> is the cheapest thing in computing these days.

Aha, I'm not sure you read that article[1] carefully! :-) The very next
sentence immediately after "But storage is cheap!" is "It is not",
followed by "All data on Codeberg probably fits into a 12 TB drive".
That paragraph actually goes on to explain why storage is *not* cheap
and why it's more complicated than just buying a few more disks.

[1]:

Toggle quote (7 lines)
>> As well-intentioned as Codeberg is, a single non-profit hoping to host
>> all the git repos in the world in perpetuity and free of charge is a
>> very tough proposition.
>
> Well, we already are in that position: we depend on the FSF completely
> for our Git hosting.

True. I'm not saying our current situation is great. But, at least the
FSF is not planning to try and host all the world's git repos! That's
the point I'm making here.

Toggle quote (10 lines)
>> [5]: Quick digression: Users must actually download about 1 GiB of data
>> on their first guix pull. That's frustrating to new users, and
>> effectively excludes users from parts of the world where a good Internet
>> connection cannot be taken for granted.
>
> Like I've said several times in this discussion so far, we should look
> into the state of the art of shallow cloning. It might be efficient
> enough on the server-side these days to be the smart move. I agree that
> downloading 1 GB in this context is bad.

Good idea. I don't know if our `guix authenticate' security model would
still work with a shallow clone. But, it's worth exploring.

Regards,
Arun
Arun Isaac wrote 2 weeks ago
Re: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87o6yp35d4.fsf@systemreboot.net
Hi Ricardo,

Toggle quote (2 lines)
> With the AGit workflow we can open pull requests without a prior fork.

Interesting. I didn't know this was possible. If we can require all our
users to do this and disable forking of our repo, then that might solve
all our storage issues.

Regards,
Arun
Arun Isaac wrote 2 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Cayetano Santos)(address . csantosb@inventati.org)
87ldtt355m.fsf@systemreboot.net
Hi Cayetano,

Toggle quote (3 lines)
> Would it be a valid option to keep N mirrors, all in sync, aside from
> the main repo ? Upon pulling, you randomly hit one of them.

Yes, that could be one possible solution. Another solution could be to
have a single URL but load balance at the DNS level based on your IP
address provided location.

Toggle quote (2 lines)
> Is there a reason to avoid this approach (even now) ?

Not that I'm aware of.

Regards,
Arun
45mg wrote 2 weeks ago
87cyf5uhax.fsf@gmail.com
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (8 lines)
>> Like I've said several times in this discussion so far, we should look
>> into the state of the art of shallow cloning. It might be efficient
>> enough on the server-side these days to be the smart move. I agree that
>> downloading 1 GB in this context is bad.
>
> Good idea. I don't know if our `guix authenticate' security model would
> still work with a shallow clone. But, it's worth exploring.

If shallow cloning leads to a truncated commit history that doesn't
include the current introductory commit
(9edb3f66fd807b096b48283debdcddccfea34bad), then you'd need to specify a
later commit as the introductory commit during the first run of `guix
git authenticate`. Other than that, it should still work.
Ludovic Courtès wrote 2 weeks ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . 45mg)(address . 45mg.writes@gmail.com)
87wmdc1ldj.fsf_-_@gnu.org
45mg <45mg.writes@gmail.com> skribis:

Toggle quote (6 lines)
> If shallow cloning leads to a truncated commit history that doesn't
> include the current introductory commit
> (9edb3f66fd807b096b48283debdcddccfea34bad), then you'd need to specify a
> later commit as the introductory commit during the first run of `guix
> git authenticate`. Other than that, it should still work.

In practice, it always starts from the current commit. That is, if you
install 1.4.0, it assumes that the corresponding commit is authentic and
starts from there, rather than from the introductory commit. IOW, you
only need the history up to a known-good commit.

Ludo’.
Ludovic Courtès wrote 2 weeks ago
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
8734g01kuc.fsf@inria.fr
Hi Arun,

Thanks for your feedback.

First, thank you and Ricardo for mumi. I didn’t write a single line of
it but I certainly encouraged it, enjoyed it (the version you deployed
yesterday or so is super nice, BTW!), and for a long time saw it as the
key to providing a good contributor experience “to those who don’t like
email”.

I think I was/we were wrong in two ways: first it’s not just about
providing a web interface, and second there are limitations in our
workflow that we just cannot overcome, as I tried to explain in the
“Motivation” section. We tried, very hard, and for a reason: a belief
(as far as I’m concerned) that we could not only be responsible for our
infra but also, in a way, that we could show fellow free software
hackers that an alternative development model was possible.

Your message raises concerns about the storage/bandwidth requirements of
Guix and the ability of a non-profit to keep up.

I agree with Leo and the GCD mentions it as well: we need to talk with
Codeberg e.V. from the start, possibly becoming a voting member, and to
offer funding. FWIW, we’re at 600 MiB¹ out of the 750 MiB quota². The
GCD documents AGit; we could make it the recommended way to contribute,
if that helps.

Will Codeberg manage to keep up? We don’t know. It’s not the first
non-profit doing it though. Framasoft has been running a popular GitLab
instance³ with 76k projects for 53k people⁴; its budget is higher but
they’re also doing primarily things unrelated to source code hosting.
Codeberg e.V. is specialized so I’d like to believe they have a lot of
headroom. That they’re transparent and upfront about their scalability
issues is a rather good sign to me.

Assuming we agree that a move along the lines of this proposal is
desirable (let me know if you think we don’t share that premise), what
other options would you think of?

Ludo’.

Arun Isaac wrote 2 weeks ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
87r03k17r6.fsf@systemreboot.net
Hi Ludo,

Toggle quote (6 lines)
> First, thank you and Ricardo for mumi. I didn’t write a single line of
> it but I certainly encouraged it, enjoyed it (the version you deployed
> yesterday or so is super nice, BTW!), and for a long time saw it as the
> key to providing a good contributor experience “to those who don’t like
> email”.

Thank you, I appreciate it. :-) I have more improvements (filtering
issues by team, for instance) in the pipeline, and will probably deploy
them in another week or so.

Toggle quote (7 lines)
> Your message raises concerns about the storage/bandwidth requirements of
> Guix and the ability of a non-profit to keep up.
>
> I agree with Leo and the GCD mentions it as well: we need to talk with
> Codeberg e.V. from the start, possibly becoming a voting member, and to
> offer funding.

Good points, I agree.

Toggle quote (6 lines)
> Codeberg e.V. is specialized so I’d like to believe they have a lot of
> headroom.

> That they’re transparent and upfront about their scalability issues is
> a rather good sign to me.

I agree. I liked the honesty of the person we met at the FOSDEM stall.
And, I like it that their blog discusses their scaling issues openly.

Toggle quote (4 lines)
> Assuming we agree that a move along the lines of this proposal is
> desirable (let me know if you think we don’t share that premise), what
> other options would you think of?

I think we share the premise. I am not fundamentally opposed to the
proposal in any way. Lowering the barrier to entry and making the
project more accessible is a good thing. But…

According to the survey, only 9% want a pull request workflow, while 20%
just want timely reviews. My hunch (I have no data or proof) is that the
9% would also be perfectly happy if we just provide them timely reviews.
And, to provide timely reviews, we need to be focussing on entirely
different things—for example, the infinite growth of our package
collection and the strictness of our code reviews. If we could decompose
Guix into smaller channels, some of which have less stringent review
processes, we may get much faster reviews. To some extent, we see this
already in channels such as guix-science (less stringent review),
guix-cran (no review!), etc. Centralization of review and decision
making does not scale well. To grow, we need to devolve power. One day,
we aim to be as big as or bigger than Debian. We cannot do that without,
in some way, imitating their organizational structure. Shovelling more
coal into the fire may not be enough. It might work for a bit, but then
we'll just hit another limit and be stuck again. And, considering the
counterintuitive speed of exponential growth, we may reach that new
limit in no time. Some version of

The proposal mentions better automation of our review process. But, many
of our review processes are not automatable—at least not easily so. For
example: the avoidance of marketing language in synopses and
descriptions, the listing of licenses for every single file in the
source tarball, the indentation of code[1], etc. Some rules such as the
use of double space[2] are antiquated and can be dropped with no
consequence. Our baroque Changelong format is another target of much ire
(even though I personally like it enough to use it in my own projects!).

[1]: there's human judgement involved (and for good reason) despite guix
style and other tools
[2]: Even the behaviour of Emacs sentence commands are not much of an
excuse here. I found out recently about the
sentence-end-double-space variable.

The Codeberg move aims to make it easier for contributors. But, if
anything, we already have too many contributions and are unable to keep
up with reviews! :-D Codeberg is likely to increase the number of
contributors without significantly increasing the number of reviewers. I
cannot be sure of this, nor can I provide much in the way of proof; only
time will tell.

I am sure a move to Codeberg can be seen as orthogonal to all these
concerns. And, perhaps it is. But, I'm just saying we should discuss the
limitations of this approach and be more aware of the larger
bottlenecks. What if we're throwing away the email workflow for nothing!
[half kidding] ;-)

Requiring the agit workflow and disallowing forks (preferably enforced
by technical means), thus solving the storage problem, would remove my
most important grievances with this proposal. I don't mean to block this
proposal at all. Let us proceed.

Thank you for your time and your patience.

Cheers!
Arun
45mg wrote 2 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
87senzmyb5.fsf@gmail.com
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (4 lines)
> According to the survey, only 9% want a pull request workflow, while 20%
> just want timely reviews. My hunch (I have no data or proof) is that the
> 9% would also be perfectly happy if we just provide them timely reviews.

The thing is, moving to Codeberg isn't just about the pull-request
workflow. I don't really care about that. What I care about is having a
/forge/, and all the features that come with it.

A forge would make the collaboration process far more accessible,
because it would provide a decent default experience for every
contributor (ie. the web interface). There would be no need to set up
isync/offlineimap/whatever + Notmuch/Mu4e/GNUs/mutt/whatever just for
the bare minimum of a decent UI for plain-text email.

And then, there are the additional features provided by a forge, which
are very difficult to provide in an email-based workflow. For example,
tagging issues. We have Debbugs usertags, but the majority of
contributors will not see them, because they'd have to use the Debbugs
web interface - and I struggle to imagine anyone ever doing that
willingly. I have tried to set up debbugs.el, but I couldn't get it
working the last time I tried, and frankly I don't have the energy to
configure even more Emacs-specific tooling that I will never use
anywhere else (as if contributing isn't difficult enough for non-Emacs
users...). Perhaps this is why I've observed that usertags don't really
get used much, outside of QA reviews maybe ('reviewed-looks-good').

Now compare this with the situation on GitHub or Codeberg, where there's
a web interface that even a child could figure out, that shows the same
view to everyone. So if you tag issues, you can be sure that everyone
will see the tags. It's that simple.

Also, more reliable and integrated QA would probably make a big
difference, since QA seems to be how committers find out whether a
series is ready to apply. While qa.guix.gnu.org is very impressive for a
volunteer effort, it suffers from a lot of issues that don't really
happen in modern forges (eg. failing to detect or apply patches from a
Debbugs submission), and we don't seem to have enough bandwidth to
improve it. A forge would provide most of what it does, and it would be
directly integrated with the rest of the tooling.

Toggle quote (11 lines)
> And, to provide timely reviews, we need to be focussing on entirely
> different things—for example, the infinite growth of our package
> collection and the strictness of our code reviews. If we could decompose
> Guix into smaller channels, some of which have less stringent review
> processes, we may get much faster reviews. To some extent, we see this
> already in channels such as guix-science (less stringent review),
> guix-cran (no review!), etc. Centralization of review and decision
> making does not scale well. To grow, we need to devolve power. One day,
> we aim to be as big as or bigger than Debian. We cannot do that without,
> in some way, imitating their organizational structure.

Could you share what aspects of Debian's organizational structure you'd
like us to mirror? I agree that decentralization is good in principle,
but I'm concerned about needlessly fragmenting the community. I'm not
familiar with how things work in Debian-land. If they've managed to
solve this problem, it'd be good for all of us to know about.

Toggle quote (7 lines)
> The Codeberg move aims to make it easier for contributors. But, if
> anything, we already have too many contributions and are unable to keep
> up with reviews! :-D Codeberg is likely to increase the number of
> contributors without significantly increasing the number of reviewers. I
> cannot be sure of this, nor can I provide much in the way of proof; only
> time will tell.

As I mentioned above, I think features like tagging, reliable detection
of merge conflicts, and a decent and consistent interface would remove a
lot of the friction involved in contribution/review. And since reviewers
are also contributors, a nicer and more efficient contribution process
would mean more time and energy left over for review.
Leo Famulari wrote 2 weeks ago
cde1c80c-3dac-42b2-a96b-1a7e90f11726@app.fastmail.com
On Wed, Feb 26, 2025, at 20:44, Arun Isaac wrote:
Toggle quote (6 lines)
> The proposal mentions better automation of our review process. But, many
> of our review processes are not automatable—at least not easily so. For
> example: the avoidance of marketing language in synopses and
> descriptions, the listing of licenses for every single file in the
> source tarball,

A minor point for those reading along: we do not list the licenses of every single file in source tarballs. We only describe the license of the package.
Nicolas Graves wrote 2 weeks ago
87h64fih6w.fsf@ngraves.fr
On 2025-02-27 01:44, Arun Isaac wrote:

Toggle quote (12 lines)
> Hi Ludo,
>
>> First, thank you and Ricardo for mumi. I didn’t write a single line of
>> it but I certainly encouraged it, enjoyed it (the version you deployed
>> yesterday or so is super nice, BTW!), and for a long time saw it as the
>> key to providing a good contributor experience “to those who don’t like
>> email”.
>
> Thank you, I appreciate it. :-) I have more improvements (filtering
> issues by team, for instance) in the pipeline, and will probably deploy
> them in another week or so.

TY!

Just a light comment on improvements, since I talked about that at Guix
Paris recently. One of the things is also the improvements on the
GNU/Debbugs side. On sourcehut, the server is able to recognise a patch
series / thread despite git send-email sending everything at once, since
the Message-ID contains the patch number in the series.

Is there someone working on that side? Would be weird if not, more than
5 years after Sourcehut has started.

FYI, I'm delving into both piem and emacs-git-email with 4 bugs sent
upstream (2 fixed already, 2 in the process). They are great tools, but
I've felt like many frustrated because of their lack of polish. Will
keep this up in the coming months.

--
Best regards,
Nicolas Graves
Ludovic Courtès wrote 1 weeks ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
877c59lmwz.fsf_-_@gnu.org
Hi Arun,

Arun Isaac <arunisaac@systemreboot.net> skribis:

Toggle quote (8 lines)
>> Assuming we agree that a move along the lines of this proposal is
>> desirable (let me know if you think we don’t share that premise), what
>> other options would you think of?
>
> I think we share the premise. I am not fundamentally opposed to the
> proposal in any way. Lowering the barrier to entry and making the
> project more accessible is a good thing. But…

You say “not fundamentally opposed”, but I’d like to stress that the
process is not about agreeing/disagreeing on an immutable proposal; it’s
about building it together to into account our concerns and needs.

Toggle quote (4 lines)
> According to the survey, only 9% want a pull request workflow, while 20%
> just want timely reviews. My hunch (I have no data or proof) is that the
> 9% would also be perfectly happy if we just provide them timely reviews.

There are many factors contributing to the lack of timely reviews. As
someone reviewing patches every week and who also tried the PR model and
tools despite a natural aversion, I can tell that tools play a role.

Examples: I easily lose track of updated patch versions and comments
because they’re just more unread email in my inbox; contributors
sometimes lose track of what they sent, so they open a new issue, and I
find myself digging for the original submission and review; people
comment on each other’s issues but there’s no way to know unless you
read every single message. And the list goes on.

Annoyances like this make reviewing tedious and discouraging.

These specific issues go away on Codeberg and similar platforms. Will
that be enough to achieve timely reviews? No, but I’m sure it can help.

(BTW, you should give Codeberg a try, as I mentioned in the cover
letter. It would ensure we’re all on the same page.)

[...]

Toggle quote (3 lines)
> The proposal mentions better automation of our review process. But, many
> of our review processes are not automatable—at least not easily so.

I agree. And it’s also true that the important bit, qa.guix, does not
require Codeberg to exist. A “modern forge” just makes it easier to
automate things and to integrate them with the contribution workflow.

[...]

Toggle quote (4 lines)
> Requiring the agit workflow and disallowing forks (preferably enforced
> by technical means), thus solving the storage problem, would remove my
> most important grievances with this proposal.

I don’t think there’s a “storage problem”. There’s a storage risk, and
it’s one of several—there are other ways Codeberg could fail, some are
spelled out in the GCD.

In my view, what we need to do during the discussion period is to find
ways to mitigate and deal with those risks in the months and years to
come. We already discussed the storage risk before; what more do you
think should be done?

How would you amend the proposal to better address this and other
concerns your raised?

Thank you,
Ludo’.
Arun Isaac wrote 1 weeks ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
87h64dzkc3.fsf@systemreboot.net
Hi Ludo,

Toggle quote (4 lines)
> You say “not fundamentally opposed”, but I’d like to stress that the
> process is not about agreeing/disagreeing on an immutable proposal; it’s
> about building it together to into account our concerns and needs.

Indeed, my bad. Sorry.

The only amendment I would strongly recommend is to require the agit
workflow in order to mitigate the storage problem/risk. This may require
changes to Forgejo. I say this without ever having used the agit
workflow. So others who know better should say so if this is a bad idea.

Toggle quote (3 lines)
> (BTW, you should give Codeberg a try, as I mentioned in the cover
> letter. It would ensure we’re all on the same page.)

I do want to. But I didn't because I didn't want to overload your
personal repo with too many pull requests. Perhaps we can have a pilot
period (say 30 days) when both mumi/debbugs patches and codeberg pull
requests would be accepted methods to contribute. This may help put
people's minds at ease about the transition, and give them some time to
adapt their contribution/review worklows.

Finally, I understand that the move to Codeberg is a tough decision, and
I wish to express my appreciation for the leadership you are providing
the project.

Thank you,
Arun
Arun Isaac wrote 1 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
87eczhzk0o.fsf@systemreboot.net
Hi 45mg,

Toggle quote (4 lines)
> And then, there are the additional features provided by a forge, which
> are very difficult to provide in an email-based workflow. For example,
> tagging issues.

The mumi CLI can now tag issues[1], but I take your point that it is
never going to be as easy as a web interface.


Toggle quote (9 lines)
> Also, more reliable and integrated QA would probably make a big
> difference, since QA seems to be how committers find out whether a
> series is ready to apply. While qa.guix.gnu.org is very impressive for a
> volunteer effort, it suffers from a lot of issues that don't really
> happen in modern forges (eg. failing to detect or apply patches from a
> Debbugs submission), and we don't seem to have enough bandwidth to
> improve it. A forge would provide most of what it does, and it would be
> directly integrated with the rest of the tooling.

I believe we will still be using most of our QA system with Codeberg.
Codeberg will simply trigger our QA system in some way. The Codeberg CI
will likely not have sufficient compute power to do what our QA system
does.

Also, I don't think the problem with the QA system is that it cannot
detect our patches. For some reason, it stopped working at some point.
Chris Baines should know the details. I am not very familiar with it.

Toggle quote (6 lines)
> Could you share what aspects of Debian's organizational structure you'd
> like us to mirror? I agree that decentralization is good in principle,
> but I'm concerned about needlessly fragmenting the community. I'm not
> familiar with how things work in Debian-land. If they've managed to
> solve this problem, it'd be good for all of us to know about.

I am not too clear about Debian's organizational structure either. I was
hoping channels can do for us what Debian's teams do for Debian.

Regards,
Arun
Hartmut Goebel wrote 1 weeks ago
(name . Guix Devel)(address . guix-devel@gnu.org)
5bc2d424-e78c-412c-8205-576b9ccbf1b6@crazy-compilers.com
Hi,

thanks for the updated GCD. I'm in favor of it.

Anyhow, some remarks:

1) Regarding the AGit workflow discussed: This looks interesting
(haven't tried yet). I suggest adding a section to the GCD that this
will be documented within 30 days following acceptance of this GCD (or
even earlier). Beside this, I'm curious whether this would be possible
without "contributor" permissions – so everybody can submit patches this
way.


2) Regarding the issue tracker: I support not migrating issues. Anyhow,
i have two concerns, which OTHO can eventually be targeted in another
GCD or two:

* We might want to migrate the patches, so they don't get lost. It would
be interesting whether we could automatically extract the latest patch
set and create a pull-request for it, including any cover letter
(amended with a link to the original issue). WDYT?

* Some "basic" issues are open since long and still need to be addressed
- or be closed. If we start using the Codeberg tracker, chances are high
issues.guix.gnu.org (and debbugs) will go out of sight and these issues
will get lost. Again this can be decided later on. Maybe many old issues
could be closed anyway.


3) Regarding workflow and tagging of issues/patches: It might be worth
giving some guidance how to tag issues in case. E.g. tagging as "won't
fix", "invalid". etc. Again, this can be discussed after migration as
this is unrelated to the actual migration. OTOH, if there already is
some practice on this, you could add it to the GCD  already.


--
Regards
Hartmut Goebel

| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
Tomas Volf wrote 1 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg: Terms of Use
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 76503@debbugs.gnu.org)
87jz97l5q9.fsf@wolfsden.cz
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (8 lines)
> [..]
>
> First, everyone will have to create an account and accept [Codeberg’s
> Terms of
> Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
> before they can contribute, which can be seen as a step back compared to
> the email-based workflow.

I went through the Terms of Use and picked few points I considers
problematic and/or note worthy.

§ 2 (1) 3. looks pretty annoying for occasional contributors.

§ 2 (1) 4. forces us to rewrite repository history in case of
compromise, instead of just reverting the malicious commits. I do not
know what the Guix's current policy is for such a case, but it is worth
to keep in mind that we would no longer have a say in the matter.

§ 2 (4) is annoying for people not familiar with German law (which
includes me). Savannah is in the US, where the rules (possibly aside
the copyright laws) are bit less strict (at least that is my
impression).

§ 2 (5), especially the "its reputation" part, can easily lead to
loosing Codeberg account, and therefore ability to contribute to Guix,
over, for example, Mastodon toot complaining that Codeberg it down
again. After all, that could very well be considered "Action intended
to damage the [Codeberg's] reputation".

§ 3 (4) is pretty WTF. They could at least send an email. I plan to
keep working from the Emacs, so I am pretty sure I will not check the
dashboard for announcement messages regarding ToU changes every three
months.

§ 4 (4) is the typical "we can nuke your account at any time for any
reason". Nice.

And the "You must make sure that we have a way to contact you by keeping
the email address of your account up-to-date." is just a final middle
finger, because while I *have* to keep mail address up to date, they
cannot be bothered to use it to send me information that ToU did change.

I am not sure I agree to these (definitely not to all of them), so I
would probably be precluded from further contributions (since I would
need an account on Codeberg, which I cannot get without agreeing to the
ToU).

Also, there is a pretty nasty failure state when they do change the ToU,
and none of the committers would agree to the change. At that point
they (per the ToU) have to close their accounts and the whole repository
would be just stuck in the void with no way to migrate it away. I agree
this is pretty unlikely though.

All of this would be solved by self hosting, but I definitely understand
your reasons for wanting to avoid that.

Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
-----BEGIN PGP SIGNATURE-----

iQJCBAEBCgAsFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmfEkL4OHH5Ad29sZnNk
ZW4uY3oACgkQL7/ufbZ/wamM0w//Weu+16soWMWVZRsEHXQ3OL6CtoROi4GGbi9I
t17X6jpR5bBSB+aYMC19WbpsB6vW6llwGcDOtgOCmObGOX3bEKZiuG6563sNRMJ5
Kir4xf5GDdxdXFnL/X+aoXaHLoUzCYBIAtiUzbyIKIV5zCitdb2E1tBuENXCvOp3
PaXRbAMy4MoEkHnixsNxl+brfMI69Nm2z/4wSPo9bFM40JMz9oqu1R1LT4Dw/CWd
4E7+TCQ8PGaiXm4lUB7rIIZxQLwsQ5dJaXCNkX86NGLQ/C0ECjCFKka2/tqOxBGf
eymaF/dbf5U4JerOuPp4IuQYr8dJt61vll5KmX4gXplHu3lwNU3DFFjilvw+QXgG
84mpgjx2biEG6Tt644Yts8mhi0VMjLRKM+sqqnTXAuTDfBaCO2EcOswPXvkN/qpo
fYxTUeyX19CaWf9H1//4e1dXOqSIyx4alBbSPK8YUIm4Tn2flMagGCeY2AGmXe1L
cxipNqMWVNi7eoZHQg3o0StLUGibXWkLiCUz3jyX7hE5W53LqwvnKtKTpcOHw65y
JCABdWfO4PgSy9Gdwq6QwbfJPiXRCev04HHzzxhzXPRzKm/lV4P955NhDDraEpjF
okrCb4moYzkXLw00rqT7Cu6OsnVC7pJEPxKKRk06s0UepP4iz3SoS93wF+O+1krg
omUO19k=
=7IAw
-----END PGP SIGNATURE-----

Tomas Volf wrote 1 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg: LibreJS blocks JavaScript
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 76503@debbugs.gnu.org)
87frjvl5bi.fsf@wolfsden.cz
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (5 lines)
> The software behind the forge has to be free software that is
> *plausibly* self-hosted on Guix System—this probably rules out GitLab
> Community Edition and makes [Forgejo](https://forgejo.org/) the main
> contender.

I have opened the https://codeberg.orgin a browser with the LibreJS
extension installed, and two scripts are blocked due to "External script
with no known license":


They indeed do not seem to contain any kind of license notice.

Since Forgejo is Free software, I assume it is just a matter of some
mark missing somewhere. I am not sure on who this is to fix, whether
Codeberg (Forgejo?) or LibreJS, but I think it would be preferable if
site hosting our repository was not blocked by GNU LibreJS.

Have a nice day,
Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
-----BEGIN PGP SIGNATURE-----

iQJCBAEBCgAsFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmfEktEOHH5Ad29sZnNk
ZW4uY3oACgkQL7/ufbZ/wan0BA//bxnnhvo9ztHLkmO3JKZtRexAqh7SHyK0FtuL
2u/idiTpLUA1Io0HDxrdpZiV7DNUBBtjMu15Ljwqg2Bpwu1XIQK2tlp5fRdPZo4Z
uqu8UUfWtZS0fHb2oKq4IifxPRJGYLYxEUYg3Et2hw7eKjUPD4x+SU3xhjoG7d2R
kk9ZGNmncIWhCzTAdL9WtGDJegiJS6PCktghOe1i49T8X0Pen1+u5hAQRQSoVv4n
mpQ3b1nwX3S6jk90truFdx0QGtsKGuX/1NxIqSP+niDq5br0+xkmFj+QGMoZWxT5
qADmQASMobFVF8y65voXe5Pk+F3PnS2BYALRXIJH4CjTsED2MO40tDnSiW+0G0aB
ozQVtyo7mFsS5oMNu4xN6Y+GhxaN0EgGH9kmqmWnIFgl4+l7TvfqteKpiK1qhOYL
/zA/ieeibsSKewO4ZthVpzhRySOkXUdWTpc0NgSXIibN30Ps77JVZre2EE2/WS9v
muPNNPLG75rHPpxpuNZ+iiugQPFhxGWD9i4EFg/EAK7OVxjEavdGpF+BssX27sfB
A9bqZJklU9zPrkm7z7fSNUIepTaOPJ7dkt5Nw79M4zaoiV/zzRdw8+eVyU0nM1m6
yphu68OwF5CzxZxgERGHG3Om6S0jw0dp12MvhV8KYTN+pw6M7RuMBsu7na+XJSzj
Q102Iio=
=Iuqh
-----END PGP SIGNATURE-----

runciter wrote 1 weeks ago
Re: [bug#76503] [GCD]
(name . 76503@debbugs.gnu.org)(address . 76503@debbugs.gnu.org)
U9ssmggQBlFQBjDAWibj3MwwYTg-OPsCUGf3eUrvhye6Qks1D3taPWdE_zw5MF4Oq39sAYrggw0sEMqkK-xm91xd2rS4yihJaGimGwHy1bk=@whispers-vpn.org
Hello Guix!

I have a question after reading most of this discussion:

Git has a 'request-pull' sub-command:

git request-pull [-p] <start> <URL> [<end>]

On the plus side, most probably, repo duplication on Codeberg would be
avoided by contributors who use the 'request-pull' sub-command
exclusively. No need for those contributors to deal with a web
interface. Most importantly, no mandatory account creation!

However, the pull request can be public while under review only if the
it is published somehow... probably in some kind of passive mailing
list.

The contributor must have his own git repository exposed at <URL>,
accessible to the official Guix committer(s), which means it won't be
convenient or feasible for everybody.

There are potential issues with the transparency of the review process,
but even if this is considered a problem, then I guess '-p' switch could
probably be made mandatory to alleviate any concerns.

There's also the question of how this would feed into your QA process, I
suppose the QA process would have to be completely unreliant on Codeberg
for 'git request-pull' to work with QA.

All in all, it couldn't replace forgejo completely without leaving aside
some contributors. However, leaving open the options to create or not
create a website account on Codeberg would be a * big * thing in that it
tackles what I personally see as the most serious objection to the GCD,
correctly identified by the initial description message, thanks for that
by the way.

Hence my question, I guess the answer is probably "no" but let's make
sure:

Might 'git request-pull' be made an option for Guix contributors in
parallel with the forgejo web process, if the GCD goes through?

Runciter
Tomas Volf wrote 1 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 76503@debbugs.gnu.org)
87a5a3l2wd.fsf@wolfsden.cz
<#secure method=pgpmime mode=sign>
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (85 lines)
> Hello Guix!
>
> This is the formal submission of “Migrating repositories, issues, and
> patches to Codeberg” (GCD 002), a preliminary draft of which I posted
> before the Guix Days⁰.
>
> In accordance with the GCD Process, discussion will end on April 23rd at
> the latest.
>
> I would like to remind everyone that you can try out Codeberg either by
> contributing to one of the Guix-Science repositories¹, or by reviewing
> or making a pull request for a trivial packaging change (and nothing
> more!) in my Guix clone at Codeberg:
>
> https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00313.html
>
> Please do try it especially if you feel reluctant or wonder what the
> workflow would be like.
>
> Ludo’.
>
> ⁰ https://lists.gnu.org/archive/html/guix-devel/2025-01/msg00218.html
> ¹ https://codeberg.org/guix-science
>
> title: Migrating repositories, issues, and patches to Codeberg
> id: 002
> status: submitted
> discussion: https://issues.guix.gnu.org/<number assigned by issue tracker>
> authors: Ludovic Courtès
> sponsors: Tobias Geerinckx-Rice, Ricardo Wurmus
> date-submitted: 2025-02-23
> date: 2025-02-23
> SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later
> ---
>
> # Summary
>
> The contribution workflow in Guix has been facing several challenges:
> difficult onboarding, lack of legibility, complex, unreliable, and
> labor-intensive infrastructure, and lack of automation. All these lead
> to an experience that contributors often find frustrating and hinders
> quality assurance efforts. We propose to address these limitations by
> migrating repositories, issue tracking, and patch tracking to Codeberg,
> a “modern” forge hosted by a non-profit.
>
> # Motivation
>
> To keep track of bug reports and patches, Guix historically chose tools
> that were *simple* in their design:
>
> - bug reports and patches can be sent by plain email, without having
> to create an account or even subscribe to a mailing list;
> - discussion and patch review happen naturally by email, without
> requiring special tools;
> - the Debbugs instance at https://bugs.gnu.org keeps track of bug
> reports and patches by assigning them an identifier and creating a
> mailing list specifically for each bug or patch.
>
> However, to overcome several limitations, the project developed
> processes and tools, which can be characterized as *incidental
> complexity*:
>
> - because the Debbugs web interface is crude by today’s standards and
> hard to search and navigate, the project developed
> [mumi](https://git.savannah.gnu.org/cgit/guix/mumi.git/), the web
> interface running at https://issues.guix.gnu.org;
> - to navigate bugs and patches more conveniently than what an email
> client supports, contributors were
> [encouraged](https://guix.gnu.org/manual/devel/en/html_node/Debbugs-User-Interfaces.html)
> to use interfaces like `debbugs.el` or `b4`;
> - sending patch series by email does not play well with Debbugs’
> automatic identifier assignment, so [contributors were told to send
> their “cover letter”, wait for an identifier to be assigned, and
> then send the
> rest](https://guix.gnu.org/manual/devel/en/html_node/Sending-a-Patch-Series.html#Multiple-Patches-1);
> - to help sending and applying patch series, mumi was extended to
> provide a command line interface;
> - to build patch series submitted by email, the [QA
> service](https://qa.guix.gnu.org) has to rely on a [Patchwork
> instance](https://patches.guix-patches.cbaines.net/project/guix-patches/list/)
> that is subscribed to the `guix-patches` mailing list, coupled with
> its own [parsing of incoming
> email](https://git.savannah.gnu.org/gitweb/?p=guix/data-service.git;a=blob;f=guix-data-service/branch-updated-emails.scm;h=aeb1570dfda725864a77780d0541f26c090b0e55;hb=c886685e9284da4bbed9377f70dd70da9e7ca29f);
> - the project added a commit hook to create add unique `Change-Id`

Possible typo in "create add"? :)

Toggle quote (6 lines)
> headers in commit messages in an attempt to correlate commits in the
> repository with messages send to `guix-patches`; none of the
> existing tools takes advantage of it though, and it is up to
> contributors to manually close entries in the bug/patch tracker once
> they have been fixed/applied.

This seems reasonably simple to do, if this GCD does not pass, I will
take a stab at that.

Toggle quote (7 lines)
>
> Developing and maintaining this software and infrastructure is
> time-consuming. Worse, it leaves contributors largely dissatisfied for
> a variety of reasons:
>
> - the process is unfamiliar to most newcomers;

If the AGit flow will be mandatory, new process will also be unfamiliar.
Just saying.

Toggle quote (52 lines)
> - the tools and infrastructure in Guix have become a maze;
> - apart from the happy few using `debbugs.el` in Emacs, navigating
> open issues and patches is hard; filtering incoming messages is
> equally hard, even for those with 10+ years of experience with
> advanced email tools (Gnus, mu4e, notmuch, b4, etc.);
> - because the various parts of the development process (repository,
> issue tracking, QA automation, `etc/teams.scm`) are largely
> disconnected, even long-time contributors can hardly follow issues
> relevant to them; issues may remain open after they’ve been fixed,
> new activity on an issue may go unnoticed, cross-references among
> issues are not visible in any of the interfaces, etc.
>
> All this contributes to a [poor
> experience](https://guix.gnu.org/en/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-3/)
> for those who choose to contribute despite the barrier to entry,
> probably discourages many to even start contributing, and adds to the
> load of committers and infrastructure maintainers.
>
> # Detailed Design
>
> This section explains the chosen solution among the available options,
> the scope of the proposed migration, a migration path, and an outlook on
> automation.
>
> ## Choice of a Forge
>
> We set out to choose a “modern forge” that supports a pull-request style
> workflow and provides good integration between the repository, the issue
> tracker, and the merge request tracker. Such a system is necessarily
> more *complex* at first glance than the email-based tools we have but
> (1) the increase in complexity is reasonable once we consider the
> incidental complexity of the existing services, as mentioned above, and
> (2) we think the added usage benefits outweigh this increase in
> complexity.
>
> The software behind the forge has to be free software that is
> *plausibly* self-hosted on Guix System—this probably rules out GitLab
> Community Edition and makes [Forgejo](https://forgejo.org/) the main
> contender.
>
> [SourceHut](https://sourcehut.org/), the other interesting option, does
> not offer the same convenience when it comes to dealing with patches and
> runs the risk of reproducing onboarding and integration issues
> surrounding an email-based workflow and “read-only” web interface that
> Guix is already experiencing.
>
> Forgejo has several features to support collaboration among a large
> number of people and on a large code base, including
> [teams](https://docs.codeberg.org/collaborating/create-organization/#teams)
> and [issue and pull request
> templates](https://forgejo.org/docs/latest/user/issue-pull-request-templates/).

How do pull request templates work together with AGit flow that (as far
as I understand it) is being considered to be mandatory?

Toggle quote (27 lines)
> Support for
> [federation](https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/)
> is also under development and is a promising way to avoid
> centralization.
>
> Instead of self-hosting, this GCD suggests using the Forgejo instance on
> codeberg.org, run by the [Codeberg e.V.](https://codeberg.org/about)
> non-profit, registered in Germany. The non-profit has a good track
> record of running codeberg.org with minimal downtime, is [committed to
> supporting free software
> development](https://codeberg.org/Codeberg/org/src/branch/main/en/bylaws.md#preamble),
> [transparent](https://codeberg.org/Codeberg/org), and has governance set
> up to achieve its mission.
>
> The Guix-Science umbrella project [has been using Codeberg for several
> months
> now](https://hpc.guix.info/blog/2025/01/join-the-guix-science-community/),
> which has allowed us to gain confidence in its suitability for a project
> like Guix.
>
> ## Rights and Privileges
>
> Migration should preserve rights and privileges regarding access to the
> repositories. To that end, we propose the following rules:
>
> - Committers to several of the repositories listed above and [Savannah

Maybe "listed below" instead?

Toggle quote (71 lines)
> “group admins”](https://savannah.gnu.org/projects/guix)can request
> membership in the [“Owners”
> team](https://docs.codeberg.org/collaborating/create-organization/#teams)
> of the [Guix *organization*](https://codeberg.org/guix). As of this
> writing, only three people are members.
> - Anyone listed the `.guix-authorizations` file of Guix can request
> membership of the https://codeberg.org/guix/guix once it is created.
> - Committers to one of the other repositories can request membership
> of that repository.
>
> In the future, we should extend the [“Commit
> Rights”](https://guix.gnu.org/manual/devel/en/html_node/Commit-Access.html)
> section of the manual to clarify the distinction between being a member
> of the organization and being a member of a specific repository, in a
> specific team.
>
> ## Repository Migration Path
>
> The Guix project at Savannah contains the following repositories:
>
> - [Guix itself](https://git.savannah.gnu.org/git/guix.git);
> - [the bootstrappable.org web
> site](https://git.savannah.gnu.org/git/guix/bootstrappable.git);
> - [the DHCP client in
> Guile](https://git.savannah.gnu.org/git/guix/dhcp.git) (forgotten
> 2015 Google Summer of Code project);
> - [Guile bindings to
> GNUnet](https://git.savannah.gnu.org/git/guix/gnunet.git) (forgotten
> 2015 Google Summer of Code project);
> - [Guix artwork and web
> site](https://git.savannah.gnu.org/git/guix/guix-artwork.git);
> - [Cuirass](https://git.savannah.gnu.org/git/guix/guix-cuirass.git);
> - [“maintenance”
> repository](https://git.savannah.gnu.org/git/guix/maintenance.git)
> (includes Guix System infrastructure configuration, talks, and other
> documents);
> - [scripts for videos presenting
> Guix](https://git.savannah.gnu.org/git/guix/videos.git);
> - [Guix Data
> Service](https://git.savannah.gnu.org/git/guix/data-service.git);
> - [Emacs-Guix](https://git.savannah.gnu.org/git/guix/emacs-guix.git);
> - [Guix Build
> Coordinator](https://git.savannah.gnu.org/git/guix/build-coordinator.git);
> - [nar-herder](https://git.savannah.gnu.org/git/guix/nar-herder.git);
> - [QA
> Frontpage](https://git.savannah.gnu.org/git/guix/qa-frontpage.git);
> - [mumi](https://git.savannah.gnu.org/cgit/guix/mumi.git);
> - [Guix Consensus
> Documents](https://git.savannah.gnu.org/git/guix/guix-consensus-documents.git).
>
> Within **30 days** following acceptance of this GCD, committers would
> migrate all these repositories to https://codeberg.org/guix.
>
> For Guix itself, we would decide on a **flag day** 14 days after
> acceptance of this GCD at the earliest, and 30 days at the latest. On
> that day, the official URL of the Guix repository would become
> https://codeberg.org/guix/guix.git. A commit would reflect that by
> updating:
>
> 1. the `url` field in `.guix-channel`;
> 2. the `%default-channel-url` variable in `(guix channels)`;
> 3. any other reference to the URL that may appear in the repository,
> in particular in the manual.
>
> To ease this migration and possibly future migration, we may add a new
> `git.guix.gnu.org` DNS entry with HTTP redirects to
> `git.savannah.gnu.org` (before migration) and `codeberg.org` (after
> migration); a [patch](https://issues.guix.gnu.org/76296) implementing
> this has been submitted. The `%default-channel-url` variable would
> refer to `https://git.guix.gnu.org/guix.git`.

The https://git.guix.gnu.org/guix.gitseems like a good idea regardless
of whether this GCD is accepted or not. It would allow us to switch the
hosting on moments notice in case the underlying infrastructure goes
down.

Toggle quote (32 lines)
>
> Following this commit, an entry in `etc/news.scm` would explain the
> migration. See [this entry in
> Guix-Science](https://codeberg.org/guix-science/guix-science/commit/fd1b2dacd8d37c9d1939f9dc5a5b74256171ccbd)
> for an example.
>
> The Savannah `guix.git` repository would become a mirror of the one at
> Codeberg, with a script periodically updating it for **at least one
> year** after the switch, as a way to ease migration to the new
> repository for users. Other repositories would be deleted from Savannah
> once migrated, to avoid confusion.
>
> ## Issue Tracker Migration Path
>
> Importing all the issues and patches from Debbugs/mumi into Codeberg
> would be impractical: it would require the development of specific
> tools, would be a lossy process due to the fundamental mismatch between
> plain text email threads and Forgejo issues and pull requests, and would
> bring little in return.
>
> Our proposal is the following:
>
> - https://issues.guix.gnu.org will remain up and running for at least
> **two years** following acceptance of this GCD. Note that once
> issues.guix.gnu.org is down, issues will remain visible at
> https://bugs.gnu.org and email archives will remain visible at
> https://mail.gnu.org.
> - Within **30 days** after acceptance of this GCD, mailing list
> administrators will set up the `bug-guix` and `guix-patches` mailing
> lists in “Emergency Moderation” mode in the Mailman
> interface—meaning that messages will not get through anymore.

This contradicts GCD 001 no? The 001 requires the GCD to be sent as
patch to guix-patches@gnu.org. How will this be handled? Once 002 is
accepted, will we rush out 004 replacing the 001? Will there be enough
time for that? Once you close the guix-patches, you cannot propose a
*new* GCD per the current rules (and you cannot change the rules without
a GCD), so at least the initial posting *must* happen within those 30
days.

On separate note, there are other projects (well, I know just of
Shepherd, are there others?) than Guix using bug-guix and guix-patches,
so maybe this GCD should go a bit into how that will be handled.

Toggle quote (19 lines)
> It
> will still be possible to interact on individual issues via
> `NNN@debbugs.gnu.org`.
> - The switchover will be advertised before it takes place with a post
> to `info-guix@gnu.org`, to `guix-devel@gnu.org`, as well as through
> a blog post.
> - The “Contributing” section of the manual will be updated accordingly
> at that time.
>
> ## User Interfaces
>
> For many contributors, a strength of the email-based workflow is that it
> works out of the browser, possibly offline; we want to preserve that
> comfort as much as possible.
>
> Everything that can be done through Forgejo’s web interface can be done
> *via* its [HTTP
> interface](https://forgejo.org/docs/latest/user/api-usage/).

This is not true. There is no API for getting the Terms of Use.
Changes in those are announced only as a banner on the website (as far
as I can tell).

Toggle quote (13 lines)
> This has
> given rise to several Emacs and command-line interfaces that existing
> contributors may find convenient.
>
> [forgejo-cli](https://codeberg.org/Cyborus/forgejo-cli/) and
> [codeberg-cli](https://codeberg.org/Aviac/codeberg-cli) provide rather
> comprehensive command-line interfaces, as [reported by
> Efraim](https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00057.html).
>
> [fj.el](https://codeberg.org/martianh/fj.el/) is an Emacs interface
> similar to `mastodon.el` that lets you view and comment on issues and
> pull requests, list repositories, view notifications, and so on.

One thing it does not support (based on the README) is the ability to do
an actual code review, which is a bummer.

Toggle quote (46 lines)
> It
> does not support off-line access. It can be set up with something like:
>
> ```lisp
> (with-eval-after-load 'fj
> (setq fj-host "https://codeberg.org")
> (setq fj-user "civodul")
> (setq fj-token
> (funcall (plist-get
> (car
> (auth-source-search :host "codeberg.org/api/v1"
> :user fj-user
> :type 'netrc))
> :secret))))
> ```
>
> … and a line like this one to `~/.authinfo.gpg`:
>
> ```
> machine codeberg.org/api/v1 login civodul password TOKEN
> ```
>
> … where `TOKEN` is the [token obtained from
> Codeberg](https://docs.codeberg.org/advanced/access-token/).
>
> [Magit-Forge](https://github.com/magit/forge/) is another Emacs
> interface to forges, with Magit integration and support for working
> off-line. However, Forgejo support is currently next to nonexistent:
> only `forge-browse` is supported (allowing users to open a browser on a
> forge page).
>
> Besides these interfaces, there is a couple of tricks that can simplify
> the life of contributors and reviewers, out of the browser.
>
> As a contributor, you can create pull requests without first creating a
> fork and then a merge request thanks to the [AGit
> workflow](https://forgejo.org/docs/latest/user/agit-support/). This
> works by passing `git push` the relevant *options*, as in this example:
>
> ```
> git push origin HEAD:refs/for/main \
> -o topic="update-hello" \
> -o title="gnu: hello: Update to 42." \
> -o description='This updates the `hello` package."
> ```

Does this still require a Codeberg account? Can anyone update other
people's pull requests, the way I can currently sent n+1 version of a
patch started by someone else?

Toggle quote (46 lines)
>
> As a reviewer, it is possible to pull references of pending pull
> requests by adding something like this to `.git/config`:
>
> ```
> [remote "pulls"]
> url = git@codeberg.org:org/guix-science/guix-science.git
> fetch = +refs/pull/*/head:refs/remotes/pulls/pr/*
> ```
>
> Running `git fetch pulls` then retrieves references to branches
> corresponding to all the pull requests.
>
> ## Teams
>
> All the teams currently defined in `etc/teams.scm` will be reified as
> [teams](https://docs.codeberg.org/collaborating/create-organization/#teams)
> in the [Guix organization](https://codeberg.org/guix).
>
> All these teams would have read-only access to the repositories, with
> the exception of a new *Committers* team, with read-write access to the
> repository, which would contain all the people who already have [commit
> rights on
> Savannah](https://savannah.gnu.org/project/memberlist.php?group=guix)
> (“on-duty members”).
>
> Team scopes in `etc/teams.scm` will be converted to a `CODEOWNERS` file
> similar to [that found in
> Guix-Science](https://codeberg.org/guix-science/guix-science/src/branch/master/CODEOWNERS).
> That way, pull requests will automatically have them suggested as
> reviewers for changes in their scope.
>
> ## Continuous Integration
>
> Forgejo supports
> [*webhooks*](https://forgejo.org/docs/latest/user/webhooks/), `POST`
> requests that are sent to the server of one’s choice upon events such as
> pull request creation. Cuirass (running at ci.guix.gnu.org) already
> [supports](https://hpc.guix.info/blog/2025/01/join-the-guix-science-community/)
> them and automatically creates a *jobset* when a pull request is made.
> The [QA frontpage](https://qa.guix.gnu.org) and its [Data
> Service](https://data.qa.guix.gnu.org) does not support Forgejo webhooks
> yet but can be extended to do so without too much effort, possibly
> sharing or reusing the Forgejo interface code from Cuirass.
>
> In the Guix repository, we will set up webhooks to trig
This message was truncated. Download the full message here.
Leo Famulari wrote 1 weeks ago
(name . Tomas Volf)(address . ~@wolfsden.cz)
Z8SlL2ALMZsDmdyL@jasmine.lan
On Sun, Mar 02, 2025 at 07:10:26PM +0100, Tomas Volf wrote:
Toggle quote (9 lines)
> > Developing and maintaining this software and infrastructure is
> > time-consuming. Worse, it leaves contributors largely dissatisfied for
> > a variety of reasons:
> >
> > - the process is unfamiliar to most newcomers;
>
> If the AGit flow will be mandatory, new process will also be unfamiliar.
> Just saying.

Yeah, I don't think we should require non-standard Git tooling.

Especially if the reason is a "storage problem" that doesn't seem to
exist with any other Git hosting service, and maybe doesn't for Codeberg
either. I think we have gotten ahead of ourselves talking about the
hypothetical "storage problem".
Roman Riabenko wrote 1 weeks ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg: LibreJS blocks JavaScript
(name . Tomas Volf)(address . ~@wolfsden.cz)
20250302205608.c3cbaae445217285e3154dc4@riabenko.com
Hello.

On Sun, 02 Mar 2025 18:18:09 +0100
Tomas Volf <~@wolfsden.cz> wrote:

Toggle quote (14 lines)
> I have opened the https://codeberg.orgin a browser with the LibreJS
> extension installed, and two scripts are blocked due to "External script
> with no known license":
>
> https://codeberg.org/assets/js/webcomponents.js
> https://codeberg.org/assets/js/index.js
>
> They indeed do not seem to contain any kind of license notice.
>
> Since Forgejo is Free software, I assume it is just a matter of some
> mark missing somewhere. I am not sure on who this is to fix, whether
> Codeberg (Forgejo?) or LibreJS, but I think it would be preferable if
> site hosting our repository was not blocked by GNU LibreJS.

Codeberg developers expressed willingness to resolve this issue, but it
looks like they cannot decide on the approach. See this issue for

The issue is also tracked upstream:

Meanwhile, another effort is to have the currently deployed source code
automatically disclosed, so that users could whitelist the website

FSF associate members may also find this forum discussion relevant:

Roman
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEbyuIUwJNVUrtp3hK60bLvjKDmmkFAmfEqckACgkQ60bLvjKD
mmkRcBAAlzkbGTBDMWG+H8OdwByQ0fsnE0z2I4hubH45TkkAVCGZbWlCatBRWKIi
3jbxjRtkSCP7EZ+iIVWV3NSqzOkyzrM8aSeUh04M/6hzz+w7tUB6pXthlQQ2qZow
vv5U+VZKi5TdBgAHCSQcBVfqKasAARRE+I88pzCxooMrmuihX+ZO/q+vUhYHZSWy
P8yKr/Lb6IVDPxsjbJh5VAVLcPjHFoy1cZ+vS2MBodXxwCKl8ZVjqv4Pd/QyWZiJ
mvYLbwaQhObxJHFUa4XkfwXzGItnngYgA7l8NF7dsSRwG1k11LHyOUDvBOU4ifTe
EhMvoHTvhFhVOYyR5H9WNUvTl2+P9oswER9YNihAahlLCVZYaZp+Ov2MLcLy1m9U
qFrn2Le6OTCgN6zLvTI/j5sNk5MObhxAtJIhv0f+NaBtwG7gERwTgGqRrOpHJrPm
cfxFUTg0/iZ2llDusJDytKcpNbMVI0jgaB6hIPU62C92HDO/yryRSasFR+bI2W4E
bN8OHTEniMecMG2XW6bc33jb8TTBXICbmNXsntqv4SQM/vIjf5uvmaUfL1Wwhs+g
vzb0CPd1oWHxo4uhE3dFw6ImlLlg8BGIICKdLJTHncGtHH+KCpkXwZbk5qICNDwp
tfOv1+Kg/WUOmeK2dnTDkAv8fNSFjpjcQ+OqCBXLAeRbRg6qKHM=
=cqfI
-----END PGP SIGNATURE-----


Ludovic Courtès wrote 1 weeks ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Tomas Volf)(address . ~@wolfsden.cz)(address . 76503@debbugs.gnu.org)
87jz97gktu.fsf_-_@gnu.org
Hi Tomas,

Thanks for reading the proposal. I pushed a fix for the typos you
reported.

Tomas Volf <~@wolfsden.cz> skribis:

Toggle quote (8 lines)
>> Forgejo has several features to support collaboration among a large
>> number of people and on a large code base, including
>> [teams](https://docs.codeberg.org/collaborating/create-organization/#teams)
>> and [issue and pull request
>> templates](https://forgejo.org/docs/latest/user/issue-pull-request-templates/).
>
> How do pull request templates work together with AGit flow

Good question, I don’t know, we’ll need to check.

Toggle quote (2 lines)
> that (as far as I understand it) is being considered to be mandatory?

That’s not how I see it; I think suggesting it is an option (but also
from because it provides an interface that some may prefer), but making
it mandatory now doesn’t seem justified to me.

Toggle quote (12 lines)
>> To ease this migration and possibly future migration, we may add a new
>> `git.guix.gnu.org` DNS entry with HTTP redirects to
>> `git.savannah.gnu.org` (before migration) and `codeberg.org` (after
>> migration); a [patch](https://issues.guix.gnu.org/76296) implementing
>> this has been submitted. The `%default-channel-url` variable would
>> refer to `https://git.guix.gnu.org/guix.git`.
>
> The https://git.guix.gnu.org/guix.git seems like a good idea regardless
> of whether this GCD is accepted or not. It would allow us to switch the
> hosting on moments notice in case the underlying infrastructure goes
> down.

Yes, I think so too.

Toggle quote (8 lines)
>> - Within **30 days** after acceptance of this GCD, mailing list
>> administrators will set up the `bug-guix` and `guix-patches` mailing
>> lists in “Emergency Moderation” mode in the Mailman
>> interface—meaning that messages will not get through anymore.
>
> This contradicts GCD 001 no? The 001 requires the GCD to be sent as
> patch to guix-patches@gnu.org. How will this be handled?

I think we would amend GCD 001 to change references to the email
workflow with references to the Codeberg-based workflow. We should
probably spell it out here in an extra bullet, along these lines:

- Once the guix-consensus-document.git repository has been moved to
Codeberg, authorized people will apply [the
patch](https://issues.guix.gnu.org/XXX)amending GCD 001 to refer to
the Codeberg-based workflow.

And so we’d send the patch in question beforehand so everyone can see
how the GCD is amended.

WDYT?

Toggle quote (4 lines)
> On separate note, there are other projects (well, I know just of
> Shepherd, are there others?) than Guix using bug-guix and guix-patches,
> so maybe this GCD should go a bit into how that will be handled.

Maybe with by extending the bullet above:

[…] meaning that messages will not get through anymore.
Other projects that were using bug-guix and guix-patches (the
Shepherd, Cuirass, etc.) must have set up their own bug-reporting
and patch-tracking tools by then.

In practice I believe Shepherd is the only one not under the Guix
project at Savannah that will have to do something special[*]; the other
projects will be able to use the Codeberg tools.

[*] I’d like to migrate Shepherd to Codeberg as well soon, under its own
organization.

Toggle quote (6 lines)
>> Everything that can be done through Forgejo’s web interface can be done
>> *via* its [HTTP
>> interface](https://forgejo.org/docs/latest/user/api-usage/).
>
> This is not true.

I was thinking about this:


Toggle quote (3 lines)
> There is no API for getting the Terms of Use. Changes in those are
> announced only as a banner on the website (as far as I can tell).

Yes; I saw what you (re)wrote on this topic and I plan to reply
separately.

Toggle quote (7 lines)
>> [fj.el](https://codeberg.org/martianh/fj.el/)is an Emacs interface
>> similar to `mastodon.el` that lets you view and comment on issues and
>> pull requests, list repositories, view notifications, and so on.
>
> One thing it does not support (based on the README) is the ability to do
> an actual code review, which is a bummer.

Concretely, it does not let you comment line-by-line so far, which is
what you would do in the web interface.

Of course you can still use ‘fj.el’ to send comments about changes
(that’s what I’ve been doing with those at
https://codeberg.org/civodul/guix/pulls), but for more complex code
reviews, one may have to resort to the web interface to pinpoint
specific issues in the code.

I agree that it’s a bummer, but I find that the overall benefit still
outweighs this annoyance (and it’s an annoyance for some of us but not
for everyone out there).

Toggle quote (8 lines)
>> git push origin HEAD:refs/for/main \
>> -o topic="update-hello" \
>> -o title="gnu: hello: Update to 42." \
>> -o description='This updates the `hello` package."
>> ```
>
> Does this still require a Codeberg account?

Yes.

Toggle quote (3 lines)
> Can anyone update other people's pull requests, the way I can
> currently sent n+1 version of a patch started by someone else?

If I’m not mistaken, the person who creates the pull request decides
whether they allow others to update it. (As a reviewer and “owner”,
I’ve definitely updated other people’s pull requests.)

Toggle quote (8 lines)
>> Note that since Guix requires signed commits by people listed in
>> `.guix-authorizations`, we will *not* be able to click the “Merge”
>> button nor to enable auto-merge on build success.
>
>>From the debate I gathered that the merge button can be completely
> disabled on the Website, I would suggest to put in here that we will do
> that (to prevent mistakes).

Yes, I added a sentence to that effect and pushed it; let me know if
anything more should be done in your view.

Toggle quote (10 lines)
>> First, everyone will have to create an account and accept [Codeberg’s
>> Terms of
>> Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
>> before they can contribute, which can be seen as a step back compared to
>> the email-based workflow.
>
> Something to note here is that "contribute" is used in very wide sense.
> It contains even just reporting a bug. We will likely lose *some* bug
> reports because people will not be willing to jump through the hoops.

That is true, but the same can be said of the current workflow.

Toggle quote (3 lines)
> Would it be possible to have a bot that would still allow at least to
> report bugs via email?

I imagine this is technically feasible, but the problem is that setting
up bidirectional communication (so developers can ask questions to
reporters) is probably out of reach; in that case it would lose its
interest.

In practice, if someone sends a bug to guix-devel, we won’t ignore it,
but I think it’s in the project’s interest to direct bug reports to one
channel.

Thanks for your thorough review and insightful comments!

Ludo’.
Ludovic Courtès wrote 1 weeks ago
(name . Tomas Volf)(address . ~@wolfsden.cz)(address . 76503@debbugs.gnu.org)
878qpnf56n.fsf_-_@gnu.org
Tomas Volf <~@wolfsden.cz> skribis:

Toggle quote (5 lines)
> I went through the Terms of Use and picked few points I considers
> problematic and/or note worthy.

As mentioned in my initial reply¹, this shouldn’t be frame as us-vs-them
(let alone harsh language), but rather as:

1. Is it a blocker?
2. If not, how can we work with Codeberg e.V. on that once we’ve
switched to Codeberg.

Having now read them, I personally find the ToU reasonable.


Toggle quote (2 lines)
> § 2 (1) 3. looks pretty annoying for occasional contributors.

That’s reasonable: it’s a non-profit, they have to make space once in a
while, but that’s okay: Git is distributed, people have a local copy.

Toggle quote (3 lines)
> § 2 (1) 4. forces us to rewrite repository history in case of
> compromise,

I definitely don’t read it that way: it’s not about “compromised” code
as in “CVE in guix-daemon”, and it’s not about genuine bugs either.

Toggle quote (2 lines)
> § 2 (4) is annoying for people not familiar with German law

This is quite theoretical (whereas takedown notices in the US on GitHub
and the likes are something very tangible.)

Toggle quote (6 lines)
> § 2 (5), especially the "its reputation" part, can easily lead to
> loosing Codeberg account, and therefore ability to contribute to Guix,
> over, for example, Mastodon toot complaining that Codeberg it down
> again. After all, that could very well be considered "Action intended
> to damage the [Codeberg's] reputation".

Again that’s a bit of a stretch, but more importantly it’s framed as if
(1) we were dealing with a hostile adversary, and (2) we were customers
not owing respect to the volunteers making it work.

Let’s be very clear: that’s not the spirit of this proposal. We’ll be
using a service set up by other volunteers and we’ll be joining forces
in some way—financially or otherwise. There’s going to be downtimes and
problems, but we’re going to deal with them together.

Toggle quote (5 lines)
> § 3 (4) is pretty WTF. They could at least send an email. I plan to
> keep working from the Emacs, so I am pretty sure I will not check the
> dashboard for announcement messages regarding ToU changes every three
> months.

I agree it’s not great, but it’s typically the kind of thing to discuss
with them, once we’ve moved; perhaps sending email would be acceptable
for them.

Toggle quote (3 lines)
> § 4 (4) is the typical "we can nuke your account at any time for any
> reason". Nice.

Yes, that makes sense to me.

The remaining paragraphs are harsh if not hostile (please avoid that
tone in the future) and hopefully covered by the rest of that reply.

Thanks,
Ludo’.
Tomas Volf wrote 1 weeks ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 76503@debbugs.gnu.org)
87eczfja72.fsf@wolfsden.cz
Thank you for addressing the points one by one. Few reactions below, I
have omitted those where I have nothing more to say.

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (12 lines)
> Tomas Volf <~@wolfsden.cz> skribis:
>
>>> (https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
>
>> I went through the Terms of Use and picked few points I considers
>> problematic and/or note worthy.
>
> As mentioned in my initial reply¹, this shouldn’t be frame as us-vs-them
> (let alone harsh language), but rather as:
>
> 1. Is it a blocker?

Probably not for the project. ^_^ Though for me personally the § 3 (4)
is a blocker. I cannot in good faith agree to check the website every
three months, because I know I will not be doing that. I have already
failed at it once and I know it would happen again.

Toggle quote (10 lines)
> 2. If not, how can we work with Codeberg e.V. on that once we’ve
> switched to Codeberg.
>
>
>> § 2 (1) 4. forces us to rewrite repository history in case of
>> compromise,
>
> I definitely don’t read it that way: it’s not about “compromised” code
> as in “CVE in guix-daemon”, and it’s not about genuine bugs either.

Hm I probably was not clear enough. I simply do not know what Guix
policy here is, so I just wanted to bring this up.

If some committer is compromised, and malicious commit gets pushed
upstream, what will Guix do? Revert the commit? Or rewrite the history
and remove it completely?

If latter, this point is moot and you can stop reading.

If former, I am not sure that would comply with the ToU.

Toggle quote (16 lines)
>
>> § 2 (5), especially the "its reputation" part, can easily lead to
>> loosing Codeberg account, and therefore ability to contribute to Guix,
>> over, for example, Mastodon toot complaining that Codeberg it down
>> again. After all, that could very well be considered "Action intended
>> to damage the [Codeberg's] reputation".
>
> Again that’s a bit of a stretch, but more importantly it’s framed as if
> (1) we were dealing with a hostile adversary, and (2) we were customers
> not owing respect to the volunteers making it work.
>
> Let’s be very clear: that’s not the spirit of this proposal. We’ll be
> using a service set up by other volunteers and we’ll be joining forces
> in some way—financially or otherwise. There’s going to be downtimes and
> problems, but we’re going to deal with them together.

I agree it might be a stretch, but at the same time I assume they had
*some* reason to put a fairly specific point like this into the ToU.

Toggle quote (10 lines)
>
>> § 3 (4) is pretty WTF. They could at least send an email. I plan to
>> keep working from the Emacs, so I am pretty sure I will not check the
>> dashboard for announcement messages regarding ToU changes every three
>> months.
>
> I agree it’s not great, but it’s typically the kind of thing to discuss
> with them, once we’ve moved; perhaps sending email would be acceptable
> for them.

Let us hope.

Toggle quote (4 lines)
>
> The remaining paragraphs are harsh if not hostile (please avoid that
> tone in the future) and hopefully covered by the rest of that reply.

Yes, I apologize for that. I just copy&pasted my original message
written in a bit heated state of mind. I should have adjusted the
language. Sorry.

Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
-----BEGIN PGP SIGNATURE-----

iQJCBAEBCgAsFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmfE5qEOHH5Ad29sZnNk
ZW4uY3oACgkQL7/ufbZ/wampSg/+KsBFFlaZmoTJIjs0tFBa7Jgr78LUxPE2dHpC
+YVcDrM5Qnnd54DatbFXRObQuPIdLcZqw+S1EoGnXhWWxsTjMD7qSfreMMV6hned
draIEvDv+eP4AUrawsmwZEoZKyzNl+maSArkO0ckE96ZPwaj2nr7P773IJFNl5Vy
CbjCHGlqA6aN2sizRwl/0PbDQ2qxl6Fu9OhIcmhVEZTrgDfktEVzxaDMKVUFi8qA
SEcGA5n3XrRHE3IfFjmeiUJpplGgy7vHtAivSRODwF88i8P20C/eZ2l1Yxc/5KUD
z5g0XqHZHzXW0Ds2qBvlZCka5niMgzQt2DZOSHjMNHEn5RTICwZ2Gzx+SKKKf6Wn
LULPX28jWAesN6pOwdEHRvPBSr+CK10caErerX5J4Ss4LUU/y7k8oaTspwqpwG2a
y+6vHHHqY1HqJbPhaLOEzdPWnUEyZXmmHrhYFs1AqQVDQEVv8u+B2hWg2kz79Mbp
VaE0hOFTSVZquUM77qB+Nf2L9fHnHyRCHtZHxVcuflPvCW49bzmElTAU6Ux62M4n
NiymeJBbvqKSAQDkvSWPEQ2ULoUc7VocU9t/WqrKbcKY8qk2A7noZ/1Bpo9lJpW0
3DH2nv19vG/JA9J7q7hFzGydEbJcPUNlzXtoI5pAZlSs4eIt3yvfYX4c0WViU0CG
6Z7YJHg=
=PDUn
-----END PGP SIGNATURE-----

Tomas Volf wrote 1 weeks ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 76503@debbugs.gnu.org)
87a5a3j9af.fsf@wolfsden.cz
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (5 lines)
> Hi Tomas,
>
> Thanks for reading the proposal. I pushed a fix for the typos you
> reported.

I am pretty sure it should have not been pushed to the main branch, but
to wip-codeberg (or something similar). My understanding of GCD-001 and
the README is that main is for approved documents only.

Toggle quote (12 lines)
> [..]

>> How do pull request templates work together with AGit flow
>
> Good question, I don’t know, we’ll need to check.
>
>> that (as far as I understand it) is being considered to be mandatory?
>
> That’s not how I see it; I think suggesting it is an option (but also
> from because it provides an interface that some may prefer), but making
> it mandatory now doesn’t seem justified to me.

Agree.

Toggle quote (24 lines)
> [..]

>>> - Within **30 days** after acceptance of this GCD, mailing list
>>> administrators will set up the `bug-guix` and `guix-patches` mailing
>>> lists in “Emergency Moderation” mode in the Mailman
>>> interface—meaning that messages will not get through anymore.
>>
>> This contradicts GCD 001 no? The 001 requires the GCD to be sent as
>> patch to guix-patches@gnu.org. How will this be handled?
>
> I think we would amend GCD 001 to change references to the email
> workflow with references to the Codeberg-based workflow. We should
> probably spell it out here in an extra bullet, along these lines:
>
> - Once the guix-consensus-document.git repository has been moved to
> Codeberg, authorized people will apply [the
> patch](https://issues.guix.gnu.org/XXX) amending GCD 001 to refer to
> the Codeberg-based workflow.
>
> And so we’d send the patch in question beforehand so everyone can see
> how the GCD is amended.
>
> WDYT?

Yes, that seems good process wise.

I am not really looking forward to reading the debate (given the volume)
in the linear format in the Codeberg's issue tracker (no threading, no
dormant marks, ...), and I am not happy about limiting people able to
comment on GCD proposal to holders for Codeberg account, but both are in
the spirit of this (002) proposal, so it makes sense.

(Hypothetical funny situation would be a GCD about moving *off* Codeberg
due to people having troubles creating account, on which people it is
about would not be able to comment, due to not having an account. Yes,
yes, just joking.)

Toggle quote (12 lines)
>
>> On separate note, there are other projects (well, I know just of
>> Shepherd, are there others?) than Guix using bug-guix and guix-patches,
>> so maybe this GCD should go a bit into how that will be handled.
>
> Maybe with by extending the bullet above:
>
> […] meaning that messages will not get through anymore.
> Other projects that were using bug-guix and guix-patches (the
> Shepherd, Cuirass, etc.) must have set up their own bug-reporting
> and patch-tracking tools by then.

Sounds good.

Toggle quote (12 lines)
> [..]

>>> [fj.el](https://codeberg.org/martianh/fj.el/) is an Emacs interface
>>> similar to `mastodon.el` that lets you view and comment on issues and
>>> pull requests, list repositories, view notifications, and so on.
>>
>> One thing it does not support (based on the README) is the ability to do
>> an actual code review, which is a bummer.
>
> Concretely, it does not let you comment line-by-line so far, which is
> what you would do in the web interface.

Does it at least let you see line-by-line comments from other people?
Sorry for constant questions, but as you might have guessed from the
other thread, I do not have Codeberg account to try it myself.

Toggle quote (9 lines)
> [..]

>> Can anyone update other people's pull requests, the way I can
>> currently sent n+1 version of a patch started by someone else?
>
> If I’m not mistaken, the person who creates the pull request decides
> whether they allow others to update it. (As a reviewer and “owner”,
> I’ve definitely updated other people’s pull requests.)

Can this be enforced on repository level? So that we could mandate that
all pull requests are editable by anyone, to match how the debbugs work
currently?

Toggle quote (12 lines)
>
>>> Note that since Guix requires signed commits by people listed in
>>> `.guix-authorizations`, we will *not* be able to click the “Merge”
>>> button nor to enable auto-merge on build success.
>>
>>>From the debate I gathered that the merge button can be completely
>> disabled on the Website, I would suggest to put in here that we will do
>> that (to prevent mistakes).
>
> Yes, I added a sentence to that effect and pushed it; let me know if
> anything more should be done in your view.

Nothing more required, the addition looks good.

Toggle quote (13 lines)
>
>>> First, everyone will have to create an account and accept [Codeberg’s
>>> Terms of
>>> Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
>>> before they can contribute, which can be seen as a step back compared to
>>> the email-based workflow.
>>
>> Something to note here is that "contribute" is used in very wide sense.
>> It contains even just reporting a bug. We will likely lose *some* bug
>> reports because people will not be willing to jump through the hoops.
>
> That is true, but the same can be said of the current workflow.

People having a working email are a strict superset of people having
Codeberg account, by definition. ^_^

Tomas
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
-----BEGIN PGP SIGNATURE-----

iQJCBAEBCgAsFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmfE6zgOHH5Ad29sZnNk
ZW4uY3oACgkQL7/ufbZ/wamWOw/+I7mhGD8ucOG8NdmpCi5kRPfWAiwHfwsDEpIf
KXDmUtftG2zyHgMEPh8ukp73M9nyWbpJJDa9k7Dc2DXpHrnOSHblirYzjj1W+hJB
2SeD6fYFCY7igZnVnq9lzQx7bSppIFoiHaOkkoD3n236v9FW6DAOLf+OAxjGs7Kz
ioX0Ew45FWBnqHsfnuxCXw+Uj9FmqvvsCAmVzorT7PYUfMxQWnbuRj5d4RpSsWF5
012wmlpfEoxh0Rh8ZCRa79fAbqssbYOKJGBFwWBWRcxq5riQBT1PcVnmQ3w1K3i2
NJod/Z3NfVrxa+XwgINRR3xlzzUsPlSZ6/bsDeX823OhudVjlVlb4DRKEHxLrp6T
nqIWQrMKa055AqM3GF6d/7kfqI/Z/rbVst8Qj/BQ7QBPVK36epmHlw7M8acDw8vx
8yNXMfuUOLzMwKITuuCoOHoN9Q3paz3zVJ2p6M2qxQc0SCgL8KGrm5rKt26uOC7b
iBAgWNR1NFkN40ECR0HGm9BiF23r/w5Vpn/FMxeWvKkCEzM4Dp1XrJEelC9K5oM3
YntMCg1cG4ZsTSxsGmO3ua2HKiE01X1xF/7kneMSOokEBfMdnK1AFrUbTdwtGuHV
cT7HYHUoo5pIOBRF/8kuSAEh/5l+X1UDKytlcTgVgumGnoyROLSM1UTDoBL2p2mj
o/O4OI4=
=ApT9
-----END PGP SIGNATURE-----

Konrad Hinsen wrote 1 weeks ago
[GCD] Migrating repositories, issues, and patches to Codeberg
(address . 76503@debbugs.gnu.org)
m11pvezhsx.fsf@fastmail.net
Hi everyone,

A few comments which I will prefix with a summary of my own perspective:

1. I am an occasional contributor to Guix, contributing mainly packages
that I make for my own needs and wish to share.

2. I am a voting member of Codeberg e.V., because I believe that
Codeberg and its Forĝejo project are a step in the right direction,
which I see as transitioning forges from platforms to services
that don't "own" projects, nor user accounts.

Overall, I am very favorable to moving to a forge because of point 1. I
don't see anything objectively wrong or bad about the current e-mail
workflow, but for an occasional (or new) contributor its hard to become
fluent with it. In contrast, forges are becoming standard even for many
non-coders.

I won't comment on topics I am ignorant about, in particular the storage
debate. Nor much on other points that I think can be solved in
collaboration with the Codeberg team, e.g. the LibreJS issues.

That leaves the problem of becoming dependent on a platform, which
implies that all contributors must create an account and accepts terms
of services, and that, at least in theory, the platform owners can do
harm to the project.

As I said above, the long-term goal should, in my opinion, be forges as
services, much like e-mail servers. Projects bring their own domain,
terms of services, etc., and pay a service provider for keeping the
servers running, retaining the option of switching service providers. We
don't have this possibility right now, but the federation approach of
Forĝejo makes it look reachable in a small-integer number of years.

For me, moving to Codeberg is a stepping stone towards this goal. It
looks like Guix would be their larges project, meaning that we would
have a lot of influence on how Codeberg and Forĝejo will evolve towards
serving projects like ours. I see that as an opportunity.

As for the current terms of services, I have personally no issues with
them. Any set of written rules leaves a potential for abuse, so I am not
a fan of overinterpreting written rules. I'd rather look at how the
rules are applied, and from that perspective, I am not aware of any
project having had issues with Codeberg.org.

Cheers,
Konrad.
Konrad Hinsen wrote 1 weeks ago
(address . 76503@debbugs.gnu.org)
m1y0xmy2fk.fsf@fastmail.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:

Toggle quote (6 lines)
> Overall, I am very favorable to moving to a forge because of point 1. I
> don't see anything objectively wrong or bad about the current e-mail
> workflow, but for an occasional (or new) contributor its hard to become
> fluent with it. In contrast, forges are becoming standard even for many
> non-coders.

One more point that I forgot: moving to a forge could be even more
beneficial for increasing the number of people reviewing patches. For
submitting a patch, the current workflow is unusual but not so
complicated. For reviewing, I don't even know how to do it, in
particular how to apply and test patches from an e-mail message in a
sufficiently automated way. In contrast, on a forge, I could well
imaging participating in reviewing patches for ecosystems I am familiar
with.

Cheers,
Konrad.
Maxim Cournoyer wrote 7 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ludovic Courtès)(address . ludo@gnu.org)
8734ftdoq4.fsf@gmail.com
Hi Ludovic,

Ludovic Courtès <ludo@gnu.org> writes:

[...]

Toggle quote (36 lines)
> However, to overcome several limitations, the project developed
> processes and tools, which can be characterized as *incidental
> complexity*:
>
> - because the Debbugs web interface is crude by today’s standards and
> hard to search and navigate, the project developed
> [mumi](https://git.savannah.gnu.org/cgit/guix/mumi.git/), the web
> interface running at https://issues.guix.gnu.org;
> - to navigate bugs and patches more conveniently than what an email
> client supports, contributors were
> [encouraged](https://guix.gnu.org/manual/devel/en/html_node/Debbugs-User-Interfaces.html)
> to use interfaces like `debbugs.el` or `b4`;
> - sending patch series by email does not play well with Debbugs’
> automatic identifier assignment, so [contributors were told to send
> their “cover letter”, wait for an identifier to be assigned, and
> then send the
> rest](https://guix.gnu.org/manual/devel/en/html_node/Sending-a-Patch-Series.html#Multiple-Patches-1);
> - to help sending and applying patch series, mumi was extended to
> provide a command line interface;
> - to build patch series submitted by email, the [QA
> service](https://qa.guix.gnu.org) has to rely on a [Patchwork
> instance](https://patches.guix-patches.cbaines.net/project/guix-patches/list/)
> that is subscribed to the `guix-patches` mailing list, coupled with
> its own [parsing of incoming
> email](https://git.savannah.gnu.org/gitweb/?p=guix/data-service.git;a=blob;f=guix-data-service/branch-updated-emails.scm;h=aeb1570dfda725864a77780d0541f26c090b0e55;hb=c886685e9284da4bbed9377f70dd70da9e7ca29f);
> - the project added a commit hook to create add unique `Change-Id`
> headers in commit messages in an attempt to correlate commits in the
> repository with messages send to `guix-patches`; none of the
> existing tools takes advantage of it though, and it is up to
> contributors to manually close entries in the bug/patch tracker once
> they have been fixed/applied.
>
> Developing and maintaining this software and infrastructure is
> time-consuming. Worse, it leaves contributors largely dissatisfied for
> a variety of reasons:

I don't think maintaining the infrastructure *that would be replaced*
has been too time consuming. Sure, Mumi has had some issues and needed
some fixing, but most of what is used today:

- Savannah (git hosting)
- Debbugs (bug tracker) & Mumi
- Git configs/hooks
- Contributing documentation

rarely ever changes and has been stable, all while being generously
hosted, without limits on repository size or other criteria, on
freedom-respecting hardware and a friendly associated org (FSF/GNU),
which I assume can't be said of Codeberg (w.r.t. using free software
friendly hardware, such as using the GNU Boot bootloader). The
complexity of the flow can be partly explained by the fact that there
isn't only one flow possible, but a multitude of flows (Emacs Debbugs,
Mumi, git send-email, etc.), which is more of a strength than a defect
when it comes to the freedom of choice/flexibility for our contributors.

I see the argument that there's an HTTP API for Forgejo; that's great,
but it requires that everyone relearn another way of doing something
that already works well enough for me and others, which I'm not too
excited about. I also assume the Forgejo-related tooling, given their
young age, would not be as mature and missing features in places, and
that it would require invested time to comfortably do all that can be
done today in Gnus and Emacs Debbugs, away from the web interface, in
the environment of choice (Emacs) of perhaps a majority of the Guix
contributors.

The parts that have required the most maintenance would be, I assume, CI
(Cuirass) and QA (Guix Build Coordinator), but these components will
continue to be used in the event we migrate to Codeberg, so we wouldn't
gain much on the maintenance side, it seems.

Toggle quote (13 lines)
> - the process is unfamiliar to most newcomers;
> - the tools and infrastructure in Guix have become a maze;
> - apart from the happy few using `debbugs.el` in Emacs, navigating
> open issues and patches is hard; filtering incoming messages is
> equally hard, even for those with 10+ years of experience with
> advanced email tools (Gnus, mu4e, notmuch, b4, etc.);
> - because the various parts of the development process (repository,
> issue tracking, QA automation, `etc/teams.scm`) are largely
> disconnected, even long-time contributors can hardly follow issues
> relevant to them; issues may remain open after they’ve been fixed,
> new activity on an issue may go unnoticed, cross-references among
> issues are not visible in any of the interfaces, etc.

I believe some of the above, such as notifying everyone involved in a
ticket's discussion when replying, has been/could be tackled in the
improved GNU Debbugs rewrite that Felix has been refining and testing
[0, 1]. I think improving Debbugs for the whole of GNU (the Emacs
project actively use it still for example) would make sense and is
something I've been meaning to do, but not high in my priority list
(since it already works well enough for the most part). Hacking a small
Perl code base doesn't appear much more daunting than the modern
Go-written, web framework library heavy mastodon I assume
Gitea/Forgejo is, so I'm not sure why we wouldn't try this first
instead. I can't help but feel like we'd be throwing the baby out with
the bathwater: in my view, the current situation is not as bad as
suggested in your outlook, though I agree further automation and
simplifications would be welcome.


Toggle quote (6 lines)
> All this contributes to a [poor
> experience](https://guix.gnu.org/en/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-3/)
> for those who choose to contribute despite the barrier to entry,
> probably discourages many to even start contributing, and adds to the
> load of committers and infrastructure maintainers.

My reading of the survey's results was that the main concern of the
community was packages' freshness and availability. Our backlog is
already larger than we can handle. Opening contributions from more
people, if that's what Codeberg would help with, wouldn't solve the real
problem of lack of eyes & hands to review and merge the contributions,
while giving us more work documenting the new workflows and their
quirks.

One serious usability quirk I can foresee is that given our current
PGP-based security design, committers would still need to push the
commits manually from their local machine so they can sign the commits
with their key, which probably defeats the streamlined and automated
niceties of the PR flow:

- The merge button in web UI would need to be disabled or documented as
prohibited (I doubt we'd even be able to disable it? or we'd need to
ensure the merge can be fast-forwarded and is already signed, which
would be a bit annoying since we'd need to not only fetch + rebase but
then visit the web interface to merge a change). It can all be
automated via the HTTP API I'm sure, but that wouldn't be much of an
improvement (if at all) over our current flow.

I suspect not being able to follow the expected way of merging things
probably further implies that:

- Issues won't be closed automatically since we can't use the merge
button.
- Both PR and issues must then be closed manually, which is what we
currently have
- The flow would be *even* more confusing than now, since it'd look
like Github but require committers to use it very differently.

Which would again need more custom tools/scripts as a workaround.

[...]

Toggle quote (9 lines)
> Within **30 days** following acceptance of this GCD, committers would
> migrate all these repositories to https://codeberg.org/guix.
>
> For Guix itself, we would decide on a **flag day** 14 days after
> acceptance of this GCD at the earliest, and 30 days at the latest. On
> that day, the official URL of the Guix repository would become
> https://codeberg.org/guix/guix.git. A commit would reflect that by
> updating:

I'd like to suggest extending the 'trial' period to something much
longer, like a year or so, to make sure our parachute is properly
installed before jumping the cliff :-). Letting both systems co-exist
and compete for merit seems a good trial, and we could also extract
useful data (such as how many contributions were merged on one or the
other, etc.). It'd be a bit annoying to keep an eye at two places for
some time, but at least we wouldn't commit to something that may not
scale/match our peculiar requirements as well as we expected.

After such trial we could then vote on whether we want to fully migrate
to Codeberg, when all regular contributors would have gotten a chance to
try the new tools and find a flow that works for them, hopefully. With
this insurance in place, I'd be happy to experiment with Codeberg and
see whether it truly improves things.

Thank you for proposing this GCD!

--
Maxim
Ekaitz Zarraga wrote 7 days ago
a71ac769-8bf1-43d8-80e1-145cd9de7d11@elenq.tech
On 2025-03-04 12:22, Maxim Cournoyer wrote:
Toggle quote (3 lines)
> - The flow would be*even* more confusing than now, since it'd look
> like Github but require committers to use it very differently.

This is a very interesting take.
I have a similar view when we mention A-Git-Flow or whatever that is.
We would be using a tool in a very surprising way. I don't know if
that's good, at all.

We would be pushing that complexity only to committers, not to ocasional
contributors, which may help attracting people. But, on the other hand,
we would force people who is already very busy (and very efficient with
their current workflow) to discard their way to do things and learn another.

I like the proposal, but at the same time, I feel very comfortable with
Guix due to the fact that I can collaborate with email only (I even
decided to use the same model for my projects!).

Some of the things we have are very disturbing though: savannah is
weird, patches being mixed with issues, debbugs is not very comfortable
to use... I think that would be improved with Codeberg.

I don't know if this adds anything, but there it is.

Cheers,
Ekaitz
Ricardo Wurmus wrote 6 days ago
(name . Ekaitz Zarraga)(address . ekaitz@elenq.tech)
878qpk4st7.fsf@elephly.net
Ekaitz Zarraga <ekaitz@elenq.tech> writes:

Toggle quote (22 lines)
> On 2025-03-04 12:22, Maxim Cournoyer wrote:
>> - The flow would be*even* more confusing than now, since
>> it'd look
>> like Github but require committers to use it very
>> differently.
>
> This is a very interesting take.
> I have a similar view when we mention A-Git-Flow or whatever
> that is.
> We would be using a tool in a very surprising way. I don't know
> if
> that's good, at all.
>
> We would be pushing that complexity only to committers, not to
> ocasional contributors, which may help attracting people. But,
> on the
> other hand, we would force people who is already very busy (and
> very
> efficient with their current workflow) to discard their way to
> do
> things and learn another.

The Github workflow is more complicated:

- fork the repository on the forge website
- clone your fork from the forge to your local machine
- checkout a new branch
- make a commit
- push the commit from your local checkout to your fork on the
forge
- go to the forge website to open a pull request from your fork to
the upstream repository

The AGit flow:

- clone the upstream repository
- checkout a new branch
- make a commit
- push the commit as a PR to the forge.

Am I overlooking something?

--
Ricardo
Ludovic Courtès wrote 6 days ago
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
875xkoaers.fsf_-_@gnu.org
Hello,

Arun Isaac <arunisaac@systemreboot.net> skribis:

Toggle quote (3 lines)
> The only amendment I would strongly recommend is to require the agit
> workflow in order to mitigate the storage problem/risk.

The problem I see with requiring AGit is that we’d be making a decision
based on what we understand is a potential risk on Codeberg’s side.

I would rather not require use of AGit until Codeberg volunteers ask us
to do so or at least express concern in relation with Guix activity on
Codeberg. But of course, this could only happen after migration.

WDYT?

Alternatively (or in addition to the above), perhaps I can solicit
feedback from a Codeberg volunteer during this discussion period?

Toggle quote (7 lines)
> I do want to. But I didn't because I didn't want to overload your
> personal repo with too many pull requests. Perhaps we can have a pilot
> period (say 30 days) when both mumi/debbugs patches and codeberg pull
> requests would be accepted methods to contribute. This may help put
> people's minds at ease about the transition, and give them some time to
> adapt their contribution/review worklows.

Yes, having a period where both methods are accepted sounds doable.

The risk is that some things would go unnoticed on one side or the
other, and during that period we’d be effectively splitting the
community between “those who prefer email” and “those who prefer
Codeberg”, but if it’s limited to 30 days max, that’s probably OK.

What do people think?

Ludo’.
Arun Isaac wrote 6 days ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
87h648wui8.fsf@systemreboot.net
Hi Ludo,

Toggle quote (12 lines)
> The problem I see with requiring AGit is that we’d be making a decision
> based on what we understand is a potential risk on Codeberg’s side.
>
> I would rather not require use of AGit until Codeberg volunteers ask us
> to do so or at least express concern in relation with Guix activity on
> Codeberg. But of course, this could only happen after migration.
>
> WDYT?
>
> Alternatively (or in addition to the above), perhaps I can solicit
> feedback from a Codeberg volunteer during this discussion period?

Talking to Codeberg sounds good. We have to do it anyway to discuss
other aspects of the migration.

Regards,
Arun
Ekaitz Zarraga wrote 6 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
6b4256d6-be7f-43c8-be3b-c2b0921dd043@elenq.tech
On 2025-03-04 18:19, Ricardo Wurmus wrote:
Toggle quote (8 lines)
>
> The AGit flow:
>
> - clone the upstream repository
> - checkout a new branch
> - make a commit
> - push the commit as a PR to the forge.

Yes but no.
It's easy, but if we are going to make any contributor do that, we are
still going to need documentation and people will come and complain.

Isn't the email based workflow as simple as:

- clone the upstream repository
- make commits
- send email

I would say that's even simpler (it doesn't even involve branches!). But
still people seem to struggle with it.

Codeberg is born from a software that intends to be a Github clone and
was originally designed with that workflow in mind. So people would
deduce we work using the Github workflow, and probably be frustrated
when they realize we don't.

I wouldn't be surprised if this is discussed as something problematic in
the future.

I'm not saying I dislike it (I do like it), but we have to be prepared.
I don't think the email workflow was specially difficult, I think this
change has been advocated for because people wanted to use the Github
workflow instead (the main argument was "it's what people is used to").

I know Ludovic's proposal doesn't try to overcome that specific "please
do what I'm used to because I don't want to think" problem, but we have
to be aware that those who want this change to happen because of it are
not going to be happy with the result.

Having the PR would be better for them than what we had. That's also true.


Also, now I'm thinking about it, the complexity of a-git-flow is
directly pushed to any contributors, and not only people with commit
access like the website being unable to merge things. So there's that, too.

Cheers,
Ekaitz
Noé Lopez wrote 6 days ago
877c5462wy.fsf@xn--no-cja.eu
Ekaitz Zarraga <ekaitz@elenq.tech> writes:

Toggle quote (19 lines)
> On 2025-03-04 18:19, Ricardo Wurmus wrote:
>>
>> The AGit flow:
>>
>> - clone the upstream repository
>> - checkout a new branch
>> - make a commit
>> - push the commit as a PR to the forge.
>
> Yes but no.
> It's easy, but if we are going to make any contributor do that, we are
> still going to need documentation and people will come and complain.
>
> Isn't the email based workflow as simple as:
>
> - clone the upstream repository
> - make commits
> - send email

Here’s my point of view:
- clone the upstream repository
- make commits
- format patches
- configure git send-mail
- …or find out which addresses to send the mail and who to cc with
etc/teams.scm
- send email

Which is more complicated than the AGit flow IMO. And we will need
documentation on how to contribute no matter which way we choose.

What I especially like about the AGit flow is that it just uses git,
which is a common factor. No need for an alternate patch format, or
email.

Cheers,
Noé
-----BEGIN PGP SIGNATURE-----

iQHGBAEBCAAwFiEEXVTPJVeyOOiNwYCiLSIyQQq3QEMFAmfHTL0SHG5vZUB4bi0t
bm8tY2phLmV1AAoJEC0iMkEKt0BDtuQL/jS9Tld0cpawCxzasE0zg50tv7hOFmze
VbDkCwXh3Is3mcL1DY06LQixxN4E3BmumOkF0YbN2yrIqRPVD5+MXG9lLcLL5b0V
XO7HEJ1t+zR8qAXvkNQtJIGQd1cm+Fu4A0GJxpPQgzSfvkimMKywx7+oIu6NIa8o
5VJ8bw+svP9o6PMY46D5z336jkfrfXCQKSd/4idn26IDj1y3DsLjofAnkzSXadB8
eTXMFKSUdw1JS/7RBjyeDgaZ3kx7/7EM7XvVib7ibva1IVhbALrQjrM7tSH0e6ax
necW+jsA8jWkQjce+RD7bGLztqEgS0j1blcCoVChSRH3MUfRA0doEFxy02d5NidV
k/Jr03fXUuMAMyc83lg9+FO9r4FdPXbadlIRJkLhqEzHMzv+aZQSAhCsOQ4ITzUv
0C4mLXV0cHeyjdO5TLzuJlDzR9jpolx3U5gWCuHpi9wpOzOFMC5ntbTr+bW0sn7F
yr3XhQUw4N8PHUdm1oK2OyUMuHhM4aFliA==
=aoy4
-----END PGP SIGNATURE-----

Ekaitz Zarraga wrote 6 days ago
1bb89d99-f80e-485b-867a-d778c9f2a539@elenq.tech
On 2025-03-04 19:55, Noé Lopez wrote:
Toggle quote (11 lines)
>
> Here’s my point of view:
> - clone the upstream repository
> - make commits
> - format patches
> - configure git send-mail
> - …or find out which addresses to send the mail and who to cc with
> etc/teams.scm
> - send email
>

Of course, I was just making it simple on purpose. Those points you
address here have "easy" answers (my point being: as "easy" as
agit-flow, with quotes), once you configure, you don't have to type the
email addresses anymore.

The point what I wanted to make is not that it is really easier or not
(without quotes), but the fact that it doesn't matter. It's different to
what people expect, and that's going to create friction.

Toggle quote (3 lines)
> Which is more complicated than the AGit flow IMO. And we will need
> documentation on how to contribute no matter which way we choose.

The heavy use of --push-option/-o is pretty weird for people that never
did that before (I never used that before and I have quite a long
experience collaborating in free software projects), the refspec usage
agit-flow needs is not widely known either.

- Was it refs/for/master or was it /for-review/ or what?
- Oh the -o description="..." takes a string but I want a multiline
thing that is getting too long.
- Oh no! the pr messed up my formatting again!
...

Well, at least the email we can write it in a proper editor very easily.
I don't know if that's the case in the -o unless we hack around...
(anyway, that's not the point here)

Toggle quote (4 lines)
> What I especially like about the AGit flow is that it just uses git,
> which is a common factor. No need for an alternate patch format, or
> email.

Well, patches are a part of git as --push-option is (Codeberg PRs are
not part of Guix, though), so I don't think this makes a good argument.
But regardless, my point was that when this issue was discussed, for
example, in a thread I started a while ago about the future of Guix, the
arguments I found were that Guix was too hard on newcomers and that we
needed to use a forge like any body else, because that's what people is
used to.

I still doubt that applying the Github workflow (or any other workflow)
is going to increase the amount of meaningful contributions (Guix is
already too hard as it is, it's not like the email workflow was the
hardest part of Guix) and I'm aware the move to Codeberg doesn't only
try to fix the commit workflow but also many other things, which I agree
with.


I just wanted to emphasize that if we are not letting people use the
merge button and we are going to use agit-flow or anything like that, we
are not going to make it obviously simple.

And it's going to make the committers' (our real bottleneck) life a
little bit hard for some time until we get used to this and we become as
efficient with it as we are now.

Cheers,
Ekaitz
Maxim Cournoyer wrote 6 days ago
(name . Andrew Wong)(address . wongandj@icloud.com)
87ldtkia56.fsf_-_@gmail.com
Hi,

Andrew Wong <wongandj@icloud.com> writes:

Toggle quote (15 lines)
>> On Feb 25, 2025, at 10:04 AM, Cayetano Santos via Guix-patches via <guix-patches@gnu.org> wrote:
>> Still, I wonder how Github
>> educated people, reluctant to email exchange, will react to a
>>
>> git push origin HEAD:refs/for/<target-branch>/<session>
>>
>> based workflow, and if this really lowers the barrier to entry[1].
> The linked page refers to a tool called “git-repo”, which smooths out
> the more technical bits to commands like “git pr”. From appearances it
> seems like using this tool is lower-investment for users than
> configuring (or changing!) their email client to interact with mailing
> lists and the mail-in patch workflow properly. It also helps that this
> (optional?) special tool is more “orthogonal” to other workflows,
> rather than involving something as central as emails.

You'd still need an email client to interact with guix-devel and our
other mailing lists, or to create the request to merge a feature branch
that QA understand (until this is adapted/changed to use something
else).

--
Thanks,
Maxim
Maxim Cournoyer wrote 6 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87h648i95l.fsf_-_@gmail.com
Hi Ricardo,

Ricardo Wurmus <rekado@elephly.net> writes:

[...]

Toggle quote (19 lines)
> The Github workflow is more complicated:
>
> - fork the repository on the forge website
> - clone your fork from the forge to your local machine
> - checkout a new branch
> - make a commit
> - push the commit from your local checkout to your fork on the forge
> - go to the forge website to open a pull request from your fork to
> the upstream repository
>
> The AGit flow:
>
> - clone the upstream repository
> - checkout a new branch
> - make a commit
> - push the commit as a PR to the forge.
>
> Am I overlooking something?

At least two of the points this GCD is supposed to improve on is:

Toggle snippet (4 lines)
- the process is unfamiliar to most newcomers;
- the tools and infrastructure in Guix have become a maze;

What would arguably be most familiar to newcomers is the Github-style PR
flow, whether we like it or not, and Gitea/Forgejo is a designed as a
clone of Github, even at its API level, so I'm pretty sure the PR flow
would be the intuitive expectation of newcomers interacting with it.

Using other flows that require typing command lines or abstracting these
via other tools is just changing a set of "weird" tools to another set
of "weird" tools, from a newcomer's perspective.

I'm not saying I don't see any positives to migrating to Codeberg, but
that if we can't use the PR flow then the points I quoted above do not
appear improved much by such a move.

--
Thanks,
Maxim
Alexis Simon wrote 6 days ago
2c40b4a0-efa8-4e40-92e6-04d0c69f7797@runbox.com
Hello,

I don't really understand this whole thread and worry about the Agit
flow. I think some information was lost along the way.

From my understanding of the GCD and other discussions, both the
classic PR github-like flow and Agit can live happily together. And the
GCD does not propose to only allow the Agit flow.

Everyone preferring (or simply only knowing) the classic fork-PR can go
this way.

Any person that would prefer not forking and working mostly from the
command-line can do so through the Agit flow.

But from the commiter/reviewer POV, this will look identical, i.e. a PR
on the repo.
Am I missing something?

The issue of not having a merge button comes from another set of
considerations (signing).

Cheers,
Alexis

On 05/03/2025 02:00, Maxim Cournoyer wrote:
Toggle quote (45 lines)
> Hi Ricardo,
>
> Ricardo Wurmus <rekado@elephly.net> writes:
>
> [...]
>
>> The Github workflow is more complicated:
>>
>> - fork the repository on the forge website
>> - clone your fork from the forge to your local machine
>> - checkout a new branch
>> - make a commit
>> - push the commit from your local checkout to your fork on the forge
>> - go to the forge website to open a pull request from your fork to
>> the upstream repository
>>
>> The AGit flow:
>>
>> - clone the upstream repository
>> - checkout a new branch
>> - make a commit
>> - push the commit as a PR to the forge.
>>
>> Am I overlooking something?
>
> At least two of the points this GCD is supposed to improve on is:
>
> --8<---------------cut here---------------start------------->8---
> - the process is unfamiliar to most newcomers;
> - the tools and infrastructure in Guix have become a maze;
> --8<---------------cut here---------------end--------------->8---
>
> What would arguably be most familiar to newcomers is the Github-style PR
> flow, whether we like it or not, and Gitea/Forgejo is a designed as a
> clone of Github, even at its API level, so I'm pretty sure the PR flow
> would be the intuitive expectation of newcomers interacting with it.
>
> Using other flows that require typing command lines or abstracting these
> via other tools is just changing a set of "weird" tools to another set
> of "weird" tools, from a newcomer's perspective.
>
> I'm not saying I don't see any positives to migrating to Codeberg, but
> that if we can't use the PR flow then the points I quoted above do not
> appear improved much by such a move.
>
Ricardo Wurmus wrote 6 days ago
(name . Alexis Simon)(address . alexis.simon@runbox.com)
8734fr4y72.fsf@elephly.net
Alexis Simon <alexis.simon@runbox.com> writes:

Toggle quote (4 lines)
> Everyone preferring (or simply only knowing) the classic fork-PR
> can
> go this way.

Correct.

Toggle quote (8 lines)
> Any person that would prefer not forking and working mostly from
> the
> command-line can do so through the Agit flow.
>
> But from the commiter/reviewer POV, this will look identical,
> i.e. a
> PR on the repo.

This is correct.

--
Ricardo
Ricardo Wurmus wrote 6 days ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87wmd33jg5.fsf@elephly.net
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (34 lines)
> Hi,
>
> Andrew Wong <wongandj@icloud.com> writes:
>
>>> On Feb 25, 2025, at 10:04 AM, Cayetano Santos via Guix-patches
>>> via <guix-patches@gnu.org> wrote:
>>> Still, I wonder how Github
>>> educated people, reluctant to email exchange, will react to a
>>>
>>> git push origin HEAD:refs/for/<target-branch>/<session>
>>>
>>> based workflow, and if this really lowers the barrier to
>>> entry[1].
>> The linked page refers to a tool called “git-repo”, which
>> smooths out
>> the more technical bits to commands like “git pr”. From
>> appearances it
>> seems like using this tool is lower-investment for users than
>> configuring (or changing!) their email client to interact with
>> mailing
>> lists and the mail-in patch workflow properly. It also helps
>> that this
>> (optional?) special tool is more “orthogonal” to other
>> workflows,
>> rather than involving something as central as emails.
>
> You'd still need an email client to interact with guix-devel and
> our
> other mailing lists, or to create the request to merge a feature
> branch
> that QA understand (until this is adapted/changed to use
> something
> else).

The difference is that you don't need to configure "git
send-email" or
configure a local msmtp to send email to guix-devel or other
mailing
lists. For patches sent to guix-patches we recommend configuring
"git
send-email" to avoid garbled patches.

I know from mentoring people that setting up "git send-email" is a
real
hurdle, whereas sending simple emails to participate in
discussions on a
mailing list is not.

--
Ricardo
Efraim Flashner wrote 6 days ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
Z8gyD-vqvGswLFIE@3900XT
On Tue, Mar 04, 2025 at 08:22:59PM +0900, Maxim Cournoyer wrote:
Toggle quote (33 lines)
> Hi Ludovic,
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
> [...]

> - The merge button in web UI would need to be disabled or documented as
> prohibited (I doubt we'd even be able to disable it? or we'd need to
> ensure the merge can be fast-forwarded and is already signed, which
> would be a bit annoying since we'd need to not only fetch + rebase but
> then visit the web interface to merge a change). It can all be
> automated via the HTTP API I'm sure, but that wouldn't be much of an
> improvement (if at all) over our current flow.
>
> I suspect not being able to follow the expected way of merging things
> probably further implies that:
>
> - Issues won't be closed automatically since we can't use the merge
> button.
> - Both PR and issues must then be closed manually, which is what we
> currently have
> - The flow would be *even* more confusing than now, since it'd look
> like Github but require committers to use it very differently.
>
> Which would again need more custom tools/scripts as a workaround.
>
> [...]
> Thank you for proposing this GCD!
>
> --
> Maxim
>

I grabbed the following from one of the projects I've found on codeberg,
from an open pull request. The formatting didn't copy over, so I've
reformatted it a bit. I assume if we have "autodetect manual merge"
turned on then we wouldn't get the warning listed next to merge.

x This pull request has changes conflicting with the target branch.
* src/actions/repo/create.rs

↓ View command line instructions

# Checkout
From your project repository, check out a new branch and test the changes.
```
git fetch -u https://codeberg.org/gekkowrld/codeberg-clilist:gekkowrld-list
git checkout gekkowrld-list
```

# Merge
Merge the changes and update on Forgejo.
Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.
```
git checkout main
git merge --no-ff gekkowrld-list
git push origin main
```

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmfIMgsACgkQQarn3Mo9
g1HVXw//b6SSaxsVAi2H1EAmekRGYlHgJn1SUUIk7rqiYQ4hJDQ/nCX87BXr/rym
K5CPja5pGI5ggX9iyeimRmkYACv4Qzkx/JzRijEUfkgcBgKJd4ftnTfkyisc8lGI
JUn9oq7INWow3/u1uZbEK7eF7HSFfce31g0/8srVdVEfuQNuEvDjpCPjDculAlKR
K1kzwdp7C1Oup0+KF0lXELCuw2VQ9eJBQJsbv6jhSg2rPxIQou3Mdowo1T5nWOO7
HISn7RMGXSC/XCTO+mXqvLzsvMi0QgDKrNksL6U7MXe9NdUNrLF+KmeuxIJvGbVm
RGf+xS2DVVN/XeESWbeUdITLS+5bg66byhLlTOhXX078Wv0YUwDetq6PdqxGNYl9
yDHbr3ywK0B5vt8ktbZLZQApfDvkI1OefQi/ZR8ygKgtNIpZP5MFtJkRPjByIeEg
mXxMOPb7gQUOCAytqDO6M0uCyfm6WkDWvGI6jPOmkJxfh3bj4IKFWm8FYH2d/rns
oKPsVzegzA9uObYN+oryO4n8KftNWfTo6GxslHWqgQBzab8uCyNj/w0j2h3c9OkW
j+0hqiG3jNPGh6KIpgIGPfNsXHa8ssDUflZfW4dkugpdyF0PYEoWbaV8PSH89Aec
+kxkU/ViVBxxeZXN4RIe0FwgJrJjIpetXpSWglcQcX7/JFrBuio=
=7/AP
-----END PGP SIGNATURE-----


Nicolas Graves wrote 6 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Guix Devel)(address . guix-devel@gnu.org)
87senrk6mc.fsf@ngraves.fr
On 2025-02-23 16:20, Ludovic Courtès wrote:

Toggle quote (46 lines)
> Hello Guix!
>
> [...]
> ## Continuous Integration
>
> Forgejo supports
> [*webhooks*](https://forgejo.org/docs/latest/user/webhooks/), `POST`
> requests that are sent to the server of one’s choice upon events such as
> pull request creation. Cuirass (running at ci.guix.gnu.org) already
> [supports](https://hpc.guix.info/blog/2025/01/join-the-guix-science-community/)
> them and automatically creates a *jobset* when a pull request is made.
> The [QA frontpage](https://qa.guix.gnu.org) and its [Data
> Service](https://data.qa.guix.gnu.org) does not support Forgejo webhooks
> yet but can be extended to do so without too much effort, possibly
> sharing or reusing the Forgejo interface code from Cuirass.
>
> In the Guix repository, we will set up webhooks to trigger the creation
> of a new jobset at ci.guix.gnu.org (Cuirass) as soon as migration is
> complete. While this has been successfully used for several months for
> [Guix-Science](https://codeberg.org/guix-science), scalability will be
> the major concern here; additional developments may be needed to
> consolidate this support. Eventually the QA frontpage will also support
> those webhooks.
>
> We will arrange so that the build status of a pull request is clearly
> visible right from that pull request.
>
> Eventually, the QA service or a [Forgejo
> *action*](https://forgejo.org/docs/latest/user/actions/) may
> automatically provide feedback from `guix lint` as a reply to pull
> requests.
>
> ## Workflow
>
> Once continuous integration (CI) is fully operational, pull requests may
> be merged if and only if they successfully built. “World-rebuild” pull
> requests would still follow the [existing branching
> process](https://guix.gnu.org/manual/devel/en/html_node/Managing-Patches-and-Branches.html).
>
> Note that since Guix requires signed commits by people listed in
> `.guix-authorizations`, we will *not* be able to click the “Merge”
> button nor to enable auto-merge on build success.
>
> If and when the project migrates, we will incrementally adjust our
> workflow to ensure it scales better.

There is one thing I'm not sure someone raised earlier about ownership
and ease of access to data.

I hate a lot of AI usage/goals , but I think we should take advantage of
the research in this field when convenient and for a worthwhile goal
(that is : not making money by stealing people's attention). It seems we
have a tremendous amount of data (for git commits, git commit messages,
email exchanges) that could be used to train specialized AI agents that
could be very useful in CI / development contexts. A few examples on the
top of my mind:
- a commit message help complying with GNU standards
- a "rebuilder" agent, to try and rebuild a package that has failed when
the change is trivial (such as ignoring a test / try updating a
dependency). (This could be a "crew" of agents checking for
compilability, lints, build failures... with MCP protocoal and each
agent having its specific training data / RAG). (The goal is not to make
the user less responsible but instead waste less time doing what is
trivial.) Think about it : when rebuilding a package that is core to a
build-system, such as python, instead of spending the most part of a
week doing minor tweaks on hundreds packages, just let the background
job run a week until it only leaves "truly" difficult packages for teams
and maintainers. With some luck, since the tasks could be specialized,
we might already have enough data to train internally.

What's really good is that we might be able to only use guix data to
train and use this kind of helpers. Accessing this data in batch,
through the git repository, mailing lists, failed logs from build
farms..., is possible at this date.

Even if that would demand a coordinated effort anyway, I think the move
to codeberg would make this more difficult ; I also think guix's guile
and lists coherence is a strong advantage we don't take enough in
consideration (I don't think Nix would be able to have these kind of
helpers around, whereas it seems doable in Guix).

(This is not against moving to codeberg, but more about being mindful of
what we might loose on this aspect).

--
Best regards,
Nicolas Graves
Ludovic Courtès wrote 6 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Nicolas Graves)(address . ngraves@ngraves.fr)
87msdz5vwv.fsf_-_@gnu.org
Hi Nicolas,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (11 lines)
> have a tremendous amount of data (for git commits, git commit messages,
> email exchanges) that could be used to train specialized AI agents that
> could be very useful in CI / development contexts. A few examples on the
> top of my mind:
> - a commit message help complying with GNU standards
> - a "rebuilder" agent, to try and rebuild a package that has failed when
> the change is trivial (such as ignoring a test / try updating a
> dependency). (This could be a "crew" of agents checking for
> compilability, lints, build failures... with MCP protocoal and each
> agent having its specific training data / RAG).

I’m skeptical to say the least, as I wrote elsewhere regarding

Toggle quote (3 lines)
> Even if that would demand a coordinated effort anyway, I think the move
> to codeberg would make this more difficult ;

Overall, the API that Codeberg and similar services provides makes it
easier to grab data about a project, not more difficult, first and
foremost because there’s one uniform API to access everything: issues,
pull requests, CI/CD reports, repo activity, and much more.

This can be seen in “empirical software studies” such as those submitted
to the Mining Software Repositories (MSR) conference. None of what’s
done in these studies would be possible when dealing with a patchwork of
informally-connected tools like the one we have.

Ludo’.
Ludovic Courtès wrote 5 days ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
871pvb1m62.fsf_-_@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (7 lines)
>> Developing and maintaining this software and infrastructure is
>> time-consuming. Worse, it leaves contributors largely dissatisfied for
>> a variety of reasons:
>
> I don't think maintaining the infrastructure *that would be replaced*
> has been too time consuming.

Let’s not underestimate the development work by Ricardo, Arun, and Chris
over these tools for years (7 years for mumi), but also the everyday
sysadmin work done to keep things running.

Toggle quote (11 lines)
> Sure, Mumi has had some issues and needed some fixing, but most of
> what is used today:
>
> - Savannah (git hosting)
> - Debbugs (bug tracker) & Mumi
> - Git configs/hooks
> - Contributing documentation
>
> rarely ever changes and has been stable, all while being generously
> hosted, without limits on repository size or other criteria, on

I wouldn’t say that Savannah has been stable; debbugs.gnu.org is running
an unpublished, non-version-controlled fork of the original Debbugs
running on a single machine, manually-modified every now and then (I
know because I tried to rectify this back then, and so did Felix I
believe).

I agree that maintenance of these is largely a given for Guix. But
let’s not idealize it: there is a huge technical debt in all this
infrastructure.

Toggle quote (4 lines)
> freedom-respecting hardware and a friendly associated org (FSF/GNU),
> which I assume can't be said of Codeberg (w.r.t. using free software
> friendly hardware, such as using the GNU Boot bootloader).

That may be true, but I wouldn’t blame them given what it costed us to
run one server with a free BIOS¹. Codeberg/Forgejo volunteers are free
software activists though.

¹ Andreas gave a good account of this story in

Toggle quote (5 lines)
> The parts that have required the most maintenance would be, I assume, CI
> (Cuirass) and QA (Guix Build Coordinator), but these components will
> continue to be used in the event we migrate to Codeberg, so we wouldn't
> gain much on the maintenance side, it seems.

Correct. Though, as the GCD states, it would reduce the number of
services and amount of code to maintain (Patchwork, email parsing, etc.)

Toggle quote (15 lines)
> I believe some of the above, such as notifying everyone involved in a
> ticket's discussion when replying, has been/could be tackled in the
> improved GNU Debbugs rewrite that Felix has been refining and testing
> [0, 1]. I think improving Debbugs for the whole of GNU (the Emacs
> project actively use it still for example) would make sense and is
> something I've been meaning to do, but not high in my priority list
> (since it already works well enough for the most part). Hacking a small
> Perl code base doesn't appear much more daunting than the modern
> Go-written, web framework library heavy mastodon I assume
> Gitea/Forgejo is, so I'm not sure why we wouldn't try this first
> instead. I can't help but feel like we'd be throwing the baby out with
> the bathwater: in my view, the current situation is not as bad as
> suggested in your outlook, though I agree further automation and
> simplifications would be welcome.

I held this view for many years, which is part of why we have this
infrastructure; we’re not throwing the baby with the bathwater, we have
a decade of experience. I think this endeavor hasn’t been as fruitful
as we had hoped for and that it’s holding back the project now.

(For the record, Forgejo is known to be lightweight; the code base is
“human-sized” and easy to navigate IME.)

Toggle quote (4 lines)
> My reading of the survey's results was that the main concern of the
> community was packages' freshness and availability. Our backlog is
> already larger than we can handle.

As others noted, better tooling is likely to improve reviewer
throughput. Of course nobody can guarantee any speedup, but there are
hints suggesting that.

I have been using the PR style (initially reluctantly) for Guix-Science,
Guix-HPC, and related repositories; I find it easier to see where my
attention is needed and what the status of patches is.

That’s also the reason I’ve been inviting people to give it a try: I
initially knew very well what I loved about the email workflow and what
I hated about the PR workflow, but only through experience did I
discover good things about the PR workflow.

Toggle quote (3 lines)
> One serious usability quirk I can foresee is that given our current
> PGP-based security design,

The “Merge” button would be disabled, as noted in the GCD.

Toggle quote (3 lines)
> - Issues won't be closed automatically since we can't use the merge
> button.

There’s an “autodetect manual merge” feature; it’s not as “auto” as one
might like but it’s okay.

Toggle quote (3 lines)
> - Both PR and issues must then be closed manually, which is what we
> currently have

Issues are closed automatically upon “Fixes #123” messages in commits.

Please give it a spin; it’s not perfect but it’s much better than what
you suggest. :-)

Toggle quote (9 lines)
> I'd like to suggest extending the 'trial' period to something much
> longer, like a year or so, to make sure our parachute is properly
> installed before jumping the cliff :-). Letting both systems co-exist
> and compete for merit seems a good trial, and we could also extract
> useful data (such as how many contributions were merged on one or the
> other, etc.). It'd be a bit annoying to keep an eye at two places for
> some time, but at least we wouldn't commit to something that may not
> scale/match our peculiar requirements as well as we expected.

As noted in my reply to Arun², I think there’s a risk of splitting the
community if this experiment were too last for several months (Arun
proposed 30-day coexistence period, with eventual migration to Codeberg).

But maybe you can propose wording to amend the GCD?


Toggle quote (6 lines)
> After such trial we could then vote on whether we want to fully migrate
> to Codeberg, when all regular contributors would have gotten a chance to
> try the new tools and find a flow that works for them, hopefully. With
> this insurance in place, I'd be happy to experiment with Codeberg and
> see whether it truly improves things.

The GCD process is about collectively building a proposal; there’s no
voting. I would encourage everyone to propose changes to the proposal
to address their concerns—it’s a living document.

As for experimenting, I agree and I reiterate my invitation to send
trivial patches to https://codeberg.org/civodul/guix (or to
Guix-Science, Guix-Past, etc.). I think this GCD’s discussion period is
the right time to give it a try as it can better inform discussions.

Thanks for your feedback!

Ludo’.
Maxim Cournoyer wrote 5 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87o6yf56je.fsf@gmail.com
Hi,

Ricardo Wurmus <rekado@elephly.net> writes:

[...]

Toggle quote (11 lines)
> The difference is that you don't need to configure "git send-email" or
> configure a local msmtp to send email to guix-devel or other mailing
> lists. For patches sent to guix-patches we recommend configuring "git
> send-email" to avoid garbled patches.
>
> I know from mentoring people that setting up "git send-email" is a
> real
> hurdle, whereas sending simple emails to participate in discussions on
> a
> mailing list is not.

I believe git has good documentation for that, but yes, someone would
need to put this blurb in their ~/.gitconfig file:

Toggle snippet (9 lines)
[sendemail]
smtpEncryption = tls
smtpServer = some-email-server
smtpUser = your-email
smtpPass = your-password
smtpServerPort = 587
assume8bitEncoding = utf-8

Which shouldn't be much more difficult than setting up SSH keys to be
able to push to your Codeberg fork, it seems.

--
Thanks,
Maxim
Arun Isaac wrote 5 days ago
87jz92v686.fsf@systemreboot.net
Toggle quote (13 lines)
> I believe git has good documentation for that, but yes, someone would
> need to put this blurb in their ~/.gitconfig file:
>
> --8<---------------cut here---------------start------------->8---
> [sendemail]
> smtpEncryption = tls
> smtpServer = some-email-server
> smtpUser = your-email
> smtpPass = your-password
> smtpServerPort = 587
> assume8bitEncoding = utf-8
> --8<---------------cut here---------------end--------------->8---

Also, very good instructions are available at https://git-send-email.io/
I don't see why this is particularly hard. But, for some reason, that
seems to be the general perception. Perhaps it is seen as hard simply
because it is not the mainstream way to do things, and we end up having
to expend a lot of effort to compensate for that. One more hurdle, as it
were.
Simon Tournier wrote 5 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
87ldti6y9c.fsf@gmail.com
Hi,

Arun, thanks for this analysis. I concur on many points!

On Tue, 25 Feb 2025 at 14:03, Arun Isaac <arunisaac@systemreboot.net> wrote:

Toggle quote (4 lines)
> In fact, in order to save on disk space, they suggested that we
> encourage our contributors to delete their forks once done. :-D Needless
> to say, that's never going to happen!

Moreover, this raises another concern: Such removal also make the
history harder to access and do not really save disk space, IIUC.

For one example, consider

As you can see, there is no “Commit“ and no “Files changed“. Why?
Because Alexis deleted the PR branch. Therefore, harder to know what
the PR was about; annoyances.

And the history seems still around. For example, we can access to the
first version [1,2] and compare with the second (force-pushed) version
[3].

Therefore, even using AGit workflow, we need to do some
back-to-the-envelope computations and estimate what is the scale of
Guix. Then ask if Codeberg has the capacity to host us.

Somehow, that’s not an unilateral decision, IMHO.



Toggle quote (3 lines)
> [5]: Quick digression: Users must actually download about 1 GiB of data
> on their first guix pull.

Hum, a bit less than 1GiB of data, no?

Toggle snippet (11 lines)
$ git clone https://git.savannah.gnu.org/git/guix.git
Cloning into 'guix'...
remote: Counting objects: 869271, done.
remote: Compressing objects: 100% (173792/173792), done.
remote: Total 869271 (delta 695019), reused 869256 (delta 695009)
Receiving objects: 100% (869271/869271), 486.94 MiB | 441.00 KiB/s, done.
Resolving deltas: 100% (695019/695019), done.

$ du -sh guix
678M guix
Simon Tournier wrote 5 days ago
87jz926y93.fsf@gmail.com
Hi all,

On Wed, 05 Mar 2025 at 10:39, Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (9 lines)
> The difference is that you don't need to configure "git send-email" or
> configure a local msmtp to send email to guix-devel or other mailing
> lists. For patches sent to guix-patches we recommend configuring "git
> send-email" to avoid garbled patches.
>
> I know from mentoring people that setting up "git send-email" is a
> real hurdle, whereas sending simple emails to participate in
> discussions on a mailing list is not.

While I agree with that about the annoyances of “git send-email”, I also
think that forcing reviewers to have a Codeberg account is a real
hurdle.

Maybe I’ll appear “elitist” but if a person is able to prepare a patch,
then configuring “git send-email” isn’t an issue, IMHO.

Somehow, my opinion on this topic is: we should not focus too much on
the Contributor’s point of view – do not take me wrong, for sure I’m all
for being friendly, welcoming and inclusive; that’s not the point.
Instead, we need to focus on Reviewer’s point of view.

Our main issue: too much contributions and not enough reviewers and not
enough mergers. Nothing new and the same with most of all Free Software
projects, to my knowledge. However, we reach a point where we need to
act because merging patches is too much friction; and sadly both sides,
Contributors and Reviewers.

Therefore, for me, what does the forge bring that helps the reviewers?

For now, the only tiny difference I see is about CI. It’s easier to
automatically build a PR than to automatically extract patches for
building them.

The first time I met* Guix community, it was on December 2018 in
Paris. Well, I also remember that Chris spoke about Continuous
Integration, patchwork and what Chris was doing at the time.

Over the time Chris did an incredible piece of work. When we see QA and
all that, that's amazing! And Ricardo’s initiative with Mumi is also
very nice and helpful – and thanks Arun for nice features!

All that to say, this GCD raises this question: Do we want to put more
effort on CI and QA? Somehow, improve and/or make various bridges
between QA, CI and guix-patches? Or do we drop that part?

Cheers,
simon

*first time I met: If I remember correctly, Ricardo you came by
night-bus and you took a chocolate cake. <3
Simon Tournier wrote 4 days ago
Issue tracker (was Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg)
87bjue6ta3.fsf@gmail.com
Hi Ludo,

On Fri, 28 Feb 2025 at 23:33, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (3 lines)
> Examples: I easily lose track of updated patch versions and comments
> because they’re just more unread email in my inbox;

Switch from Gnus to Notmuch. ;-)

Joke aside, I agree that’s annoying…

Toggle quote (4 lines)
> because they’re just more unread email in my inbox; contributors
> sometimes lose track of what they sent, so they open a new issue, and I
> find myself digging for the original submission and review;

…and that’s too. Well, I agree it’s become a mess when the thread’s
broken and another issue is open.

However, weeks or months later, you can still easily give a look to the
submission. That’s not the case with PR: when Contributor deletes its
own branch then it’s more complicated, I guess.


As you see, there’s no Commit or Files Changes because Alexis deleted
the branch – yeah because the PR had been merged! :-) Yeah too that the
PR and history is somewhere but not easily accessible.

Just to point it can also become messy. :-)

Well, I do not have a strong experience on reviewing so I trust your
words when you say Codeberg might help here, eventually.

However, I think I have an experience about dealing with issues. Well,
for what my words are worth, most of what I’ve done are because all the
issues are emails. Somehow, coupling Emacs, Debbugs.el, Notmuch,
piem.el and Org-mode is my way to scale. For sure, I will never do
bug-triage without such tools.

Yes, Codeberg provides a nice API. Yes, it’s up to us to exploit it!
Yes, I’ve started to give a look. :-) But to my knowledge, nothing is
ready.

Therefore, I propose to postpone the discussion about the migration of
the “Issue Tracker”. Currently, it’s not part of our current
limitations, IMHO.

Somehow, I propose to delay the migration of the “Issue Tracker” and
open a GCD once we have 2-3 months of a full experience with the PR
workflow.

WDYT?

Or do I miss a radically awesome feature? :-)

Cheers,
simon
Simon Tournier wrote 4 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
874j066rqq.fsf@gmail.com
Hi Ludo,

On Wed, 26 Feb 2025 at 22:01, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (8 lines)
> I think I was/we were wrong in two ways: first it’s not just about
> providing a web interface, and second there are limitations in our
> workflow that we just cannot overcome, as I tried to explain in the
> “Motivation” section. We tried, very hard, and for a reason: a belief
> (as far as I’m concerned) that we could not only be responsible for our
> infra but also, in a way, that we could show fellow free software
> hackers that an alternative development model was possible.

Have we really tried hard? Not about the maintenance, big thanks for
all guix-sysadmin!

About developing the tools: As a project, I would not say “we tried very
hard”. Chris did, almost alone – thanks Chris for this heroic long-term
commitment effort. And about Cuirass, the last effort had been years
ago, to my knowledge.

As I wrote elsewhere, what are the concrete current features that
Codeberg offers against our limitations?

Our main limitation isn’t about contributing but about reviewing, IMHO.

Therefore how Codeberg is concretely helping? Not what are the
potentialities that Codeberg offers, but what does Codeberg bring on the
table right now compared to our current workflow?

Well, from my understanding, it’s easier to automatically build a PR
than to automatically extract patches and build them. So, Codeberg
helps right now because of CI. Do I miss another feature that helps
reviewing?


Toggle quote (4 lines)
> I agree with Leo and the GCD mentions it as well: we need to talk with
> Codeberg e.V. from the start, possibly becoming a voting member, and to
> offer funding.

Hum, are we not putting the eggs before having the basket? :-)

Somehow, instead of a “Big Move”, it seems more approachable to only
move some teams, for example. Something like an incremental
“improvement”. It would help to have a concrete basis for discussing
how we can help them to have a sustainable solution for the Guix
project.


Toggle quote (4 lines)
> Codeberg e.V. is specialized so I’d like to believe they have a lot of
> headroom. That they’re transparent and upfront about their scalability
> issues is a rather good sign to me.

What if tomorrow Codeberg closes for whatever the reasons? Obviously,
we will find another solution. :-)

However, what about all the history hosted there? Yes, there is a nice
API and everything is doable. :-) To my knowledge, nothing is done for
having a backup of all the history.

About Debbugs, we have one public-inbox at least. Maybe archived [1] in
Software Heritage since public-inbox is Git-based. ;-)

Toggle quote (4 lines)
> Assuming we agree that a move along the lines of this proposal is
> desirable (let me know if you think we don’t share that premise), what
> other options would you think of?

I do not know if I share the premise… Well, for sure, as discussed with
a beer \o/ in Guix Days, I agree that we need to act now because the
current situation raises too much friction and that will be detrimental
for the project in the “short” term.

What I’m not sure about is the path for moving. Somehow, I find it too
much in a hurry. For instance, the GCD reads,

Within **30 days** following acceptance of this GCD, committers would
migrate all these repositories to https://codeberg.org/guix.

For Guix itself, we would decide on a **flag day** 14 days after
acceptance of this GCD at the earliest, and 30 days at the latest. On
that day, the official URL of the Guix repository would become

when we have not yet discussed hard numbers with Codeberg. Or when we
do not have discussed on Guix Foundation side what could be done for
supporting them.

Similarly, why do we need to move in the same time the Issue Tracker?

Somehow, I would prefer a more incremental move. Because it would help
to improve step after step. Maybe using 2 or 3 steps over the whole
2025 year.

Cheers,
simon


1: The first patch sent to guix-patches, SWH still ingesting when
writing this. :-) So maybe here…

Simon Tournier wrote 4 days ago
875xkm6rsi.fsf@gmail.com
Hi,

On Tue, 04 Mar 2025 at 18:26, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (14 lines)
>> I do want to. But I didn't because I didn't want to overload your
>> personal repo with too many pull requests. Perhaps we can have a pilot
>> period (say 30 days) when both mumi/debbugs patches and codeberg pull
>> requests would be accepted methods to contribute. This may help put
>> people's minds at ease about the transition, and give them some time to
>> adapt their contribution/review worklows.
>
> Yes, having a period where both methods are accepted sounds doable.
>
> The risk is that some things would go unnoticed on one side or the
> other, and during that period we’d be effectively splitting the
> community between “those who prefer email” and “those who prefer
> Codeberg”, but if it’s limited to 30 days max, that’s probably OK.

Well, I think it’s doable to exploit Codeberg API [1]. Maybe an
implementation on Mumi side.

Somehow, it’s doable to have a tool that collects all PR submissions and
opens an issue on Debbugs side. This issue would contain the PR message
and the link to the PR and would have a special subject. For example,
one PR from Guix-Science [2] looks like:

PR#87 WIP: update ghdl to 5.0.1, and add ghdl-lsp.

Please review this submission at:


This pr updates ghdl to its most up to date release, and renames
ghdl-clang to ghdl-llvm for consistency with upstream
artifacts. It also fixes the two other packages affected by this
renaming.

Then, it adds a new package, ghdl-lsp, including the language
server capabilities of ghdl (in addition to synthesis and
compiler, that we already have). Updating of python-pyvhdlmodel
and python-pytooling (see 76709) is necessary, so I set this pr
to WIP.

Then, we could list all open issues with the subject “PR#“ and query
Codeberg via the API to have the still open PRs. For the closed PR
ones, Mumi just sends a ’done’ control message to Debbugs.

That way, things would not go unnoticed. And you are raising, hey the
submissions to guix-pacthes will be unnoticed by people looking only to
Codeberg. Yes, but! 1. The aim is to move so to encourage people to go
via Codeberg. If the submission is merged faster when open on Codeberg,
then we’ll see the natural migration. ;-)

2. In that cases, etc/teams.scm will still CC teams people so it’s a
mitigation.

This way, it would avoid “The Big Move” and would allow something more
incremental. For example, I would prefer to have a spread team-basis
migration instead of some quick all-or-nothing migration.

Cheers,
simon


PS: Obviously, I volunteer to contribute in the implementation of such
bridging tools. :-)
Simon Tournier wrote 4 days ago
git request-pull (was Re: [bug#76503] [GCD])
871pva6qn4.fsf@gmail.com
Hi,

On Sun, 02 Mar 2025 at 18:07, runciter--- via Guix-patches via <guix-patches@gnu.org> wrote:

Toggle quote (4 lines)
> Git has a 'request-pull' sub-command:
>
> git request-pull [-p] <start> <URL> [<end>]

Do you mean send to guix-patches the output of this command?

If yes, it would still require that the emails is well-formed. Then, it
would also require to adapt current extractors in order to get the
repository.

Such submission would create a temporary branch somewhere, because the
Contributor who submitted the request-pull could delete their own branch
and/or repository and/or the repository could be down. Therefore, it
would also require to adapt current tooling in order to delete the
branch once the submission is merged (Debbugs issue closed, roughly).

In addition, it would require to adapt again when it’s the second, third
or more revision of the submission.

Last, it would not be possible – to my knowledge – to comment on a patch
basis but you could only have one unique diff of the whole series.

This latter point appears to be a blocker for an alternative.


Cheers,
simon
Simon Tournier wrote 4 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
87r03a5a8j.fsf@gmail.com
Hi,

I agree with most of Maxim’s message. I add two points.

On Tue, 04 Mar 2025 at 20:22, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:

Toggle quote (10 lines)
> I see the argument that there's an HTTP API for Forgejo; that's great,
> but it requires that everyone relearn another way of doing something
> that already works well enough for me and others, which I'm not too
> excited about. I also assume the Forgejo-related tooling, given their
> young age, would not be as mature and missing features in places, and
> that it would require invested time to comfortably do all that can be
> done today in Gnus and Emacs Debbugs, away from the web interface, in
> the environment of choice (Emacs) of perhaps a majority of the Guix
> contributors.

a) Today, it’s not possible to work offline or by batch. To my
knowledge, there is no tool; at least nothing compatible with
Emacs.

b) Today, it’s not possible to comment on patches without the
web-interface, to my knowledge; least nothing compatible with
Emacs.


( Aside, through my own glasses, it would be a blocker. But I’ve myopia
and I know all people do not have the same lenses. ;-) I mean, I agree
that our workflow reach some limitations and that we need to act now
for helping the review/merge workload. Well, I’m adjusting my
glasses. :-) )


Toggle quote (13 lines)
>> Within **30 days** following acceptance of this GCD, committers would
>> migrate all these repositories to https://codeberg.org/guix.
>>
>> For Guix itself, we would decide on a **flag day** 14 days after
>> acceptance of this GCD at the earliest, and 30 days at the latest. On
>> that day, the official URL of the Guix repository would become
>> https://codeberg.org/guix/guix.git. A commit would reflect that by
>> updating:
>
> I'd like to suggest extending the 'trial' period to something much
> longer, like a year or so, to make sure our parachute is properly
> installed before jumping the cliff :-).

I agree. I propose 1. To design the move of the basis of teams in order
to be a bit more incremental [1]. And 2. To help in implementing a
simple one-way bridge [2]: report the open PR inside Debbugs.

Cheers,
simon

1: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Simon Tournier <zimon.toutoune@gmail.com>
Thu, 06 Mar 2025 17:36:29 +0100
id:874j066rqq.fsf@gmail.com

2: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Simon Tournier <zimon.toutoune@gmail.com>
Thu, 06 Mar 2025 17:35:25 +0100
id:875xkm6rsi.fsf@gmail.com
Ricardo Wurmus wrote 4 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
874j062ads.fsf@elephly.net
Hi Simon,

Toggle quote (8 lines)
> Somehow, my opinion on this topic is: we should not focus too
> much on
> the Contributor’s point of view – do not take me wrong, for sure
> I’m all
> for being friendly, welcoming and inclusive; that’s not the
> point.
> Instead, we need to focus on Reviewer’s point of view.

I agree, you are right about this.

I must admit that while I'm in favor of this GCD I'm not familiar
with
the PR workflow *at the scale of Guix*.

We will need tools in support of a reviewer's workflow. I tend to
easily get lost, whether that's on issues.guix.gnu.org and mailing
list
discussions, or on forges with many issues. In the documentation
of API
endpoints for codeberg.org I have not seen anything that roughly
equates
to "needs my attention".

It seems that on Codeberg the primary means of keeping track of
things
is through notifications. I fear I might still end up dropping
the ball
when a PR requires my attention if it gets buried in countless
notifications -- especially if I have to keep them unread to ever
have a
chance of finding them again. Obviously, a fix here would be to
adjust
my behaviour and not let notifications pile up, but this has no
chance
of ever happening. (In completely unrelated news: I've got 17532
unread
Guix emails.)

--
Ricardo
Arun Isaac wrote 4 days ago
877c51vind.fsf@systemreboot.net
Hi Simon,

Toggle quote (7 lines)
> For one example, consider
> <https://codeberg.org/guix-science/guix-science/pulls/63>.
>
> As you can see, there is no “Commit“ and no “Files changed“. Why?
> Because Alexis deleted the PR branch. Therefore, harder to know what
> the PR was about; annoyances.

Thanks for raising this. This is a very important point. Losing history
like this seems very bad. Ideally, we want to have an archive of every
conversation and contribution that went into the project. Emails provide
this. If Codeberg does not, we should rethink our move.

I would also be in favour of postponing this GCD so that the
guix-science channel team can gain more experience with Codeberg and the
PR workflow. Quirks and annoyances like the above can only be found with
more time. guix-science moved to Codeberg only in January, IIUC. It's a
bit too soon to move the rest of Guix. Postponing the migration will
also give us more time to develop automation around Codeberg and see how
well that works out.

Toggle quote (5 lines)
>> [5]: Quick digression: Users must actually download about 1 GiB of data
>> on their first guix pull.
>
> Hum, a bit less than 1GiB of data, no?

Yes, indeed, I said "about" 1 GiB. I was providing approximate
human-readable numbers. :-)

Regards,
Arun
Divya Ranjan wrote 4 days ago
(name . Ekaitz Zarraga)(address . ekaitz@elenq.tech)
87cyeted0w.fsf@subvertising.org
Hello Guix devs,

I concur with Ekaitz’s observation:

Toggle quote (6 lines)
> We would be pushing that complexity only to committers, not to
> ocasional contributors, which may help attracting people. But, on the
> other hand, we would force people who is already very busy (and very
> efficient with their current workflow) to discard their way to do
> things and learn another.

Almost all large-scale FOSS projects have fouond this time and time again, even something like Linux kernel, that occasional contributors are large in number but are not reliably persistent in continuing their contributions. Of course we should make it easier for more and more people to contribute and work with us, but we should be wary of what that might cost the existing state of contributions, the bulk of which are done by regular committers over more than a decade, and how that might be affected.

Similarly, I also agree with Maxime’s concern:

Toggle quote (15 lines)
> The complexity of the flow can be partly explained by the fact that there
> isn't only one flow possible, but a multitude of flows (Emacs Debbugs,
> Mumi, git send-email, etc.), which is more of a strength than a defect
> when it comes to the freedom of choice/flexibility for our contributors.
>
> I see the argument that there's an HTTP API for Forgejo; that's great,
> but it requires that everyone relearn another way of doing something
> that already works well enough for me and others, which I'm not too
> excited about. I also assume the Forgejo-related tooling, given their
> young age, would not be as mature and missing features in places, and
> that it would require invested time to comfortably do all that can be
> done today in Gnus and Emacs Debbugs, away from the web interface, in
> the environment of choice (Emacs) of perhaps a majority of the Guix
> contributors.

We might be prone to underestimate not only the effort that we’ve already put into in continuing what exists, but also a bit too haste in judging it as dysfunctional. As has been said elsewhere by Suhail and others, the Codeberg migration is no panacea. That said, we of course need to admit that our existing workflow has a lot of cruft and problems. But as I’ve said before, both with regards to the Codeberg migration and the GNU affiliation, a more reflective and integrative approach is better than something that leaves a lot of things hanging.

Maxime is accurate in being wary of a quick migration:

Toggle quote (15 lines)
> I'd like to suggest extending the 'trial' period to something much
> longer, like a year or so, to make sure our parachute is properly
> installed before jumping the cliff :-). Letting both systems co-exist
> and compete for merit seems a good trial, and we could also extract
> useful data (such as how many contributions were merged on one or the
> other, etc.). It'd be a bit annoying to keep an eye at two places for
> some time, but at least we wouldn't commit to something that may not
> scale/match our peculiar requirements as well as we expected.
>
> After such trial we could then vote on whether we want to fully migrate
> to Codeberg, when all regular contributors would have gotten a chance to
> try the new tools and find a flow that works for them, hopefully. With
> this insurance in place, I'd be happy to experiment with Codeberg and
> see whether it truly improves things.

We have a *humongous* backlog of patches, and the committers are probably more aware of this than me, of course, but I couldn’t find satisfactory proposals to resolve that in the GCD. Even if we were to move to Codeberg within the next week, what we already have will take at least a year, assuming a good chunk of the committers put a lot of work in reviewing the backlog *while* also handling the new PRs that are being issued from Codeberg. And since our whole point was to make it "easier" for new contributors, there’s a good probability that indeed initially there’ll be a surge of people trying to contribute PRs. That is *good*, but are we ready to handle it alongside the older patches?

Here is a proposal which might be considered in keeping an integrative system:

Assuming we *should* move to Codeberg, we recognize the fact that such a move primarily solves one problem *fully* without any reservations: letting a larger scale population of Guix users to have an easier pathway towards contribution. While some of us, including me, can consider it a misfortune that this is indeed the way people are conditioned, it’s beyond our scope to solve it.

That said, we also have a smaller set of people, i.e. committers, who are proficient in a workflow that has several perks to it, and arguably better than the previous one, but it is not common among newcomers.

To achieve our goal of helping newcomers, we keep a regularly updated mirror of Guix on Codeberg with issues and PR features enabled. Whoever wishes to contribute, can create an issue, or fork and make a pull-request directly on Codeberg with their desired workflow (which arguably is largely the web approach). Here we have a committer or two to handle the Codeberg repository, label issues, and organize things, but *not* for reviewing patches.

Instead, we host a backend service that regularly checks the Codeberg repository for any new issues or PRs and then communicates to us through the Codeberg’s Forgejo API [0] the content of said issues and PRs. The data received from the API then gets directed to our Debbugs or Mumi backend, which parses the information from it and opens a new Debbugs issue for it. Thus, for every issue opened on Codeberg, we have a mirrored Debbugs issue, and same for PRs where the diff can be then parsed into a valid patch.

To be noted that such mirroring is strictly one-directional initially, every issue opened previously or opened later shouldn’t get mirrored into the Codeberg repository. If we assume that only committers are the people fluent and wanting of email-based workflow, the new Debbugs issue would only be created by them, while we encourage newcomers to always report through Codeberg’s issue tracker.

Since Codeberg already allows to communicate in issues over email, i.e. you can respond to someone in a particular issue over email, this shouldn’t be too difficult to arrange.

Newcomer opens issue #xxyz -> Debbugs/Mumi mirror it and create xxyz@debbugs.gnu.org -> Interested committer responds to it over his desired email workflow -> It reaches the newcomer without him having to open email.

I argue the same workflow can be replicated for pull-requests as well, without the need for any "merge button". We remind ourselves that the need for a PR/GitHub/Web workflow is to cater newcomers, who have nothing to do with merge issues but everything to do with forking and contributing changes. Ergo, the only part of the PR workflow we need is it’s creation, not the entire package of fork->pull->merge->commit. The latter two are to be under the responsibility of committers, who will not have to change any part of their workflow. As described above, they’ll get the PRs rendered to them as good ol’ git patches, over mail and they can apply them, work on merge issues and get back to the newcomer contributor over email. The only additional part in the case of PRs would be the need to replicate the patches also across guix-patches mailing list.

I know this requires some setting up, but we need such time and effort in any case if we decide to migrate and not fall into the issues Ekaitz and Maxime pointed out. With the help of Codeberg people for their API, and the knowledgeable people on Debbugs such as Felix, Arun, Ricardo et.al, this might be a feasible task. I am also willing to contribute in whatever way and means possible, since I’m slowly working myself towards contributing more and more to Guix. And even though I’m not a committer, I retain the email-based workflow through Gnus and debbugs.el. So, it will help me as well.

Let me know what you think.


Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Carlo Zancanaro wrote 4 days ago
(name . Divya Ranjan)(address . divya@subvertising.org)
87ldths9x7.fsf@zancanaro.id.au
Hi Divya,

On Fri, Mar 07 2025, Divya Ranjan via Guix-patches via wrote:
Toggle quote (2 lines)
> To achieve our goal of helping newcomers, [...]

I don't think this is a fair summary of the goal. The first sentence of
the GCD[1] is:

The contribution workflow in Guix has been facing several challenges:
difficult onboarding, lack of legibility, complex, unreliable, and
labor-intensive infrastructure, and lack of automation.

Of these, only "difficult onboarding" is about newcomers. Your proposal
(which I might describe as "proxy Codeberg into debbugs") involves
building new infrastructure without helping the other issues.

Toggle quote (4 lines)
> Since Codeberg already allows to communicate in issues over email,
> i.e. you can respond to someone in a particular issue over email, this
> shouldn’t be too difficult to arrange.

This is not true today. While Forgejo supports replying via email,
Codeberg does not have that enabled due to bugs. They have an issue

Even if it was true, the big disconnect here would be around commenting
on specific lines of code. An email with a comment on a patch would come
through as a top-level comment on the PR, which is not natural in that
context.

Carlo
45mg wrote 4 days ago
87h645mn47.fsf@gmail.com
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (14 lines)
> Hi Simon,
>
>> For one example, consider
>> <https://codeberg.org/guix-science/guix-science/pulls/63>.
>>
>> As you can see, there is no “Commit“ and no “Files changed“. Why?
>> Because Alexis deleted the PR branch. Therefore, harder to know what
>> the PR was about; annoyances.
>
> Thanks for raising this. This is a very important point. Losing history
> like this seems very bad. Ideally, we want to have an archive of every
> conversation and contribution that went into the project. Emails provide
> this. If Codeberg does not, we should rethink our move.

If you read through the Conversation section, you can see a message for
every time commits were added to the branch or it was force-pushed. If
you click on the commit hashes or subjects in these messages, it takes
you to a description of the commit, featuring a diff and files changed.
In this way you can see every iteration of the PR, just like we have
every patch revision in our mailing-list archives.

One thing I particularly like is that the final message (well, the one
before 'deleted branch *typst*') shows you the commit that was finally
merged. On the mailing lists, many of the issues are closed with a
message like 'applied with minor tweaks, thanks', and not all committers
will note the commit hash - so you're left grepping for the patch
subject line in `git log` if you want to know what tweaks were made.
Codeberg automatically notes the hash, and you can see the final
iteration just by clicking on it!
Divya Ranjan wrote 4 days ago
(name . Carlo Zancanaro)(address . carlo@zancanaro.id.au)
878qphe53i.fsf@subvertising.org
Hello Carlo,

Toggle quote (11 lines)
> I don't think this is a fair summary of the goal. The first sentence of
> the GCD[1] is:
>
> The contribution workflow in Guix has been facing several challenges:
> difficult onboarding, lack of legibility, complex, unreliable, and
> labor-intensive infrastructure, and lack of automation.
>
> Of these, only "difficult onboarding" is about newcomers. Your proposal
> (which I might describe as "proxy Codeberg into debbugs") involves
> building new infrastructure without helping the other issues.

You are correct, Carlo, the GCD does have multiple goals. But in my email I also elaborated how the onboarding issue is a high-priority task, reflective from the last survey and also something that can be achieved without risking too much. I believe we are at a probabilistic trade-off decision here, do we wish to achieve all the goals, including a complete change of infrastructure, workflow etc. in the proposed timeline of 15 days or so, and thus incurring a lot of problems that a team of committers would’ve to put a lot of effort into resolving? Or, do we wish to slowly achieve some of the goals, take those goals as a litmus test for the overall proposal and proceed gradually? I believe latter would be a safer bet, with less to risk immediately and opportunity to fix mistakes from feedback.

So, yes, my proposal cannot resolve all the goals, but I am trying to find a way to integrate what we have with what we might switch to. I might be at fault here, and feel free to elaborate on that, such as how can we approach the proposed quick migration to Codeberg while having a huge backlog of patches?

Toggle quote (8 lines)
>> Since Codeberg already allows to communicate in issues over email,
>> i.e. you can respond to someone in a particular issue over email, this
>> shouldn’t be too difficult to arrange.
>
> This is not true today. While Forgejo supports replying via email,
> Codeberg does not have that enabled due to bugs. They have an issue
> tracking it: https://codeberg.org/Codeberg/Community/issues/1562

Thank you for this. I had tried it on a Forgejo repository, not a Codeberg one, so I believed the same could be possible here as well. From the discussions I see, if we spend enough time with them--which we need to do either ways--for the migration, they might get it working? Does not look far from possible to me.

Toggle quote (5 lines)
> Even if it was true, the big disconnect here would be around commenting
> on specific lines of code. An email with a comment on a patch would come
> through as a top-level comment on the PR, which is not natural in that
> context.

Also thank you for bringing this issue, indeed this is a crucial functionality. But to be clear, this is specifically for a pull-request. The issues functionality is totally doable out of the box with Forgejo, we just need to make it work with Codeberg and polish it. With regards to the PR, one has to remember that the entire process needs to be wrapped around Forgejo’s API, not as our used to method of plain text. We’d be parsing JSON to-and-fro. For "reviewing a Pull Request" in Codeberg methodology, Forgejo provides a =/repos/{owner}/{repo}/pulls/{index}/reviews= API[0] to initiate a review. This API will take the comments from the patch in the Email, place them in the "body" string of the JSON, and the respective positions from the diff, the commit_id and so on. I agree it is non-trivial, but so is switching a workflow that has been in-place for years, also a non-trivial task. I think the API has enough things for what we need. And again, we don’t need all of them, we only require implementing those for now that bridge existing email workflow and the newcomers’ onboarding. Merging, for example, I propose to be done in the usual way of taking a patch and applying it. Eventually once we have less of a backlog, and more ease of migration, one might consider moving these core tasks to the Codeberg as well.

Either ways, we are at the crossroads and we need to decide which trade-off is worth the pain. I believe it is *not* certain that once we entirely migrate to Codeberg, the goals of "complexity" and "lack of legibility" would be immediately reaped. It creates a possibility of enjoying them, but given the assumption that the switch from existing architecture is smooth. And, once again, if we were a relatively smaller project such as the Guix-Science, this could’ve been a decision much simpler and with less at stake, but that is not the case. But I think it *is* certain that if we take an approach that doesn’t directly replace one workflow with another, but bridges the new one with the previous one, the committers will have a better way to switch. Simply because they can try to finish the backlog using the existing workflow, and the new patches can come to them with that as well. Where we go from there, can be decided upon how good the litmus test goes.


Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Ricardo Wurmus wrote 4 days ago
(name . Divya Ranjan)(address . divya@subvertising.org)
87wmd1yz4j.fsf@elephly.net
Divya Ranjan <divya@subvertising.org> writes:

Toggle quote (15 lines)
> We have a *humongous* backlog of patches, [...]

> [...] we host a backend service that regularly checks the
> Codeberg
> repository for any new issues or PRs and then communicates to us
> through the Codeberg’s Forgejo API [0] the content of said
> issues and
> PRs. The data received from the API then gets directed to our
> Debbugs
> or Mumi backend, which parses the information from it and opens
> a new
> Debbugs issue for it. Thus, for every issue opened on Codeberg,
> we
> have a mirrored Debbugs issue [...]

So at the end we'd have an even larger backlog of patches, and
spread
across two systems...? And where do we source the time and
motivation
to hack on yet another piece of software? Outside contributions
to mumi
have been *very* few in all these years; that's not for a lack of
problems we've had with the system, and for once it's not for a
lack of
review either.

As a long time contributor with commit access I have the
impression that
people new to Guix hold the assumption that the current system and
workflow works for long time contributors. I may just be wildly
incompetent, but for me it most assuredly does not work in
enabling
reviews. I mostly review patches that were sent to me directly or
that
happen to solve a problem I'm trying to solve as part of my
maintainance
work.

The haphazard GNU fork of Debbugs also lacks a number of features,
has
odd unaddressed bugs, lacks people who even understand in what
ways it
differs from the Debian version, lacks people working on improving
it
and addressing these issues. (There is literally *one* person who
keeps
the lights on.)

It does not even do simple things like delivering notifications to
*everyone* who participates in an issue discussion. This is the
reason
for the sudden eery silence that can be seen in many issues.

I honestly have my doubts that the move to Codeberg would
automatically
solve all of my workflow issues, but let's please not eulogize the
email-based workflow too much. It makes sense to me to base our
efforts
on a system that is *actively* developed by a *team* of aligned
free
software hackers.

I don't see an active future for the GNU fork of Debbugs, and I
think it
is not a good use of our time to work on a system that won't
improve
unless we burden ourselves with even more work (like taking over
hosting
and administration). I'd rather work on Guix.

--
Ricardo
Andreas Enge wrote 4 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
Z8rJyIIUR84pWdLS@jurong
Hello,

I also agree that we should either not switch, or switch with a short
period of overlap. It does not make sense to spread our limited time to
work on two systems at the same time. And it definitely does not make
sense to spend additional development work (by whom?) to create a bridge
between the two.

Am Fri, Mar 07, 2025 at 10:21:48AM +0100 schrieb Ricardo Wurmus:
Toggle quote (4 lines)
> It does not even do simple things like delivering notifications to
> *everyone* who participates in an issue discussion. This is the reason
> for the sudden eery silence that can be seen in many issues.

And it is something I learnt just recently after more than ten years of
contributing to Guix! If I understood correctly, it does not even alert
the original submitter. Probably I have closed a few issues because the
submitter had not read my comments or request for more information and
I had deduced that they were no longer interested. This alone would be a
reason for me to switch to a different system. We claim that our workflow
is "email based", but in fact it is not: To be informed about issues I
have contributed to, I need to keep each and every one in a bookmark and
visit it with my web browser regularly. At least in the forges I have seen
so far, I get an (often cryptic) email message when something happens
that entices me to connect to the web.

Anyway, I usually look at QA and the issues on the web when I have time
for a little committer work. The situation in which email works is when
I get an automatic copy for a patch touching one of my teams (and this
is very useful).

The overly graphic nature of these web forges makes them somewhat
confusing. For instance, it took me a little while to understand where
the trivial little patch was for an issue on Ludovic's test instance,
until I realised I needed to click once more. issues.guix.gnu.org is
much more focussed and less cluttered.

On the other hand, as soon as there is a patch series on issues, it also
becomes more or less unreadable; after 5 versions of a 6-patch series,
it becomes difficult to find the start of the current version and all
comments in between.

Andreas
Simon Tournier wrote 4 days ago
CAJ3okZ3YW775JKcs6kzJbaS6NHaW67W5igc4O7S51dNiw71kdg@mail.gmail.com
Re,

On Thu, 6 Mar 2025 at 17:36, Simon Tournier <zimon.toutoune@gmail.com>
wrote:

Toggle quote (4 lines)
> 1: The first patch sent to guix-patches, SWH still ingesting when
> writing this. :-) So maybe here…
>
>

Modulo the typo 's/;/:/' :-) The first patch sent to guix-patches is
archived in Software Heritage, FWIW.


Cheers,
simon
Attachment: file
Suhail Singh wrote 4 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ludovic Courtès)(address . ludo@gnu.org)
87o6yc9a5f.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (5 lines)
> As for experimenting, I agree and I reiterate my invitation to send
> trivial patches to <https://codeberg.org/civodul/guix> (or to
> Guix-Science, Guix-Past, etc.). I think this GCD’s discussion period is
> the right time to give it a try as it can better inform discussions.

Based on Andreas's observations in [1]:

#+begin_quote
On the other hand, as soon as there is a patch series on issues, it also
becomes more or less unreadable; after 5 versions of a 6-patch series,
it becomes difficult to find the start of the current version and all
comments in between.
#+end_quote

It seems if we are basing our experimentations on only "trivial patches"
that are sent to https://codeberg.org/civodul/guix, we may not be
observing the instances where a forge-style review process actually
struggles; our conclusions may be flawed.


--
Suhail
Ricardo Wurmus wrote 4 days ago
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
87frjozwbn.fsf@elephly.net
Suhail Singh <suhailsingh247@gmail.com> writes:

Toggle quote (31 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> As for experimenting, I agree and I reiterate my invitation to
>> send
>> trivial patches to <https://codeberg.org/civodul/guix> (or to
>> Guix-Science, Guix-Past, etc.). I think this GCD’s discussion
>> period is
>> the right time to give it a try as it can better inform
>> discussions.
>
> Based on Andreas's observations in [1]:
>
> #+caption: <https://yhetil.org/guix/Z8rJyIIUR84pWdLS@jurong/>
> #+begin_quote
> On the other hand, as soon as there is a patch series on
> issues, it also
> becomes more or less unreadable; after 5 versions of a 6-patch
> series,
> it becomes difficult to find the start of the current version
> and all
> comments in between.
> #+end_quote
>
> It seems if we are basing our experimentations on only "trivial
> patches"
> that are sent to <https://codeberg.org/civodul/guix>, we may not
> be
> observing the instances where a forge-style review process
> actually
> struggles; our conclusions may be flawed.

We have had non-trivial patches with a number of revisions on the
guix-science channel.

Examples:


--
Ricardo
Felix Lechner wrote 3 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87seno25k0.fsf@lease-up.com
Hi Ricardo,

On Fri, Mar 07 2025, Ricardo Wurmus wrote:

Toggle quote (2 lines)
> I'd rather work on Guix.

Then why is there a backlog of bugs?

I only see a group of software developers unable to close more bugs than
are being opened.

It's not because of technical limitations, but because the committers
are overwhelmed by the overall bug volume, are afraid to trigger
rebuilds or make other big changes, and are generally overworked
volunteers who also want to do other things in their lives.

Toggle quote (2 lines)
> I don't see an active future for the GNU fork of Debbugs

There could be. I mated Debbugs with Public Inbox.

My system scans Debbugs for changes [1] but does not yet maintain
inboxes by bug number. The information is available via the NNTP news
protocol, for example with the Gnus configuration below. People could
subscribe to bugs via a news reader and reduce their mail load.

Toggle quote (3 lines)
> [Debbugs] does not even do simple things like delivering notifications
> to *everyone* who participates in an issue discussion.

Debbugs does not copy folks automatically because many do not want it.
In Debian, submitters are often non-technical people. They do not care
about how a problem is solved, only when it is. Debbugs does that.

Kind regards
Felix


* * *

(setq gnus-select-method
'(nnimap "patchwise.org"
(nnimap-authenticator anonymous)
(nnimap-port "imap")
(nnimap-stream network)))
Andreas Enge wrote 3 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
Z8sY1mUseNtbQmh7@jurong
Hello,

Am Fri, Mar 07, 2025 at 09:40:28AM -0500 schrieb Suhail Singh:
Toggle quote (6 lines)
> Based on Andreas's observations in [1]:
> It seems if we are basing our experimentations on only "trivial patches"
> that are sent to <https://codeberg.org/civodul/guix>, we may not be
> observing the instances where a forge-style review process actually
> struggles; our conclusions may be flawed.

my observation was rather the inverse: our current debbugs approch
struggles for patch series. For the submitters, this starts with a
series of size 2 (whenever I have one of these, I look up the Guix
manual on the web and follow the process described there; yet another
example where what I do is actually web based). For reviewers and
committers, series with a few commits are still okay.

Which says nothing about the experience on a forge, logically.

Andreas
Ricardo Wurmus wrote 3 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Felix Lechner)(address . felix.lechner@lease-up.com)
87a59wzudr.fsf@elephly.net
Felix,

Toggle quote (6 lines)
> On Fri, Mar 07 2025, Ricardo Wurmus wrote:
>
>> I'd rather work on Guix.
>
> Then why is there a backlog of bugs?

This is such an odd thing to ask, I cannot convince myself that
it's a
serious question asked in good faith. Surely you are not
suggesting
that my desire to work on Guix rather than doing sysadmin work or
hacking on infrastructure (which I *have* in fact been doing for
years
in service of the Guix project, even if you might be unaware of
it)
would be sufficient in reducing the backlog of bugs?

Toggle quote (6 lines)
> I only see a group of software developers unable to close more
> bugs than
> are being opened.
>
> It's not because of technical limitations [...]

I don't know how you can make this claim with confidence. You
are, of
course, welcome to reject my experience here, but (like your
question
above) that's a really odd way of conducting yourself in a
discussion.

--
Ricardo
Suhail Singh wrote 3 days ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Andreas Enge)(address . andreas@enge.fr)
87wmd0okow.fsf@gmail.com
Andreas Enge <andreas@enge.fr> writes:

Toggle quote (3 lines)
> my observation was rather the inverse: our current debbugs approch
> struggles for patch series.

Ah, my bad. I mistook "issues" to mean issues on a forge as opposed to
a debbugs issue. Thank you for correcting.

Toggle quote (2 lines)
> Which says nothing about the experience on a forge, logically.

True.

--
Suhail
Suhail Singh wrote 3 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87senookkp.fsf@gmail.com
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (8 lines)
> We have had non-trivial patches with a number of revisions on the
> guix-science channel.
>
> Examples:
>
> https://codeberg.org/guix-science/guix-science/pulls/59
> https://codeberg.org/guix-science/guix-science/pulls/75

Thank you for sharing!

--
Suhail
Felix Lechner wrote 3 days ago
Re: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87msdw22qh.fsf@lease-up.com
Hi Ricardo,

On Fri, Mar 07 2025, Ricardo Wurmus wrote:

Toggle quote (3 lines)
> Surely you are not suggesting that my desire to work on Guix [...]
> would be sufficient in reducing the backlog of bugs?

The remainder of my message made that clear but you were offended and
hit reply too fast.

My observation was about the group. I suggested as a hook for my
argument that your desire to contribute, which you have done more than
most, was not sufficient to reduce the backlog of bugs.

Isn't that how you and many other committers feel as well?

Kind regards
Felix

P.S. Questioning my good faith or my conduct was below the belt.
Simon Tournier wrote 4 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87tt853p28.fsf@gmail.com
Hi Ricardo,

On Thu, 06 Mar 2025 at 21:05, Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (9 lines)
> It seems that on Codeberg the primary means of keeping track of things
> is through notifications. I fear I might still end up dropping the
> ball when a PR requires my attention if it gets buried in countless
> notifications -- especially if I have to keep them unread to ever have
> a chance of finding them again. Obviously, a fix here would be to
> adjust my behaviour and not let notifications pile up, but this has no
> chance of ever happening. (In completely unrelated news: I've got
> 17532 unread Guix emails.)

Yes, I agree. IMHO, it would be a mistake to think that Codeberg would
ease how to deal with all the submissions. Even, because there is no
simple tools at hand – as Maxim said in [1] – the current interface
makes the process harder, from my point of view.

For example, Leo wrote [2]:

For me, the big problem with email is that resolved tickets don't get
removed from my inbox. Currently, my guix-patches inbox has 7000
messages. And 520 for bug-guix. Since April 2024.

and yeah that’s an issue! Well, maybe I’ve missed the obvious but my
Notifications are not removed when the PR is merged.

Somehow, the way Codeberg Notifications is currently implemented does
the same way as “my inbox”, IIUC, except that instead of being able to
manipulate these tickets with the comfort on a good email reader, now we
need API queries or live in the browser.

To say it explicitly, only at the scale of guix-science, I was spending
boring time only to manage with these Notifications already processed,
so the fix of my annoyance: fully turn off the Notifications – too old
to be bored again and again and not enough free time to scratch my itch.

Result: the exact same situation as with Debbugs.el – but a bit worse
because fj.el provides less capabilities compared to Debbugs.el and
Notmuch.

To me, moving from “patch by email” to PR is a good thing, potentially.
However, I am not aligned with the proposed “Migration Path”.

Somehow, we need something more gradual. For instance, 2 or 3 steps with
concrete and detailed milestones; targeting the end of “patch by email”
something as next December.

Why? Because we need to learn more where the friction could be, what is
really lacking, what makes too much hurdle, etc. And adapt accordingly.

All that to say, I am not convinced that completely jumping to something
fully new for most of us is a good approach; especially when the same us
already know the pitfalls of our tools or behaviour.


Cheers,
simon

1: Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
Maxim Cournoyer <maxim.cournoyer@gmail.com>
Tue, 04 Mar 2025 20:22:59 +0900
id:8734ftdoq4.fsf@gmail.com

2: Re: [GCD] Migrating repositories, issues, and patches to Codeberg
Leo Famulari <leo@famulari.name>
Thu, 06 Feb 2025 14:39:26 -0500
id:Z6UP7nNeJlrnkA4U@jasmine.lan
Simon Tournier wrote 4 days ago
87plis52kr.fsf@gmail.com
Hi,

On Fri, 07 Mar 2025 at 05:22, 45mg <45mg.writes@gmail.com> wrote:

Toggle quote (19 lines)
>>> For one example, consider
>>> <https://codeberg.org/guix-science/guix-science/pulls/63>.
>>>
>>> As you can see, there is no “Commit“ and no “Files changed“. Why?
>>> Because Alexis deleted the PR branch. Therefore, harder to know what
>>> the PR was about; annoyances.
>>
>> Thanks for raising this. This is a very important point. Losing history
>> like this seems very bad. Ideally, we want to have an archive of every
>> conversation and contribution that went into the project. Emails provide
>> this. If Codeberg does not, we should rethink our move.
>
> If you read through the Conversation section, you can see a message for
> every time commits were added to the branch or it was force-pushed. If
> you click on the commit hashes or subjects in these messages, it takes
> you to a description of the commit, featuring a diff and files changed.
> In this way you can see every iteration of the PR, just like we have
> every patch revision in our mailing-list archives.

Yes, as I detailed in [1]. :-)

However, you still need to “click” here or there. My issue could “live
in the browser” but the one I raise is: you need a stable Internet
connection. Anyway, another story. :-)

What I wanted to illustrate is about the storage. Arun wrote [2]:

I was present with Ludo and others when we visited the Codeberg stall at
FOSDEM, and enquired about the possibility of hosting Guix on Codeberg.
The person at the stall was hesitant about our large repo, and our many
users. In fact, in order to save on disk space, they suggested that we
encourage our contributors to delete their forks once done. :-D Needless
to say, that's never going to happen!

And I’m adding elements to this question.

Well, my opinion on this topics of storage is: Without concrete numbers
and explicit questions to Codeberg team, the discussion is speculation
on one way or on the other.

I agree with Ludo [3]:

That they’re transparent and upfront about their scalability
issues is a rather good sign to me.

Therefore, the ball is our camp. :-) How many submissions per month on
average? How many revisions per submission? How many message per
submission? Etc.

Instead of answering, I could do that… Hum?!

Cheers,
simon

1: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Simon Tournier <zimon.toutoune@gmail.com>
Thu, 06 Mar 2025 15:15:43 +0100
id:87ldti6y9c.fsf@gmail.com

2: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Arun Isaac <arunisaac@systemreboot.net>
Tue, 25 Feb 2025 14:03:02 +0000
id:87zfia2kbt.fsf@systemreboot.net

3: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Ludovic Courtès <ludo@gnu.org>
Wed, 26 Feb 2025 22:01:47 +0100
id:8734g01kuc.fsf@inria.fr

PS:

Toggle quote (9 lines)
> One thing I particularly like is that the final message (well, the one
> before 'deleted branch *typst*') shows you the commit that was finally
> merged. On the mailing lists, many of the issues are closed with a
> message like 'applied with minor tweaks, thanks', and not all committers
> will note the commit hash - so you're left grepping for the patch
> subject line in `git log` if you want to know what tweaks were made.
> Codeberg automatically notes the hash, and you can see the final
> iteration just by clicking on it!

The introduction of Change-Id fixes. Indeed, it’s not at one click. :-)
Yes, it could be introduced to Mumi and showed in the web-interface.
And then it opens some questions described elsewhere. ;-)
Simon Tournier wrote 4 days ago
87msdw51z6.fsf@gmail.com
Hi Ricardo,

On Fri, 07 Mar 2025 at 10:21, Ricardo Wurmus <rekado@elephly.net> wrote:
Toggle quote (16 lines)
> Divya Ranjan <divya@subvertising.org> writes:
>
>> We have a *humongous* backlog of patches, [...]
>
>> [...] we host a backend service that regularly checks the Codeberg
>> repository for any new issues or PRs and then communicates to us
>> through the Codeberg’s Forgejo API [0] the content of said issues and
>> PRs. The data received from the API then gets directed to our Debbugs
>> or Mumi backend, which parses the information from it and opens a new
>> Debbugs issue for it. Thus, for every issue opened on Codeberg, we
>> have a mirrored Debbugs issue [...]
>
> So at the end we'd have an even larger backlog of patches, and spread
> across two systems...? And where do we source the time and motivation
> to hack on yet another piece of software?

I proposed a similar one-way bridge here [1]. And obviously, my
proposal is also to volunteer for helping in implementing in Mumi
backend.

Cheers,
simon

1: [bug#76503] [GCD] Migrating repositories, issues, and patches to Codeberg
Simon Tournier <zimon.toutoune@gmail.com>
Thu, 06 Mar 2025 17:35:25 +0100
id:875xkm6rsi.fsf@gmail.com


PS: I agree with the rest of your message, and to complement:

Toggle quote (4 lines)
> It does not even do simple things like delivering notifications to
> *everyone* who participates in an issue discussion. This is the
> reason for the sudden eery silence that can be seen in many issues.

I’m not sure Codeberg notifies you without the dedicated @rekado;
similarly as adding you with CC.
Thompson, David wrote 3 days ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAJ=Rwfa8Rf7KwgmghStxxpG+7JkvAp+B+euT7YKekAyoGmP9Gg@mail.gmail.com
Hello,

On Sun, Feb 23, 2025 at 10:21 AM Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (7 lines)
>
> Hello Guix!
>
> This is the formal submission of “Migrating repositories, issues, and
> patches to Codeberg” (GCD 002), a preliminary draft of which I posted
> before the Guix Days⁰.

I support this proposal! It's about time! The email-based workflow
worked well enough in the early days, but Guix outgrew it 5+ years
ago. Savannah is a dead platform and I have long since given up trying
to deal with debbugs for anything other than small patches. I look
forward to being able to easily browse issues and scan through pull
requests.

- Dave
Suhail Singh wrote 3 days ago
(name . Thompson, David)(address . dthompson2@worcester.edu)
87o6ycoi2f.fsf@gmail.com
"Thompson, David" <dthompson2@worcester.edu> writes:

Toggle quote (3 lines)
> The email-based workflow worked well enough in the early days, but
> Guix outgrew it 5+ years ago.

Do you also believe that the Linux kernel has outgrown the "email-based
workflow"? If not, what makes things different for Guix, in your
opinion?

Since a number of criticisms about the current approach have been about
the GNU fork of Debbugs. I wonder if replacing that with something else
(say, Bugzilla) while still retaining the email-based workflow wouldn't
address most of the pain points. Unless I'm mistaken, I believe the
Linux kernel takes a similar approach.

--
Suhail
Thompson, David wrote 3 days ago
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
CAJ=RwfbeEkmkdbhXpyUdi0xR7rydbXT_igXj1LBh6f6RwxN1jA@mail.gmail.com
On Fri, Mar 7, 2025 at 12:40 PM Suhail Singh <suhailsingh247@gmail.com> wrote:
Toggle quote (10 lines)
>
> "Thompson, David" <dthompson2@worcester.edu> writes:
>
> > The email-based workflow worked well enough in the early days, but
> > Guix outgrew it 5+ years ago.
>
> Do you also believe that the Linux kernel has outgrown the "email-based
> workflow"? If not, what makes things different for Guix, in your
> opinion?

I don't contribute to Linux so I have nothing to add here.

Toggle quote (6 lines)
> Since a number of criticisms about the current approach have been about
> the GNU fork of Debbugs. I wonder if replacing that with something else
> (say, Bugzilla) while still retaining the email-based workflow wouldn't
> address most of the pain points. Unless I'm mistaken, I believe the
> Linux kernel takes a similar approach.

I wouldn't support a switch to Bugzilla or something similar. I want
Guix to use a real forge with pull requests, webhooks, etc.

- Dave
Suhail Singh wrote 3 days ago
(name . Thompson, David)(address . dthompson2@worcester.edu)
87h644ogzu.fsf@gmail.com
"Thompson, David" <dthompson2@worcester.edu> writes:

Toggle quote (6 lines)
>> Do you also believe that the Linux kernel has outgrown the "email-based
>> workflow"? If not, what makes things different for Guix, in your
>> opinion?
>
> I don't contribute to Linux so I have nothing to add here.

I don't believe that that's a necessary pre-requisite to be able to add
something of value, but fair enough.

Toggle quote (8 lines)
>> Since a number of criticisms about the current approach have been about
>> the GNU fork of Debbugs. I wonder if replacing that with something else
>> (say, Bugzilla) while still retaining the email-based workflow wouldn't
>> address most of the pain points. Unless I'm mistaken, I believe the
>> Linux kernel takes a similar approach.
>
> I wouldn't support a switch to Bugzilla or something similar.

Okay.

Toggle quote (2 lines)
> I want Guix to use a real forge with pull requests, webhooks, etc.

Well, yes, that much is clear.

--
Suhail
Ricardo Wurmus wrote 3 days ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
87y0xgyat1.fsf@elephly.net
Hi Simon,

Toggle quote (47 lines)
> On Thu, 06 Mar 2025 at 21:05, Ricardo Wurmus
> <rekado@elephly.net> wrote:
>
>> It seems that on Codeberg the primary means of keeping track of
>> things
>> is through notifications. I fear I might still end up dropping
>> the
>> ball when a PR requires my attention if it gets buried in
>> countless
>> notifications -- especially if I have to keep them unread to
>> ever have
>> a chance of finding them again. Obviously, a fix here would be
>> to
>> adjust my behaviour and not let notifications pile up, but this
>> has no
>> chance of ever happening. (In completely unrelated news: I've
>> got
>> 17532 unread Guix emails.)
>
> Yes, I agree. IMHO, it would be a mistake to think that
> Codeberg would
> ease how to deal with all the submissions. Even, because there
> is no
> simple tools at hand – as Maxim said in [1] – the current
> interface
> makes the process harder, from my point of view.
>
> For example, Leo wrote [2]:
>
> For me, the big problem with email is that resolved
> tickets don't get
> removed from my inbox. Currently, my guix-patches inbox
> has 7000
> messages. And 520 for bug-guix. Since April 2024.
>
> and yeah that’s an issue! Well, maybe I’ve missed the obvious
> but my
> Notifications are not removed when the PR is merged.
>
> Somehow, the way Codeberg Notifications is currently implemented
> does
> the same way as “my inbox”, IIUC, except that instead of being
> able to
> manipulate these tickets with the comfort on a good email
> reader, now we
> need API queries or live in the browser.

It seems that Forgejo Notifications are not the correct interface
to improve our overview, because as you say they would suffer from
the same problem as emails with the added disadvantages of
cluttering the email inbox (with notification emails) and the lack
of a local client to make sense of them (which is what email
allows us to do).

I found that the URL

type=review_requested&\
sort=recentupdate&\
state=open&\
q=&fuzzy=true

Shows me current pull requests that still await my review.
Likewise I can list those I've reviewed already with
"type=reviewed_by" and those assigned to me with "type=assigned".
Curiously, these filters don't seem to be exposed in the API
endpoint /repos/{owner}/{repo}/pulls.

Reviews can automatically be requested via the CODEOWNERS file, so
I think moulding our workflow around this overview would be an
obvious improvement.

Toggle quote (11 lines)
> Somehow, we need something more gradual. For instance, 2 or 3
> steps with
> concrete and detailed milestones; targeting the end of “patch by
> email”
> something as next December.
>
> Why? Because we need to learn more where the friction could be,
> what is
> really lacking, what makes too much hurdle, etc. And adapt
> accordingly.

This sounds reasonable, but perhaps the migration is not quite a
big as we think. There are not that many committers, who would be
on the receiving side of pull request review. What do the current
committers absolutely require of the forge to be able to complete
at least as many reviews as they do today? Perhaps we can
concretely list the committers' requirements, and see what
solutions or workarounds we can find for each of them.

This is setting aside more fundamental misgivings such as "I don't
like that Codeberg requires an account" or "I don't feel I can
trust Codeberg e.V. with our data", which ought to be negotiated
in this discussion. (I don't like that Codeberg requires an
account, even for the AGit workflow, but I think there could be
workarounds, and I don't consider this more than a minor
inconvenience.)

Toggle quote (6 lines)
> All that to say, I am not convinced that completely jumping to
> something
> fully new for most of us is a good approach; especially when the
> same us
> already know the pitfalls of our tools or behaviour.

A complication of a partial move (perhaps just the r-team and the
python-team) is that it starts an extended period of confusion for
contributors. We would have to document the preferences of each
team. I don't know if the GCD process is laid out for per-team
decisions like this.

If the experiment is deemed a failure by those who have moved to
Codeberg they'll just move back. But what if the experiment is
only deemed a failure by those who haven't actually given Codeberg
a try? We'd end up with permanent fragmentation.

--
Ricardo
Divya Ranjan wrote 3 days ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
874j04emla.fsf@subvertising.org
Hello Ricardo,

Toggle quote (16 lines)
>> We have a *humongous* backlog of patches, [...]
>
>> [...] we host a backend service that regularly checks the Codeberg
>> repository for any new issues or PRs and then communicates to us
>> through the Codeberg’s Forgejo API [0] the content of said issues
>> and
>> PRs. The data received from the API then gets directed to our
>> Debbugs
>> or Mumi backend, which parses the information from it and opens a
>> new
>> Debbugs issue for it. Thus, for every issue opened on Codeberg, we
>> have a mirrored Debbugs issue [...]
>
> So at the end we'd have an even larger backlog of patches, and spread
> across two systems...? [...]

We would have that regardless of whether one follows my proposition or not. The old backlog is going nowhere. Even if we make a full-switch to Codeberg immediately, the committers would either have to work on both things tenaciously as they (committers such as Maxime) get used to an entirely new workflow. What is the probability that such an immediate increase in responsibilities will not lead to a further increase of existing backlog?

I don’t think anything can solve the backlog quickly, what I proposed was with the intent of solving the issue of committers not having to learn a new workflow altogether to work on the backlog, ergo, not having another hurdle to it amidst a list of others.

Toggle quote (7 lines)
> And where do we source the time and motivation
> to hack on yet another piece of software? Outside contributions to
> mumi have been *very* few in all these years; that's not for a lack of
> problems we've had with the system, and for once it's not for a lack
> of
> review either.

Indeed, that is a problem. It was a mere proposition, so if enough people want it to happen, we can have it :)


Toggle quote (11 lines)
> As a long time contributor with commit access I have the impression
> that
> people new to Guix hold the assumption that the current system and
> workflow works for long time contributors. I may just be wildly
> incompetent, but for me it most assuredly does not work in enabling
> reviews. I mostly review patches that were sent to me directly or
> that
> happen to solve a problem I'm trying to solve as part of my
> maintainance
> work.

I acknowledge your experience, but we heard from others such as Maxime how to them it might require learning and changing the workflow. So the people for whom the email-based workflow works isn’t really a null set.

Toggle quote (27 lines)
> The haphazard GNU fork of Debbugs also lacks a number of features, has
> odd unaddressed bugs, lacks people who even understand in what ways it
> differs from the Debian version, lacks people working on improving it
> and addressing these issues. (There is literally *one* person who
> keeps
> the lights on.)
>
> It does not even do simple things like delivering notifications to
> *everyone* who participates in an issue discussion. This is the
> reason
> for the sudden eery silence that can be seen in many issues.
>
> I honestly have my doubts that the move to Codeberg would
> automatically
> solve all of my workflow issues, but let's please not eulogize the
> email-based workflow too much. It makes sense to me to base our
> efforts
> on a system that is *actively* developed by a *team* of aligned free
> software hackers.
>
> I don't see an active future for the GNU fork of Debbugs, and I think
> it
> is not a good use of our time to work on a system that won't improve
> unless we burden ourselves with even more work (like taking over
> hosting
> and administration). I'd rather work on Guix.

By all means, but I think you are confusing a plea for not breaking certain people’s workflow as a means to "eulogize" something. The goal here is to simply not put enough pressure on people who already have a lot on themselves to change their workflow in order to continue contributing to Guix. And my proposal is targetted towards an eventual move to Codeberg, just a more gradual approach, based on empirical feedback and with some time to clear the existing backlog and to learn the new system.

Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Divya Ranjan wrote 3 days ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
87zfhwd7rh.fsf@subvertising.org
Hello Simon,

Toggle quote (23 lines)
> Hi Ricardo,
>
> On Fri, 07 Mar 2025 at 10:21, Ricardo Wurmus <rekado@elephly.net> wrote:
>> Divya Ranjan <divya@subvertising.org> writes:
>>
>>> We have a *humongous* backlog of patches, [...]
>>
>>> [...] we host a backend service that regularly checks the Codeberg
>>> repository for any new issues or PRs and then communicates to us
>>> through the Codeberg’s Forgejo API [0] the content of said issues and
>>> PRs. The data received from the API then gets directed to our Debbugs
>>> or Mumi backend, which parses the information from it and opens a new
>>> Debbugs issue for it. Thus, for every issue opened on Codeberg, we
>>> have a mirrored Debbugs issue [...]
>>
>> So at the end we'd have an even larger backlog of patches, and spread
>> across two systems...? And where do we source the time and motivation
>> to hack on yet another piece of software?
>
> I proposed a similar one-way bridge here [1]. And obviously, my
> proposal is also to volunteer for helping in implementing in Mumi
> backend.

Apologies Simon, I had totally missed your mail and proposition. I came up with this earlier today. But I agree entirely with the proposal, and volunteer to work on such tooling as well.

Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Divya Ranjan wrote 3 days ago
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
87v7skd72b.fsf@subvertising.org
Hello Suhail,

Toggle quote (10 lines)
> "Thompson, David" <dthompson2@worcester.edu> writes:
>
>> The email-based workflow worked well enough in the early days, but
>> Guix outgrew it 5+ years ago.
>
> Do you also believe that the Linux kernel has outgrown the "email-based
> workflow"? If not, what makes things different for Guix, in your
> opinion?
>

Despite me being in support of a workflow that doesn’t require opening a browser, while thinking about how Linux kernel does it and Guix, I had to realize that Linux gets a *lot* more in funding and infrastructure than Guix. Of course part of it is because of sheer technological necessity of handling a 30M LOC project that’s used by everyone. But it’s also because they *can* get it, through the help of Linux Foundation and so on.

I don’t think we have that many degrees of freedom here, so we need to be careful about our resources, and the work of volunteers and committers. I would be open to a consideration of using BugZilla or Gerrit for that matter, even though I’m not used to them, the possibility of working with them without a browser, motivates me to learn them.

Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Suhail Singh wrote 3 days ago
(name . Divya Ranjan)(address . divya@subvertising.org)
87cyesoeut.fsf@gmail.com
Divya Ranjan <divya@subvertising.org> writes:

Toggle quote (3 lines)
> I had to realize that Linux gets a *lot* more in funding and
> infrastructure than Guix.

While I agree in general, I don't understand the specific point you were
making. Was it that Linux with its greater funding has someone to
manage something like Bugzilla, where Guix may not?

Toggle quote (4 lines)
> I don’t think we have that many degrees of freedom here, so we need to
> be careful about our resources, and the work of volunteers and
> committers.

Agreed.

--
Suhail
Divya Ranjan wrote 3 days ago
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
87r038d5ob.fsf@subvertising.org
Suhail Singh <suhailsingh247@gmail.com> writes:

Toggle quote (9 lines)
> Divya Ranjan <divya@subvertising.org> writes:
>
>> I had to realize that Linux gets a *lot* more in funding and
>> infrastructure than Guix.
>
> While I agree in general, I don't understand the specific point you were
> making. Was it that Linux with its greater funding has someone to
> manage something like Bugzilla, where Guix may not?

That, and they have the freedom to not worry if it’s costing them a bit too much, both financially and workload wise. I don’t think any of the kernel subsystem maintainers are heavily working on the infrastructure, it is simply provided to them from Linux Foundation. I think if a lot of our infrastructural worries could be handled by some other entity while the committers focus on contributing to Guix, it’d been much easier.

As much as we like to talk of Savannah being unstable, it is managed by less than 5 people at FSFSysOps. Last month I recommended to communicate or work with them[0], but I don’t think anyone wanted that. The degree to which a workflow is smooth depends not only on the workflow itself but on how it’s being supported.

--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.

PGP Fingerprint: F0B3 1A69 8006 8FB8 096A 2F12 B245 10C6 108C 8D4A
Leo Famulari wrote 3 days ago
(name . Suhail Singh)(address . suhailsingh247@gmail.com)
Z8tYUw2FzQRL3C8n@jasmine.lan
On Fri, Mar 07, 2025 at 01:49:46PM -0500, Suhail Singh wrote:
Toggle quote (4 lines)
> While I agree in general, I don't understand the specific point you were
> making. Was it that Linux with its greater funding has someone to
> manage something like Bugzilla, where Guix may not?

Linux contributors and maintainers are paid to be persistent in
reviewing and landing patches, regardless of the tools and workflow.
There are thousands of them, mostly professionals.

As Guix's number 8 commit author and committer (two different stats,
both #8), I can say that I'd be doing Much More these days if it was my
job and not a personal hobby.

git shortlog -ns
git shortlog -ncs
Cayetano Santos wrote 2 days ago
(address . ludo@gnu.org)
87ecz78l2s.fsf@inventati.org
Hi Ludo,

Thanks for this, it is remarkable and obvious the amount of time you
have spend thinking about it in deep before submitting the GCD.
However, after a last read to the proposal, a question arises in my
mind. I haven’t found any reference to it in this long thread (maybe
I missed it ?).

> # Cost of Reverting

This point might become relevant at some point ahead on time. Do we
have any reference of a successful migration to another gitlab /
forgejo instance ? I’m thinking here about the long term retrieval of
all information we will deposit at codeberg during the incoming years.
No one knows what the future will provide, but I think, from my
perspective, that a complete demo exercise might be helpful to this
respect before going any further.

Thanks again,

--
Cayetano Santos
.
gpg: CCB8 1842 F9D7 058E CD67 377A BF5C DF4D F6BF 6682
key: meta.sr.ht/~csantosb.pgp
-----BEGIN PGP SIGNATURE-----

iI0EARYKADUWIQTMuBhC+dcFjs1nN3q/XN9N9r9mggUCZ8yESxccY3NhbnRvc2JA
aW52ZW50YXRpLm9yZwAKCRC/XN9N9r9mghsPAP4sSTL8w1/8dSDc2taNQvrtY6oG
GVMOID3mdRqm4Re7dgD/csjPVNE+3rV/Fd7lWkiCmkodx+SIkRMhtTyxMDDrUwA=
=r+OO
-----END PGP SIGNATURE-----

Konrad Hinsen wrote 43 hours ago
[GCD] Migrating repositories, issues, and patches to Codeberg
(address . 76503@debbugs.gnu.org)
m11pv63854.fsf@mac-mini.home
Hi everyone,

A few high-level comments, to prevent us from getting lost in technical
details.

Quoting the summary of the GCD:

The contribution workflow in Guix has been facing several challenges:
difficult onboarding, lack of legibility, complex, unreliable, and
labor-intensive infrastructure, and lack of automation. All these lead
to an experience that contributors often find frustrating and hinders
quality assurance efforts.

Onboarding: this means new community members, and it suggests, though
not explicitly saying it, growth. Is growth what we want? Or merely
replacement of people leaving or reducing their efforts? If we want
growth, how quickly and up to where? Do we want to operate like the
Linux kernel (recently cited here), in that most contributors are
employees of tech companies? If not, what is the profile of contributors
that we wish to attract? Which others are we willing to give up on in
exchange? (I am thinking of those who are not willing to create a
Codeberg account, for example.)

Is onboarding only about recruiting new community members, or also about
mentoring newcomers on their path from users to contributors to
reviewers and maintainers? I suppose it is. Then which step is the
bottleneck? My impression from this discussion: from contributor to
reviewer. Which is why I personally favor this proposal, because I see
the current workflow as most cumbersome for code reviewing.

Lack of legibility, complex, unreliable, and labor-intensive
infrastructure: these are more technical motivations. It's the current
maintainers that are most exposed to these issues. Not me, so I won't
comment, other than highlighting that we should listen to the current
and past maintainers.

Lack of automation: I haven't seen much discussion about this aspect so
far. Automating what, for who? Who needs to be able to control and
fine-tune automation? Who needs to understand what's happening?
At what stages in onboarding does this matter?

Cheers,
Konrad.
45mg wrote 43 hours ago
874j02mvwn.fsf@gmail.com
Divya Ranjan via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (4 lines)
> I would be open to a consideration of using BugZilla or Gerrit for
> that matter, even though I’m not used to them, the possibility of
> working with them without a browser, motivates me to learn them.

Ignore me if I'm not adding anything to the discussion here, but I'd
like to remind everyone that there is also the possibility of working
with Codeberg without a browser:


I haven't tried these, and no doubt there will be shortcomings. But both
Forgejo and its clients are all open-source, so it's possible to work on
and improve them.

Speaking for myself at least, I know that if I could find the time, I'd
enjoy improving any of the existing CLI or Emacs interfaces to a modern
forge with a seemingly-bright future (federation!), knowing that my work
would benefit the countless open-source projects that use it, and the
modern FOSS movement by extension.

I can't really say the same for improving my personal email-based
workflow, whose setup is too complex for me to expect anyone else to
ever use it. Or for setting up and/or working on Bugzilla, or Gerrit, or
Debbugs... these are all great projects, I'm sure, but they're not
likely to have a lot of new adopters, which means that the impact of
improving them is going to be much smaller.

I realize that everyone's motivation comes from a different place, but I
think it's worth looking at the benefit this proposal could bring to the
FOSS community at large. We have a lot of active and competent power
users, and an active and competent userbase is the biggest asset for any
project. If we use program 'X' as a core part of our workflow, then
program 'X' gains all those users. Obviously improving Forgejo is far
from the first priority for us, but it is a nice bonus, and makes me
feel a lot more positive about this proposal.
indieterminacy wrote 16 hours ago
(name . Divya Ranjan)(address . divya@subvertising.org)
3b359fa8b8f306c8e77b573e5d03a5f4@libre.brussels
Hello all,

Reading a random fediverse thread, I came across some aspects about
growth of issues and governance around duplications and feature
requests:


```
What I gather from the replies is that better issue tracking should work
with at least 3 separate queues:

- Bugs (things that don't work as they should, breaking functionality,
can be fixed relatively fast)
- Feature requests (Things that don't exist yet in the codebase but
could be added)
- Refactoring (Things that can be bugs or features, but to solve them a
redesign/rewrite/refactor of certain parts of the codebase is needed)

Triage should decide where a new issue belongs.
```

```
often issue trackers are used for feature requests. I think it is
reasonable for those to stay open for long-ish periods of time as part
of a long term roadmap or a help-wanted list. I agree those should be
clearly distinguished from bugs, but sometimes the line between "missing
feature" and "bug" blurs.
```


Is there a need to provide more formal clarifications regarding
collective expectations and emphases?
Are there any case studies we are using to inform such outcomes?
In particular, is there anything distinct to the Guix experience that we
need to be mindful of?

Kind regards,


Jonathan

On 2025-03-07 06:18, Divya Ranjan wrote:
Toggle quote (96 lines)
> Hello Carlo,
>
>> I don't think this is a fair summary of the goal. The first sentence
>> of
>> the GCD[1] is:
>>
>> The contribution workflow in Guix has been facing several
>> challenges:
>> difficult onboarding, lack of legibility, complex, unreliable, and
>> labor-intensive infrastructure, and lack of automation.
>>
>> Of these, only "difficult onboarding" is about newcomers. Your
>> proposal
>> (which I might describe as "proxy Codeberg into debbugs") involves
>> building new infrastructure without helping the other issues.
>
> You are correct, Carlo, the GCD does have multiple goals. But in my
> email I also elaborated how the onboarding issue is a high-priority
> task, reflective from the last survey and also something that can be
> achieved without risking too much. I believe we are at a probabilistic
> trade-off decision here, do we wish to achieve all the goals, including
> a complete change of infrastructure, workflow etc. in the proposed
> timeline of 15 days or so, and thus incurring a lot of problems that a
> team of committers would’ve to put a lot of effort into resolving? Or,
> do we wish to slowly achieve some of the goals, take those goals as a
> litmus test for the overall proposal and proceed gradually? I believe
> latter would be a safer bet, with less to risk immediately and
> opportunity to fix mistakes from feedback.
>
> So, yes, my proposal cannot resolve all the goals, but I am trying to
> find a way to integrate what we have with what we might switch to. I
> might be at fault here, and feel free to elaborate on that, such as how
> can we approach the proposed quick migration to Codeberg while having a
> huge backlog of patches?
>
>>> Since Codeberg already allows to communicate in issues over email,
>>> i.e. you can respond to someone in a particular issue over email,
>>> this
>>> shouldn’t be too difficult to arrange.
>>
>> This is not true today. While Forgejo supports replying via email,
>> Codeberg does not have that enabled due to bugs. They have an issue
>> tracking it: https://codeberg.org/Codeberg/Community/issues/1562
>
> Thank you for this. I had tried it on a Forgejo repository, not a
> Codeberg one, so I believed the same could be possible here as well.
> From the discussions I see, if we spend enough time with them--which we
> need to do either ways--for the migration, they might get it working?
> Does not look far from possible to me.
>
>> Even if it was true, the big disconnect here would be around
>> commenting
>> on specific lines of code. An email with a comment on a patch would
>> come
>> through as a top-level comment on the PR, which is not natural in that
>> context.
>
> Also thank you for bringing this issue, indeed this is a crucial
> functionality. But to be clear, this is specifically for a
> pull-request. The issues functionality is totally doable out of the box
> with Forgejo, we just need to make it work with Codeberg and polish it.
> With regards to the PR, one has to remember that the entire process
> needs to be wrapped around Forgejo’s API, not as our used to method of
> plain text. We’d be parsing JSON to-and-fro. For "reviewing a Pull
> Request" in Codeberg methodology, Forgejo provides a
> =/repos/{owner}/{repo}/pulls/{index}/reviews= API[0] to initiate a
> review. This API will take the comments from the patch in the Email,
> place them in the "body" string of the JSON, and the respective
> positions from the diff, the commit_id and so on. I agree it is
> non-trivial, but so is switching a workflow that has been in-place for
> years, also a non-trivial task. I think the API has enough things for
> what we need. And again, we don’t need all of them, we only require
> implementing those for now that bridge existing email workflow and the
> newcomers’ onboarding. Merging, for example, I propose to be done in
> the usual way of taking a patch and applying it. Eventually once we
> have less of a backlog, and more ease of migration, one might consider
> moving these core tasks to the Codeberg as well.
>
> Either ways, we are at the crossroads and we need to decide which
> trade-off is worth the pain. I believe it is *not* certain that once we
> entirely migrate to Codeberg, the goals of "complexity" and "lack of
> legibility" would be immediately reaped. It creates a possibility of
> enjoying them, but given the assumption that the switch from existing
> architecture is smooth. And, once again, if we were a relatively
> smaller project such as the Guix-Science, this could’ve been a decision
> much simpler and with less at stake, but that is not the case. But I
> think it *is* certain that if we take an approach that doesn’t directly
> replace one workflow with another, but bridges the new one with the
> previous one, the committers will have a better way to switch. Simply
> because they can try to finish the backlog using the existing workflow,
> and the new patches can come to them with that as well. Where we go
> from there, can be decided upon how good the litmus test goes.
>
> [0]: https://codeberg.org/api/swagger#/repository/repoCreatePullReview
>
> Regards,
Simon Tournier wrote 17 hours ago
87zfht6u5w.fsf@gmail.com
Hi Andreas,

On Fri, 07 Mar 2025 at 17:03, Andreas Enge <andreas@enge.fr> wrote:

Toggle quote (2 lines)
> Which says nothing about the experience on a forge, logically.

If I might, I encourage you to subscribe to all the guix-science
channels. This way, you will have an foretaste: The Good, the Bad and
the Ugly. :-)

Cheers,
simon
Simon Tournier wrote 17 hours ago
87tt816tin.fsf@gmail.com
Hi,

On Sun, 09 Mar 2025 at 08:48, 45mg <45mg.writes@gmail.com> wrote:

Toggle quote (5 lines)
> https://github.com/magit/forge
>
> I haven't tried these, and no doubt there will be shortcomings.

Maybe you should. :-)

For instance, magit-forge does not work with Codeberg although their
documentation says so. Well, neither Ludo or I have succeeded in
configuring it, although we asked advice on Mastodon [1,2].

For the rest, I would not repeat [3,4]. :-)

Cheers,
simon

PS: Without any willing to be harsh, if I might, in order to keep the
discussion fruitful, I would refrain to raise speculations and
instead strive on arguments backed by experience. Somehow, let
avoid to oppose pure personal feelings and instead share various
angles or perspectives with the hope to get a common understanding.

--


3: Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
Maxim Cournoyer <maxim.cournoyer@gmail.com>
Tue, 04 Mar 2025 20:22:59 +0900
id:8734ftdoq4.fsf@gmail.com

4: Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
Simon Tournier <zimon.toutoune@gmail.com>
Thu, 06 Mar 2025 18:39:56 +0100
id:87r03a5a8j.fsf@gmail.com
Simon Tournier wrote 15 hours ago
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87frjl6paj.fsf@gmail.com
Hi Ricardo,

On Fri, 07 Mar 2025 at 19:07, Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (6 lines)
> type=review_requested&\
> sort=recentupdate&\
> state=open&\
> q=&fuzzy=true

For instance, this is listed for me:


and…

Toggle quote (4 lines)
> Reviews can automatically be requested via the CODEOWNERS file, so
> I think moulding our workflow around this overview would be an
> obvious improvement.

…and maybe I misread CODEOWNERS [1], but I miss why this PR is listed
for me.




Toggle quote (11 lines)
>> Somehow, we need something more gradual. For instance, 2 or 3 steps
>> with concrete and detailed milestones; targeting the end of “patch by
>> email” something as next December.
>>
>> Why? Because we need to learn more where the friction could be, what
>> is really lacking, what makes too much hurdle, etc. And adapt
>> accordingly.
>
> This sounds reasonable, but perhaps the migration is not quite a
> big as we think.

Yeah good ol’ resistance to change. ;-)

However, the GCD reads

Within **30 days** following acceptance of this GCD, committers would
migrate all these repositories to https://codeberg.org/guix.

and we are just starting to discover what could be done with the API or
how to effectively improve the identified bottleneck with emails, but in
the same time, it also introduces annoyances.

For example, one thing is the backup of all what is going to happen in
Codeberg: all the history of PRs, revisions, discussions, etc.

We jump in without a concrete implementation for such backup. Bad
scenario, imagine: couple of months later – we will have several open
and closed PRs – Codeberg suddenly disappears for whatever unexpected
reasons: How do we get all the data associated to our open and closed
PRs?

Toggle quote (4 lines)
> What do the current
> committers absolutely require of the forge to be able to complete
> at least as many reviews as they do today?

For me,

a) work offline and by batch;

b) comment on patches without the web-interface; comment from Emacs;

c) being able to personally tag for later retrieving back;

d) bridge with Org-mode.

If I am transparent, the biggest annoyance for me when reviewing isn’t
about the workflow but it’s about the CI and/or QA. In other words,
this “Big Move” will introduce much more frictions on my side than
effectively smooth.

My main issues with CI and/or QA is that it’s much too slow to work on.
Not slow to process the queue – it might be but hey! – no, it’s about
too slow to query; especially via the web-interface. Well, I do not
know what has changed over the past year, but now for me ci.guix is
almost unusable.

And the “Big Move” will change nothing about the data generated by CI
and/or QA. It could only ease the bridge, IIUC.


Toggle quote (5 lines)
> (I don't like that Codeberg requires an
> account, even for the AGit workflow, but I think there could be
> workarounds, and I don't consider this more than a minor
> inconvenience.)

Somehow, I agree. The 4 items above are “minor inconvenience” because
it’s possible to find and/or implement workarounds. However, it does
not appear to me doable considering the time frame that the GCD proposes
with the “Migration Path”.

To say it explicitly, these 4 items are “no go” for me. Not that I
would block the GCD but for sure I will stay aside – and for being
consistent, I’ll ask to suspend my write access – the time to have
something that fulfills these requirements.

No big deal, I barely review these days after all. :-)


Toggle quote (10 lines)
>> All that to say, I am not convinced that completely jumping to
>> something fully new for most of us is a good approach; especially
>> when the same us already know the pitfalls of our tools or behaviour.
>
> A complication of a partial move (perhaps just the r-team and the
> python-team) is that it starts an extended period of confusion for
> contributors. We would have to document the preferences of each
> team. I don't know if the GCD process is laid out for per-team
> decisions like this.

Well, maybe the level of team isn’t the good one for such partial move.

For sure, I find awkward to jump in the unknown without any prior
minimal experience with PR workflow for almost all the people who have
experience with email workflow and are reviewing.

Just to mention. What Ludo did months ago, Ludo tried Codeberg, then
Ludo moved the channels guix-science, then Romain adapted Cuirass – or
maybe Romain adapted Cuirass before the guix-science channels move,
anyway–, then ~100 PRs has been submitted. Etc. All that creates this
minimal experience.

Now, when Ludo says: it’s okish enough and it’ll be fine with me, yes I
trust their words. Because they are somehow backed.

How many of us have a same minimal experience with PR?

Somehow, it’s a biased decision: Here is the way you know well and thus
the way you concretely know the frictions and annoyances. Compared to
that, there is the way you imagine and thus the way you hypothetically
speculate how smooth it will be or how worse it’ll become.

Concretely, it does not sound to me reasonable to say: Hey after the
23rd of May, all will happen on Codeberg, post-scriptum: good luck! :-)

I find more reasonable to have 2-3 milestones. And we also must discuss
with Codeberg on concrete numbers because that’s not an unilateral
decision, IMHO.

All that to say, yes I totally agree, the best approach seems:

What do the current
committers absolutely require of the forge to be able to complete
at least as many reviews as they do today?

Cheers,
simon
Ricardo Wurmus wrote 15 hours ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
87msdtnir4.fsf@elephly.net
Simon Tournier <zimon.toutoune@gmail.com> writes:

Toggle quote (27 lines)
> On Fri, 07 Mar 2025 at 19:07, Ricardo Wurmus
> <rekado@elephly.net> wrote:
>
>> https://codeberg.org/org/guix-science/pulls?\
>> type=review_requested&\
>> sort=recentupdate&\
>> state=open&\
>> q=&fuzzy=true
>
> For instance, this is listed for me:
>
> https://codeberg.org/guix-science/guix-science-nonfree/pulls/30
>
> and…
>
>> Reviews can automatically be requested via the CODEOWNERS file,
>> so
>> I think moulding our workflow around this overview would be an
>> obvious improvement.
>
> …and maybe I misread CODEOWNERS [1], but I miss why this PR is
> listed
> for me.
>
> 1:
> https://codeberg.org/guix-science/guix-science-nonfree/src/branch/master/CODEOWNERS

I don't see that your review has been requested for this PR. No
idea
what's up there.

--
Ricardo
Ludovic Courtès wrote 5 hours ago
Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg
(name . Cayetano Santos)(address . csantosb@inventati.org)
87r034led2.fsf_-_@gnu.org
Hi,

Cayetano Santos <csantosb@inventati.org> skribis:

Toggle quote (8 lines)
> This point might become relevant at some point ahead on time. Do we
> have any reference of a successful migration to another gitlab /
> forgejo instance ? I’m thinking here about the long term retrieval of
> all information we will deposit at codeberg during the incoming years.
> No one knows what the future will provide, but I think, from my
> perspective, that a complete demo exercise might be helpful to this
> respect before going any further.

We have experience migrating from GitHub (Guix-Science, etc.) and from a
GitLab instance (Guix-Past, etc.) to Codeberg: this is almost lossless
conversion.

Migrating between Forgejo instances would be trivial: Forgejo supports
it as well.

We don’t know what the future will look like, but given the rich
interface and structured data, I’m confident that it will always be
possible to extract it and feed it into other similar systems.

Ludo’.
Ludovic Courtès wrote 5 hours ago
Forges and automation
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 76503@debbugs.gnu.org)
87msdsjyk2.fsf_-_@gnu.org
Hello Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (5 lines)
> Lack of automation: I haven't seen much discussion about this aspect so
> far. Automating what, for who? Who needs to be able to control and
> fine-tune automation? Who needs to understand what's happening?
> At what stages in onboarding does this matter?

This phrase refers to the bots and CI systems many developers have
become used to.

Here’s an example:


The build status of the packaging changes are reported in the
discussion; the GitLab pipeline goes green upon success. (Romain is
working on that sort of feedback for Forgejo instances in Cuirass though
the basics are already in place as noted in the GCD.)

A “modern forge” isn’t necessary for this, as https://qa.guix.gnu.org
has shown. But just like it’s easier to write and maintain a browser
written in Rust than one written in assembly, it’s easier to integrate
qa.guix, Cuirass, and similar tools with a forge than with email.

This workflow also eases onboarding: without knowing anything about the
project’s infra, the contributor gets feedback about their submission
right where they posted it. And it works: no worries about MUAs
wrapping lines, patches as MIME attachments vs. email body, etc.


With that in place, it becomes possible to have an auto-update bot like
that of Nixpkgs:


… which creates pull requests for package updates:


… which are then built, with package maintainers being pinged upon
success.

Again this could be done over email or UUCP, but having the interface
and semantics of a forge makes those things easier.

Ludo’.
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 76503@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 76503
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help