Skip to content

chore: relicense from Apache-2.0 to AGPL-3.0 - #213

Open
TheMeinerLP wants to merge 2 commits into
mainfrom
chore/agpl-relicense
Open

chore: relicense from Apache-2.0 to AGPL-3.0#213
TheMeinerLP wants to merge 2 commits into
mainfrom
chore/agpl-relicense

Conversation

@TheMeinerLP

Copy link
Copy Markdown
Contributor

Why

Titan is moving onto Falco — our own Anvil chunk loader and light engine — as Stage 1 of the lobby season work. Falco is AGPL-3.0 with no linking exception, and a Minecraft server is a network service, so AGPL section 13 applies.

What changed

  • LICENSE — Apache-2.0 → AGPL-3.0
  • header.java — Spotless header template, applied to all 97 tracked Java sources
  • POM licence blocks in the three published modules (app, setup, bridge)
  • README.md — licence section, with a note on what section 13 means for operators
  • .gitignore — local agent/tooling artefacts

gradlew and gradlew.bat keep their Apache header — that is Gradle's code, not ours.

Blocking question: contributor consent

This is why the PR is a draft. Titan has authors besides the maintainer:

Contributor approx. commits
theEvilReaper / Steffen Wonning ~70
Joltras ~18
Yannick Lamprecht 2
OLF org accounts ~16

Relicensing changes the terms their contributions are distributed under. Their written consent should be recorded before this merges — most likely a formality among OLF members, but one that belongs in writing.

Verification

./gradlew :common:spotlessCheck :api:spotlessCheck passes. No Apache header remains on any tracked file except Gradle's own wrapper scripts.

Stack

Base of the lobby season stack. The docs PR sits on top of this one, and the three Stage branches on top of that.

Titan builds on Falco (falco-anvil, falco-light), OneLiteFeather's own
Anvil chunk loader and light engine, which is AGPL-3.0 with no linking
exception. A Minecraft server is a network service, so AGPL section 13
applies to anyone running a modified Titan.

Replaces the licence text, the Spotless header template applied to all
97 tracked Java sources, and the POM licence blocks of the three
published modules (app, setup, bridge). gradlew and gradlew.bat keep
their own Apache header - that is Gradle's code, not ours.

NOTE: Titan has contributors besides the maintainer (theEvilReaper,
Joltras, Yannick Lamprecht, OLF org accounts). Relicensing changes the
terms their contributions are distributed under, so their written
consent should be recorded before this ships.
docs: add project standard, event research and lobby season spec

Three documents that the upcoming lobby work builds on:

- olf-minestom-project-standard.md: 23 architecture rules derived from
  ManisGame, Cygnus, Tamias and the theEvilReaper libraries, each with a
  rationale and an enforcement mechanism. Falco's falco-archunit module
  already enforces six of them and is the reference implementation.

- event-modi-plan.md: research on seasonal events. Key finding, measured
  from Steam telemetry: cosmetic seasonal events move concurrent players
  by roughly zero (Deep Rock Galactic October: -0.37%, -12.16%, -4.92%)
  while content releases move them 20-150% and lift the floor for months.
  Decoration is brand upkeep, not a growth lever - so its cost must stay
  small.

- spec-lobby-saison-events.md: the requirements themselves. 49 user
  stories across 7 stages, 13 non-functional requirements, EARS
  acceptance criteria and MoSCoW priorities, following the OLF
  requirement-engineering standard.

- rollout-log.md: the record NFR-011 asks for, tracking which feature
  sat at which release stage.
@TheMeinerLP
TheMeinerLP marked this pull request as ready for review August 29, 2026 14:41
@TheMeinerLP
TheMeinerLP requested a review from a team as a code owner August 29, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant