From ae0fa923fc86e0faa445277d54f91acf7a5c096d Mon Sep 17 00:00:00 2001 From: Benoit Donneaux Date: Tue, 1 Oct 2024 18:13:39 +0200 Subject: [PATCH] Update documentation for Nuts and Bolts Signed-off-by: Benoit Donneaux --- docs/TargetComparison.md | 103 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 3 deletions(-) diff --git a/docs/TargetComparison.md b/docs/TargetComparison.md index d4bf829..703074b 100644 --- a/docs/TargetComparison.md +++ b/docs/TargetComparison.md @@ -2,19 +2,81 @@ Moving off Trac leads to consider different software offering similar features/properties. +## Side-by-side summary + +| 1. self-hosted | criteria | Trac | Forgejo | Gitea | Gitlab | notes | +|----------------|-------------------|--------------|--------------|-----------|------------|-------------------| +| feature/req | (F)OSS license | 3-clause BSD | GPLv3 | MIT | MIT | | +| feature/req | issue tracking | yes | yes | yes | | | +| feature/req | wiki pages | yes | yes | yes | | | +| feature/req | self-registration | yes | yes | yes | | spam mitigation? | +| feature/opt | OAuth - Github | ? | NA | yes | | account recovery? | +| feature/opt | static web sites | *wiki only* | options | yes | | | +| feature/opt | git mirror | yes | yes | yes | | | +| feature/opt | git repository | external | yes | yes | | | +| feature/opt | binary repository | external | yes | yes | | | +| feature/opt | CI support | none | maybe | yes | yes | | +| feature/opt | CI on linux | - | ? | yes | yes | additional cost | +| feature/opt | CI on mac | - | ? | yes | yes | additional cost | +| feature/opt | CI on win | - | ? | yes | yes | additional cost | +| feature/opt | CI based on | - | ? | act | gitlab | | +| freedom | CI license | - | ? | MIT | MIT | | +| capex | setup | 8 | 8 | 8 | | hours | +| capex | migration | 4 | 8 | 8 | | hours | +| opex | ops | 16 | 16 | 16 | | hours/month | +| opex | hosting | 10 | 10 | 10 | | $/month | +| opex | subscription | 0 | 0 | 0 | ? | $/month | +| **2. SaaS** | | **Github** | **Codeberg** | **Gitea** | **Gitlab** | | +| feature/req | self-hostable | yes | yes | yes | yes | | +| feature/req | (F)OSS license | **no** | GPLv3 | MIT | MIT | | +| feature/req | issue tracking | yes | yes | yes | | | +| feature/req | wiki pages | yes | yes | yes | | | +| feature/req | self-registration | yes | yes | yes | | spam mitigation? | +| feature/opt | OAuth - Github | NA | yes | yes | | account mapping? | +| feature/opt | static web sites | yes | yes | ? | ? | | +| feature/opt | git mirror | yes | yes | yes | ? | | +| feature/opt | git repository | external | yes | yes | ? | | +| feature/opt | binary repository | external | yes | yes | ? | | +| feature/opt | CI support | yes | yes | yes | yes | | +| feature/opt | CI on linux | yes | yes | yes | yes | additional cost? | +| feature/opt | CI on mac | yes | yes | yes | yes | additional cost? | +| feature/opt | CI on win | yes | yes | yes | yes | additional cost? | +| feature/opt | CI based on | github | woodpecker | act | gitlab | | +| freedom | CI (F)OSS license | **no** | Apache-2.0 | MIT | MIT | | +| capex | setup | 2 | 4 | 4 | 2 | hours | +| capex | migration | ? | 8 | 8 | ? | hours | +| opex | ops | 4 | 4 | 4 | 4 | hours/month | +| opex | hosting | 5 | 5 | 5 | 5 | $/month redirect | +| opex | subscription | freemium? | 0 (donation) | 20/user | freemium? | $/month | + ## Software ### Trac -**TODO**: Just to list the feature currently used for comparison. +Currently used for: + +* user management: manual registration via email and IRC to avoid spam +* issue tracking: referred from [Github](https://github.com/tahoe-lafs/tahoe-lafs/pulls) +* wiki pages: in parallel from [Github](https://github.com/tahoe-lafs/tahoe-lafs/tree/master/docs) +* static web site: using the wiki [Start](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/WikiStart) page +* git mirror: allows to [browse](https://tahoe-lafs.org/trac/tahoe-lafs/browser) the latest code from Github + +Aside from other self-hosted features: + +* binary repository for Tahoe-LAFS release +* other Trac projects (see [DevInfra](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/DevInfra) +* Buildbot instances... ### Github -**TODO**: Summary of the features covered by the previous estimate. +The code of the main [Tahoe-LAFS](https://github.com/tahoe-lafs) project and its related pull requests already live in Github. +Despite having been considered in the past, Github is not (F)OSS and not easily self-hostable (vendor loncking). ### Gitlab -**TODO**: Sum up the pros and cons assessed in the issue/wiki. +Some projects related to Tahoe-LAFS already lives on Gitlab.com. +And despite being (F)OSS, Gitlab is not easily self-hostable (vendor locking). +In addition, PrivateStorage.io has a poor experience using Gitlab: cumbersome UI and many security issues. ### Gitea @@ -24,6 +86,38 @@ Moving off Trac leads to consider different software offering similar features/p **TODO**: Describe the small differences with Gitea. + +### Summary + +#### Features and requirements + +| Feature | Requirement | Trac | Github | Gitea | Forgejo | Notes | +|-------------------|-------------|-----------|----------|-----------|--------------|-------------------| +| issue traking | MUST | yes | yes | yes | yes | | +| wiki pages | MUST | yes | yes | yes | yes | | +| git mirror | COULD | yes | yes | yes | yes | | +| self-registration | MUST | yes | yes | yes | yes | spam mitigation? | +| OAuth - Github | COULD | ? | NA | yes | yes | account recovery? | +| (F)OSS | MUST | yes | no | yes | yes | community size? | +| self-hostable | MUST | yes | yes | yes | yes | | +| SaaS provided | MUST | ? | NA | gitea.com | codeberg.org | funding source? | +| static web sites | COULD | wiki only | gh-pages | options | options | | +| binary repository | COULD | external | yes | yes | yes | | +| git repository | COULD | external | yes | yes | yes | | +| CI support | COULD | no | yes | yes | yes | | + +#### Rating + +| criteria | sub-category | Trac | Gitea | Forgejo | note/metric | +|-----------------|--------------|-----------|-----------|-----------|---------------------| +| community | contributors | 2 > 1 | 29 > 19 | 41 > 40 | last year <> month | +| community | last release | Sep 2023 | Sep 2024 | Sep 2024 | date (version) | +| community | last version | 1.6 | 1.22.2 | 8.0.3 | date (version) | +| maintainability | language | Python | Go | Go | - | +| maintainability | docker | obsolete | 1.22.2 | 8.0.3 | last stable image | +| maintainability | debian | not found | not found | not found | last stable package | +| maintainability | nixos | not found | 1.21.11 | 7.0.9 | last stable package | + ## Hosting ### Gitea/Forgejo on self-hosted NixOS @@ -64,6 +158,9 @@ Same as Gitea on self-hosted NixOS, only different CI and gh-pages solutions. ### Forgejo on Codeberg +Codeberg is a non-profit org supporting Free Software and therefore only allows repos licensed under an OSI/FSF-approved license. +Codeberg also [explicitly](https://docs.codeberg.org/getting-started/what-is-codeberg/#alternatives-to-codeberg) stands against vendor locking. + #### Pros * Smaller VPS (5$/m), but still required for redirection (stateless, maybe possible w/o?)