Project

General

Profile

Forges » History » Version 28

Denis 'GNUtoo' Carikli, 01/26/2021 11:46 AM
Add more context

1 1 Denis 'GNUtoo' Carikli
h1. Forges
2
3 28 Denis 'GNUtoo' Carikli
h2. Usage
4
5
Some forges might be able to:
6
* Provide a way for users to create and manage repositories by themselves, without any administrator interventions.
7
* Enable users to fork repositories very efficiently (without having the users push all the repository contents over a slow Internet connection).
8
* Enable users not used to sending patches by mail to have the forge do it for them.
9
10 1 Denis 'GNUtoo' Carikli
h2. Requirements
11
12 28 Denis 'GNUtoo' Carikli
Several forges have issues that prevent its use and deployment by Replicant and/or other free software projects.
13
14
Here are some of the requirements we could have:
15
* Fully free software: we currently don't have the resources to maintain fully free forks of forges that aren't fully free software.
16
* Low resource usage: we have a VM with very low CPU and RAM.
17
* Javascript requirements: we can't ship Nonfree JavaScript and forcing users to run specific JavaScript code without being able to easily modify it is an issue, even if the code is free software. To work to avoid that we have the following requirements:
18
** A Friendly upstream that accepts patches to make all features work without JavaScript.
19
** A code base that don't depend a lot on JavaScript
20 10 Denis 'GNUtoo' Carikli
** If possible all features should be usable without JavaScript
21 5 Denis 'GNUtoo' Carikli
** If possible the JavaScript has to be compatible with LibreJS
22 10 Denis 'GNUtoo' Carikli
* Workflow requirements:
23 28 Denis 'GNUtoo' Carikli
** Have the ability to customize the interface, for instance if the forge doesn't support a mail workflow we need to add a link from within the forge to a page that explains how to send patches to the mailing list. The same probably applies to bug tracker system as we already have one that is already handled by redmine.
24
** Friendly upstream that can accept patches for integrating it with a mailing based workflow. We might need to customize it as we have many git repos.
25 22 Kurtis Hanna
** Code base where integrating a mailing list based workflow is not too hard to do
26
* Have it packaged in a distribution we can use in the FSF VMs to reduce maintenance cost
27
28
h2. Forge evaluations done by other Free Software organizations
29
30
The FSF is currently evaluating forges to compliment their Savannah servers: https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration
31 23 Kurtis Hanna
32 22 Kurtis Hanna
FSF 2020 forge evaluation page on the LibrePlanet wiki: https://libreplanet.org/wiki/FSF_2020_forge_evaluation
33 23 Kurtis Hanna
34 5 Denis 'GNUtoo' Carikli
December 4th, 2020 update: "The FSF forge is still a work in progress. Since our last update, summer intern Amin Bandali deployed a testing instance of SourceHut, one of many possible programs for the forge." https://www.fsf.org/bulletin/2020/fall/updates-from-the-fsf-tech-team
35
36
h2. Possible forges for Replicant
37 8 Denis 'GNUtoo' Carikli
38
h3. Gitlab
39 9 Denis 'GNUtoo' Carikli
40
We used gitlab before and we had resource usage issues. The VM went out of RAM because of that.
41
42 3 Denis 'GNUtoo' Carikli
It also extensively depends on JavaScript and it doesn't look easy at all to fix. 
43
44
From our FOSDEM 2020 report that is not yet released:
45
<pre>
46
They used a framework that did most of the work on the server side,
47
but at some point they switched to a framework that does JavaScript
48
on the client side.
49
50
Accepting patches to fix that would require to double the UI work for
51
everything, but it might be possible to do server side rendering for
52
JavaScript. The issue is that it cannot make requests from buttons
53
like that, so in addition to the page rendering that could happen
54
through server-side JavaScript, introspection could be used to
55
rewrite the buttons.
56
</pre>
57 1 Denis 'GNUtoo' Carikli
58 3 Denis 'GNUtoo' Carikli
It also hide buttons, which is awful for users as they don't understand what is going on.
59 26 _I3^ RELATIVISM
60 1 Denis 'GNUtoo' Carikli
Packages: ?
61 26 _I3^ RELATIVISM
62
h3. Libregit.org (GOGS/Gitea)
63
64
*Website*: https://libregit.org
65
*Primary Developer*: SharePunks Collective - spks.cc
66
*Primary Maintainer*: Lauris BH
67
68
*Pros*
69
70
* Based of Gitea and Gogs, so self-hosting is the focus.
71
* LibreJS complaint.
72
* Simple user export and import of data, including migration feature.
73
* Simple and easy to use interface, making for the easy integration for non-technical users.
74
* FSDG complaint distributions installations would both work with minimal effort.
75
76
*Cons*
77
78
* MIT Licensed, not committed to free software philosophies given it is permissibly licensed.
79
* Email setup is not the most straight forward but it could be accomplished.
80
* The size of the project is growing exponentially given its upstream, which includes GOGS/Gitea.
81 27 _I3^ RELATIVISM
82 26 _I3^ RELATIVISM
Packages: ?
83 1 Denis 'GNUtoo' Carikli
84
h3. Pagure
85
86
*Website*: https://pagure.io/pagure
87 12 Denis 'GNUtoo' Carikli
*Command line tools* : https://pagure.io/pag-off
88 11 Denis 'GNUtoo' Carikli
89 13 Denis 'GNUtoo' Carikli
Features:
90 3 Denis 'GNUtoo' Carikli
* "The buttons seem to be greyed out when they cannot be used":https://pagure.io/pagure/pull-request/4786 This is much better than Gitlab where the buttons like "Send pull request" completely disappear if the feature is deactivated. Having button like that disappearing is really bad as users struggle to understand what they are doing wrong and can't contribute, when in fact the feature is simply deactivated without any way that shows it.
91 6 Denis 'GNUtoo' Carikli
* It's possible to create a theme that replaces the Pull Requests tab with a link (for instance the link could point to a page that explains how to send patches to the mailing list). src.fedoraproject.org uses that to replace the Issues tab with a link to Red Hat's Bugzilla
92 3 Denis 'GNUtoo' Carikli
* It's compatible with LibreJS but still requires JavaScript for some functionalities. Upstream seem friendly and is "probably very interested in getting patches to make it possible to use all features without any JavaScript":https://pagure.io/pagure/issue/3507 . Few features seem to depend on JavaScript.
93
* There is some interest in bridging a mailing based workflow to pagure: https://pagure.io/pagure/issue/15
94 1 Denis 'GNUtoo' Carikli
95 14 Jesse Olson
Packages: "currently packaged in Debian SID":https://packages.debian.org/sid/pagure, in "a PPA":https://packages.ubuntu.com/focal/pagure, might be packaged in other distributions
96 27 _I3^ RELATIVISM
97 14 Jesse Olson
Contacts: #pagure on Freenode and/orthe pagure-devel@lists.pagure.io mailing list
98
99
h3. Sourcehut
100
101
*Website*: https://sourcehut.org
102
*Primary Maintainer*: Drew Devault - sir@cmpwn.com
103
*Person who wrote this section*: j3s - j3s@c3f.net (feel free to contact me with any questions!)
104 24 Jesse Olson
105 14 Jesse Olson
*Pros*
106
107 16 Jesse Olson
* Completely integrated mailing list, build, todo, hub, and git repositories. Organizations/groups coming eventually.
108 14 Jesse Olson
* Only has 3 static js files. Extremely easy to support LibreJS. Requires no Javascript to function.
109 21 Jesse Olson
* Simple user export of data
110 14 Jesse Olson
* AGPLv3, committed to free software philosophies and open source communities https://sourcehut.org/blog/2019-10-23-srht-puts-users-first/
111
* Also has wiki/manpage support, a paste service, and a dispatch service.
112 1 Denis 'GNUtoo' Carikli
* Trisquel/Parabola installations would both work with minimal fuss: https://man.sr.ht/packages.md
113 21 Jesse Olson
114 18 Jesse Olson
*Cons*
115 24 Jesse Olson
116 25 Kurtis Hanna
* Alpine Linux is the most supported distribution, and doesn't meet RYF certification.
117
* Email setup can be a bit more complicated than alternatives, but it's fine if one is familiar with email concepts - SPF/DKIM/etc
118
* Drew maintains that sourcehut is "in alpha stage" - he goes over what that means here: https://sourcehut.org/alpha-details
119
120 1 Denis 'GNUtoo' Carikli
*See Also*
121
122
Relevant email from the libreplanet-dev email list about how the Sourcehut CI can optionally be adapted to provide CI support for other forges, like Pagure and Gitea: https://lists.libreplanet.org/archive/html/libreplanet-dev/2021-01/msg00001.html