docs: establish module versioning boundaries #4

Merged
end merged 2 commits from docs/module-versioning into main 2026-10-26 21:45:07 -07:00
2 changed files with 6 additions and 5 deletions
Showing only changes of commit 104c3ec757 - Show all commits

No files matched your search

+1 -1
View File
@@ -30,7 +30,7 @@ Go module `go.auvem.com/corestack`.
- Docs format (the spec `docs check` implements): `docs/docs-format.md`.
- Decisions live in `docs/adr/`, plans in `docs/plans/`. Records are permanent; never rename them.
- Add dependencies only to the module that needs them; heavy dependencies go in nested modules (see the [proposed module-boundary ADR](/docs/adr/20261025T214616275Z-version-light-core-packages-in-the-root-module-and-nest-heavy-dependency-modules.md)).
- Add dependencies only to the module that needs them; heavy dependencies go in nested modules (see the [module-boundary ADR](/docs/adr/20261025T214616275Z-version-light-core-packages-in-the-root-module-and-nest-heavy-dependency-modules.md)).
## Go
- Default backend language is Go; follow existing package boundaries.
@@ -1,8 +1,8 @@
---
title: "Version light core packages in the root module and nest heavy-dependency modules"
date: 2026-10-25
status: proposed
implementation: not-started
status: accepted
implementation: implemented
summary: Keep light core packages on root-module versions and isolate heavy or independently versioned packages in nested modules from their first commit.
tags:
- modules
@@ -12,7 +12,8 @@ superseded_by: []
related: []
tracking:
- https://gitea.auvem.com/corestack/go/issues/2
implemented_by: []
implemented_by:
- https://gitea.auvem.com/corestack/go/pulls/4
---
# Version light core packages in the root module and nest heavy-dependency modules
@@ -40,7 +41,7 @@ Choose the mixed boundary: light core packages share the root module; heavy-depe
* Add dependencies only to the module that needs them. The named core packages remain in the root module; heavy dependencies belong in the relevant nested module.
* Keep `cmd/docs` in the root module. The [release workflow](/.gitea/workflows/release.yml) listens only for plain `v*` tags, and [GoReleaser](/.goreleaser.yaml) builds `./cmd/docs`, so only root-module tags publish binaries. Prefixed library tags never publish binaries.
This proposal records the boundary before the planned packages are added; it does not create empty modules or change the current release configuration.
This decision establishes the boundary before the planned packages are added. The rule is implemented in [AGENTS.md](/AGENTS.md), and the existing release configuration already follows it. Future packages apply the rule when introduced; no empty modules are needed.
### Consequences