Skip to content

Commit bbf62ea

Browse files
committed
docs: add ADR 0025 for Codeberg release platform decision
Documents the architectural decision to perform releases exclusively on Codeberg.org instead of GitHub, using Woodpecker CI and GoReleaser. Complements ADR 0024 (Codeberg hosting migration) by addressing the specific considerations for release distribution, including discoverability, automation, and alignment with FOSS principles.
1 parent 66cfdd1 commit bbf62ea

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

docs/architecture/decisions/0024-codeberg-hosting-and-woodpecker-ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 24. Codeberg hosting and Woodpecker CI migration
22

3-
Date: 2026-01-08
3+
Date: 2026-01-24
44

55
## Status
66

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# 25. Codeberg release platform
2+
3+
Date: 2026-01-24
4+
5+
## Status
6+
7+
Accepted
8+
9+
Complements [24. Codeberg hosting and Woodpecker CI migration](0024-codeberg-hosting-and-woodpecker-ci.md)
10+
11+
## Context
12+
13+
Following the migration to Codeberg for primary development (ADR 0024), we needed to decide where to host and automate software releases. Release distribution has unique considerations beyond general CI/CD:
14+
15+
- **Discoverability**: Users need to find and download releases easily
16+
- **Automation**: Release builds, artefact generation, and publishing must be automated
17+
- **Trust and Security**: Checksums, reproducible builds, and secure distribution
18+
- **Consistency**: Aligning infrastructure with project values (FOSS principles)
19+
20+
**Release Platform Options:**
21+
22+
1. **GitHub Releases**: Established ecosystem, good discoverability, GitHub Actions + GoReleaser integration
23+
2. **Codeberg Releases**: Aligned with FOSS values, Forgejo/Gitea native, GoReleaser support via Gitea mode
24+
3. **Hybrid Approach**: CI on Codeberg, releases on GitHub (maintains discoverability)
25+
26+
GoReleaser supports Gitea/Forgejo natively, Codeberg provides a compatible release API, and `go install` works identically for both platforms.
27+
28+
## Decision
29+
30+
We will **perform releases exclusively on Codeberg** using Woodpecker CI and GoReleaser.
31+
32+
**Release Infrastructure:**
33+
34+
- **Automation**: Woodpecker CI (`.woodpecker/release.yaml`) triggers on version tags with quality gates
35+
- **Build and Publish**: GoReleaser (`.goreleaser.yaml`) builds cross-platform binaries and publishes to Codeberg Releases API
36+
- **Distribution**: Codeberg Releases at `https://codeberg.org/orien/stackaroo/releases`
37+
38+
We will **not** maintain GitHub releases or mirrors. All releases exclusively on Codeberg.
39+
40+
## Consequences
41+
42+
### Positive
43+
44+
- **Value Consistency**: Release infrastructure fully aligned with FOSS principles
45+
- **Simplicity**: Single platform for code, CI, issues, and releases
46+
- **No Platform Fragmentation**: Avoids confusion about canonical release location
47+
- **Community Support**: Strengthens Codeberg ecosystem by using it fully
48+
- **Technical Sovereignty**: Complete control via self-hostable Forgejo if needed
49+
- **Go Module Transparency**: `go install` works identically regardless of hosting
50+
51+
### Negative
52+
53+
- **Discoverability**: Codeberg's smaller user base reduces organic discovery
54+
- **Mitigation**: Clear documentation, README installation instructions, prominent download links
55+
56+
- **Familiarity**: Some users accustomed to GitHub releases
57+
- **Mitigation**: Documentation explains Codeberg usage, identical download UX
58+
59+
- **Ecosystem Integration**: Fewer third-party tools integrate with Codeberg
60+
- **Mitigation**: Most tools use `go install` or direct binary downloads which work fine
61+
62+
- **Search Engine Ranking**: GitHub releases may rank higher in search results
63+
- **Mitigation**: SEO-optimised documentation, direct links in README
64+
65+
## References
66+
67+
- [Codeberg](https://codeberg.org)
68+
- [GoReleaser Gitea Support](https://goreleaser.com/customization/gitea/)

0 commit comments

Comments
 (0)