blob: 5c4e235b160e97acdf807fca8ab560525f168381 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# Lindenii Forge
**Work in progress.**
Lindenii Forge aims to be an uncomplicated yet featured software forge,
primarily designed for self-hosting by small organizations and individuals.
* [Upstream source repository](https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/server/)
([backup](https://git.lindenii.runxiyu.org/forge.git/))
* [Website and documentation](https://lindenii.runxiyu.org/forge/)
* [Temporary issue tracker](https://todo.sr.ht/~runxiyu/forge)
* IRC [`#lindenii`](https://webirc.runxiyu.org/kiwiirc/#lindenii)
on [irc.runxiyu.org](https://irc.runxiyu.org)\
and [`#lindenii`](https://web.libera.chat/#lindenii)
on [Libera.Chat](https://libera.chat)
## Planned features
* Umambiguously parsable URL
* Groups and subgroups
* Repo hosting
* Merge requests
* Push to `contrib/` branches to automatically create MRs
* Integration with traditional mailing list workflows
* Ticket trackers
* Email integration with IMAP archives
* Web interface
* Discussions
* Email integration with IMAP archives
* Web interface
* Multiple user interfaces: web, SSH, email, custom API
* Federated authentication
## License
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/`.
## Support and development
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/forge/:/repos/server/)
* [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/)
* [GitHub](https://github.com/runxiyu/forge/)
## Code style
We follow the Lindenii Project's general code style, which has a few important
deviations from what most people may be used to:
* We used tabs for indentation everywhere (Go, C, HTML, CSS, JS, SQL, etc.)
* All names are in `snake_case`; exported identifiers in Go use
`Capitalized_snake_case`. Type identifiers end with `_t`.
* We avoid `:=` in Go, and prefer to use `var`.
|