Tomas Volf <~@wolfsden.cz> skribis:

>> 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
>
> I am curious about this.  GitLab Community Edition is under MIT (so
> ticks the free software checkbox).  While I am not an expert, I *think*
> it is mix of golang and ruby code, so that seems feasible to self-host
> on top of Guix system?

There are several issues with GitLab: first, it is developed by a
for-profit under an “open core” model—not exactly in line with the way
many of us in the project envision user freedom.

Secondly, it’s a beast, a very big piece of software, and something
that’s also not trivial to administrate (IT department at work runs an
instance, but there’s quite a few people to keep it afloat).

Last, even if we put client-side JavaScript aside, it’s unlikely we
could package it all in Guix.

> And GitLab would have the advantage that (Magit) Forge works with it.

We briefly discussed it with the Codeberg/Forgejo people and they noted
that most of the Gitea/Forgejo interface is actually the same as that of
GitHub, so it may be that GitHub clients could do some/most operations
on a Forgejo instance.  Worth investigating.

Overall, I’m not too concerned about our ability to figure this out;
it’s work, yes, but little compared to developing and running mumi,
running Patchwork, etc.

>> The Savannah `guix.git` repository would become a mirror of the one at
>> Codeberg, with a script periodically updating it, as a way to ease
>> migration to the new repository for users.
>
> Will all the repositories listed above be mirrored?  Or just the
> guix.git?

It’s up for discussion.  Personally, I’d just keep guix.git on Savannah,
clearly marked as a mirror; I think keeping all of them in both places
could be confusing.

>> ## 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.
>
> I understand the impracticality, but just want to make sure I understand
> the implications.  Will this mean that I will have to go over all my
> patches and resend them to Codeberg one by one, or is it expected the
> patches already sent will still be processed (just new ones will not be
> accepted)?

What I’m proposing (but again, up for discussion) is to discuss patches
already on issues.guix via email just like we currently do.

>> Care will be taken to advertise the various interfaces to
>> Codeberg/Forgejo that exist in addition to its web interface, such as
>> [forgejo-cli](https://codeberg.org/Cyborus/forgejo-cli/) and
>> [fj.el](https://codeberg.org/martianh/fj.el/).
>
> I took a look at the fj.el and I did not figure out how to for example
> create a pull request.  So I assume people will need to create their own
> tooling, probably around the forgejo-cli.

I would just extend fj.el in this case.  The HTTP API basically covers
everything one can do via the web interface, and it’s all pretty well
documented:

  https://forgejo.org/docs/latest/user/api-usage/
  https://codeberg.org/api/swagger#/

If the needs arise, we could even have a Guile client in the style of
(guix swh), (guix import pypi), etc.

>> ## Workflow
>>
>> [..]
>>
>> 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.
>
> Out of curiosity, is it possible to disable the merge button?  I am
> pretty sure it is just a matter of time until someone presses it by
> accident.

One can configure Forgejo to refused unsigned commits (this is what we
did for <https://codeberg.org/guix-science/guix-science>, which is
signed).  In that case, Forgejo just won’t merge because it cannot sign
commits (well, I think the instance could be configured to sign commits,
but Codeberg’s is not).

>> XXX: Does it really belong in this document?  Should we just keep that
>> for later?
>
> In my opinion this deserves separate document later.  That would help to
> keep the debate focused on a single topic.

OK.

Thanks,
Ludo’.

Reply via email to