Versioning and release policy
Versioning and release policy
Section titled “Versioning and release policy”properpcloud follows Semantic Versioning 2.0.0.
Canonical version
Section titled “Canonical version”VERSION is the only manually edited version source. It contains one normal
Semantic Version such as 0.1.0 or a valid pre-release such as 0.1.0-rc.1.
The Android build reads this value directly:
versionNameis the complete value fromVERSION;versionCodeismajor × 1,000,000 + minor × 1,000 + patch;- pre-release labels do not alter
versionCode, so only one public artifact with a given core version may be uploaded to an Android distribution channel.
Public API before 1.0
Section titled “Public API before 1.0”The public API consists of:
- source-neutral Kotlin contracts under
core-model; - documented provider adapter behavior;
- persisted database and settings schemas once introduced;
- user-visible queue, progress, and folder-navigation semantics;
- release CLI/Make targets documented in the repository.
Before 1.0.0, minor releases may refine these APIs incompatibly when the
change is clearly documented. Patch releases remain backward compatible.
Version intent
Section titled “Version intent”| Version range | Meaning |
|---|---|
0.0.x |
Architecture, contracts, and development bootstrap |
0.1.x |
Validated Android client; first end-user release line |
0.2.x |
Native Linux desktop client with Android feature parity |
1.0.0 |
Stable cross-platform contracts and migration guarantees |
Release sequence
Section titled “Release sequence”- Update
VERSIONand move entries fromUnreleasedinto a dated section. - Run
make release-checkandmake ciin the pinned Docker toolchain. - Build the release artifact and create release evidence with hashes.
- Commit the exact release tree.
- Create an annotated
vX.Y.Ztag at that commit. - Push commit and tag.
- Create the GitHub release from the tag and attach verified artifacts.
Tags and published release assets are immutable. A correction requires a new patch version rather than moving an existing tag.
