alunduil / alunduil/network-arbitrary
Releases publish automatically each week with the PVP version computed from an API diff
- Lingua principale
- Haskell
- Stelle
- 1
- Fork
- 2
- Merge medio
- 1h 37m
- PR unite (30g)
- 10
Descrizione
## Summary
Cut releases on a weekly cadence with the version number computed from an automated API diff against the last published release, rather than chosen by hand. The computed bump follows PVP and accounts for interface changes leaking in from dependencies.
## Motivation
#81 showed the failure mode of hand-picked versions planned ahead of the diff: a `2.0.0.0` milestone accreted on top of zero API changes. If the version is *computed* from what actually changed, it can't drift from reality, and per-release version-numbered milestones stop making sense (they get retired once this lands).
Most of this repo's churn is dependency-bound widening (Renovate), which is patch-level under PVP — a good fit for an automated weekly patch release.
## Scope
- Select or build an API-diff mechanism that compares the built interface of the working tree against the last published Hackage release and emits the PVP-correct bump (A.B / C / D). Candidate tooling to evaluate: `policeman`, `cabal-diff` (maintenance status unverified).
- Handle this package's shape: the entire public surface is orphan `Arbitrary` instances (no exported functions/types). Instance-behavior changes and dependency leaks (e.g. `http-media` altering `MediaType` while the instance signature is unchanged) are the hard case interface-diff tools tend to miss — decide how far to chase this.
- Wire the computed version into `network-arbitrary.cabal` and the CHANGELOG (`Unreleased` -> computed version) at release time.
- Schedule a weekly job that runs the diff, bumps, tags, and publishes through the hardened pipeline (only when there is something to release).
- Retire the version-numbered milestones once the pipeline is proven.
## Acceptance criteria
- [ ] A release run computes the PVP bump from the API diff with no hand-entered version.
- [ ] Dependency-leak handling has an explicit, documented decision (detected, or knowingly out of scope).
- [ ] A weekly schedule publishes to Hackage through the existing hardened pipeline when changes warrant a release, and no-ops otherwise.
- [ ] Version-numbered milestones removed.
## Additional context
- Direction decided in #81 (epoch retired; versions computed, not planned).
- Builds on the hardened publish pipeline exercised in #83 and milestone 1.0.0.3.
- Bound/matrix *inputs* are automated separately (#101, #112, #121); this issue covers the release + version-computation side.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.