Skip to content

Commit dceeea9

Browse files
committed
docs(issues): add release spec for v0.1.0 (#462)
1 parent c180005 commit dceeea9

1 file changed

Lines changed: 148 additions & 0 deletions

File tree

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Release v0.1.0: Stable End-to-End Execution
2+
3+
**Issue**: #462
4+
**Parent Epic**: N/A
5+
**Related**: [#459](https://github.com/torrust/torrust-tracker-deployer/issues/459) (beta.2 release validation),
6+
[#450](https://github.com/torrust/torrust-tracker-deployer/issues/450) (beta.1 release validation),
7+
[#448](https://github.com/torrust/torrust-tracker-deployer/issues/448) (release process definition),
8+
[#452](https://github.com/torrust/torrust-tracker-deployer/pull/452) (crate rename to tracker-deployer namespace)
9+
10+
## Overview
11+
12+
Execute the first stable release of the Torrust Tracker Deployer (`v0.1.0`),
13+
validating the full release workflow from version bump through release publication.
14+
15+
This release is the GA cut after beta validation. The objective is to execute the
16+
canonical process cleanly, ensure all release artifacts are published and verifiable,
17+
and capture any friction that still exists in the release workflow documentation,
18+
skill instructions, or CI automation.
19+
20+
## Goals
21+
22+
- [ ] Version `0.1.0` is reflected in all four `Cargo.toml` files on `main`
23+
- [ ] Signed tag `v0.1.0` and release branch `releases/v0.1.0` exist
24+
- [ ] Docker image `torrust/tracker-deployer:0.1.0` is published to Docker Hub
25+
- [ ] All four crates are published to crates.io at version `0.1.0`
26+
- [ ] GitHub release `v0.1.0` is published (not draft)
27+
- [ ] Any new friction points discovered are documented and filed as follow-ups
28+
29+
## Specifications
30+
31+
### Version Bump Scope
32+
33+
Update `version` field to `0.1.0` in all four manifests:
34+
35+
| File | Crate |
36+
| ------------------------------------------ | ----------------------------------------------- |
37+
| `Cargo.toml` (workspace root) | `torrust-tracker-deployer` |
38+
| `packages/deployer-types/Cargo.toml` | `torrust-tracker-deployer-types` |
39+
| `packages/dependency-installer/Cargo.toml` | `torrust-tracker-deployer-dependency-installer` |
40+
| `packages/sdk/Cargo.toml` | `torrust-tracker-deployer-sdk` |
41+
42+
Also update every internal path dependency `version` constraint to `0.1.0`.
43+
44+
### Publish Order (crates.io dependency order)
45+
46+
1. `torrust-tracker-deployer-types`
47+
2. `torrust-tracker-deployer-dependency-installer`
48+
3. `torrust-tracker-deployer`
49+
4. `torrust-tracker-deployer-sdk`
50+
51+
Each crate's dry-run step in CI runs only after its prerequisites are indexed on
52+
crates.io - do not attempt to publish out of order.
53+
54+
## Implementation Plan
55+
56+
### Phase 1: Pre-Flight and Setup
57+
58+
- [ ] Task 1.1: Verify local workspace is clean and on `torrust/main` up-to-date
59+
with `origin/main` (`git status`, `git pull --ff-only`)
60+
- [ ] Task 1.2: Confirm GitHub environments `dockerhub-torrust` and `crates-io` are
61+
correctly configured for stable release publication
62+
- [ ] Task 1.3: Confirm releaser has push access to `main`, tags, and release branches
63+
- [ ] Task 1.4: Document any pre-flight issues found
64+
65+
### Phase 2: Execute the Release
66+
67+
- [ ] Task 2.1: Update `version` to `0.1.0` in all four `Cargo.toml` files
68+
and in every internal path dependency constraint
69+
- [ ] Task 2.2: Run `cargo build && cargo test` and verify they pass
70+
- [ ] Task 2.3: Run `./scripts/pre-commit.sh` and verify all checks pass
71+
- [ ] Task 2.4: Create and push the signed release commit to `main`
72+
(`git commit -S -m "release: version v0.1.0"`)
73+
- [ ] Task 2.5: Create and push annotated signed tag `v0.1.0`
74+
- [ ] Task 2.6: Create and push release branch `releases/v0.1.0`
75+
- [ ] Task 2.7: Monitor Container and Publish Crate workflows to completion
76+
77+
### Phase 3: Artifact Verification
78+
79+
- [ ] Task 3.1: Pull and inspect Docker image `torrust/tracker-deployer:0.1.0`
80+
- [ ] Task 3.2: Verify all four crates at `0.1.0` are visible on crates.io
81+
- [ ] Task 3.3: Verify docs.rs build for the published crate versions
82+
- [ ] Task 3.4: Create GitHub release from tag `v0.1.0`
83+
84+
### Phase 4: Process Review and Fixes
85+
86+
- [ ] Task 4.1: Collect every friction point, error, or unexpected step encountered
87+
during the release - no matter how small
88+
- [ ] Task 4.2: For each issue found, fix the root cause immediately in the relevant
89+
artifact:
90+
- `docs/release-process.md` - if a step was wrong, missing, or misleading
91+
- `.github/skills/dev/git-workflow/release-new-version/skill.md` - if the skill
92+
diverged from reality
93+
- `scripts/` - if a helper script failed or was absent
94+
- CI workflow files (`.github/workflows/`) - if a workflow behaved unexpectedly
95+
- Any other documentation, template, or configuration that contributed to the
96+
friction
97+
- [ ] Task 4.3: File follow-up issues for any non-trivial problems that cannot be
98+
fixed inline (e.g., upstream blockers, larger refactors)
99+
- [ ] Task 4.4: Re-run `./scripts/pre-commit.sh` after any fixes to confirm nothing
100+
was broken
101+
- [ ] Task 4.5: Confirm all finalization gates below are met
102+
103+
## Acceptance Criteria
104+
105+
**Quality Checks**:
106+
107+
- [ ] Pre-commit checks pass: `./scripts/pre-commit.sh`
108+
109+
**Release Execution**:
110+
111+
- [ ] Version `0.1.0` is committed and present in all four `Cargo.toml` files on `main`
112+
- [ ] Tag `v0.1.0` exists and is signed
113+
- [ ] Branch `releases/v0.1.0` exists
114+
- [ ] Container workflow completed successfully
115+
- [ ] Publish Crate workflow completed successfully
116+
- [ ] GitHub release `v0.1.0` is published (not draft)
117+
118+
**Artifact Verification**:
119+
120+
- [ ] Docker image `torrust/tracker-deployer:0.1.0` can be pulled and run
121+
- [ ] All four crates at `0.1.0` are visible on crates.io:
122+
- [ ] `torrust-tracker-deployer-types@0.1.0`
123+
- [ ] `torrust-tracker-deployer-dependency-installer@0.1.0`
124+
- [ ] `torrust-tracker-deployer@0.1.0`
125+
- [ ] `torrust-tracker-deployer-sdk@0.1.0`
126+
- [ ] docs.rs build page loads for the published versions
127+
128+
**Process Quality**:
129+
130+
- [ ] Every friction point or error encountered is documented (inline comment or
131+
filed follow-up issue)
132+
- [ ] Every fixable problem is fixed in the relevant artifact - documentation,
133+
skill, script, or workflow - not just noted
134+
- [ ] No step was silently skipped or improvised without documentation
135+
- [ ] `docs/release-process.md` and the release skill accurately reflect how the
136+
release was actually executed
137+
138+
## Related Documentation
139+
140+
- [Release Process](../release-process.md)
141+
- [Release Skill](../../.github/skills/dev/git-workflow/release-new-version/skill.md)
142+
- [beta.2 release issue #459](https://github.com/torrust/torrust-tracker-deployer/issues/459)
143+
144+
## Notes
145+
146+
This is a stable release (`0.1.0`), not a pre-release. Cargo users should receive
147+
this version by default through normal semver resolution, and release notes should
148+
highlight upgrade guidance from `0.1.0-beta.2` where relevant.

0 commit comments

Comments
 (0)