From 3584c3480f4d282e5044ee2b1200c631e28c3fa6 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 5 Apr 2025 14:39:58 +0800 Subject: Update forge docs --- content/forge/_index.md | 28 +++++++++++++++++++++------- content/forge/setup.md | 26 ++++++++++++++++++++------ 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/content/forge/_index.md b/content/forge/_index.md index 4998133..6e65d12 100644 --- a/content/forge/_index.md +++ b/content/forge/_index.md @@ -10,24 +10,25 @@ primarily designed for self-hosting by small organizations and individuals. The Lindenii project itself [runs an instance](https://forge.lindenii.runxiyu.org/), where the -[official source repository of Lindenii Forge](https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/server/) +[official source repository of Lindenii Forge](https://forge.lindenii.runxiyu.org/forge/-/repos/server/) is located. ## Organization Misc URLs (for hosting stylesheets, scripts, the login page, etc.) are like -`https://forge.example.org/:/functionality...`. +`https://forge.example.org/-/functionality...`. Contentful URLs are like -`https://forge.example.org/group_name/subgroup_name.../:/module_type/module_name`. +`https://forge.example.org/group_name/subgroup_name.../-/module_type/module_name`. The available `module_type`s are: -* `repos` for version control +* `repos` for version control (the only one implemented so far) * `tickets` for ticket trackers * `discuss` for discussions +* `decisions` for requests for comments and collective decision-making -Group and subgroup names may not be `:`. +Group and subgroup names may not be `-`. While this syntax looks a bit odd, it makes it possible to unambiguously identify where subgroups end and modules begin, without needing to touch the @@ -95,6 +96,19 @@ far future. It should be possible to associate tickets with MRs. +### Requests for comments and decisions + +Requests for comments (RFCs) and decisions are similar to tickets, but +specifically designed for collective decision-making. + +In general, there will be two or more sides to a question, and people may use +commentaries to express their opinions. Group voting is supported for RFC +trackers that choose so; others may use dictatorial voting. At the end of +decisions, there shall be a final rationale, and users may submit concurring or +dissenting opinions. + +It should be possible to associate RFCs with MRs too. + ### Discussions Discussions are basically mailing lists that could also be used from a Web @@ -143,7 +157,7 @@ This plan is subject to change. We are currently using the [GNU Affero General Public License version 3](https://www.gnu.org/licenses/agpl-3.0.html). -The forge software serves its own source at `/:/source/`. +The forge software serves its own source at `/-/source/`. ## Support and development @@ -157,7 +171,7 @@ The forge software serves its own source at `/:/source/`. since our own ticket tracking system is not ready yet. Please submit patches by pushing to `contrib/...` in the official repo. * We have several Git repo mirrors on a few places: - * [Lindenii Forge itself](https://forge.lindenii.runxiyu.org/lindenii/:/repos/forge/) + * [Lindenii Forge itself](https://forge.lindenii.runxiyu.org/forge/-/repos/forge/) * [The Lindenii Project's cgit](https://git.lindenii.runxiyu.org/forge.git/) * [SourceHut](https://git.sr.ht/~runxiyu/forge/) * [Codeberg](https://codeberg.org/lindenii/forge/) diff --git a/content/forge/setup.md b/content/forge/setup.md index 37be79c..d2686a1 100644 --- a/content/forge/setup.md +++ b/content/forge/setup.md @@ -2,27 +2,41 @@ title: Setup --- +## System requirements + +We currently only support Linux and FreeBSD. Support for other UNIX-like +operating systems may be added in the future, but we do not have any plans to +support Windows. + ## Build dependencies * Git * GNU Make * C compiler * Recent Go toolchain +* [libgit2](https://libgit2.org) +* A recent [mandoc](https://mandoc.bsd.lv) + (we recommend using the latest CVS checkout) -## Build and install - -Clone the source code and run `make`. +## Build -Then run `make install` to install it. By default, it installs to `/usr/local/`. +Clone the source code and run `gmake`. Note that setting `GOARCH` to cross compile does not completely work, since the -hooks handler is written in C. You need to customize `CC` to point to a proper -cross compiler. +hooks handler and Git RPC daemon is written in C. You need to customize `CC` to +point to a proper cross compiler. + +## Install + +We don't provide an `install` target yet, so just copy the files to reasonable +locations. ## Runtime dependencies * Git * PostgreSQL 14 or later +* [libgit2](https://libgit2.org) +* A runtime copy of your C library, if you are not statically linking ## Configuration -- cgit v1.2.3