Public Access
50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# DEVX-182: feat(molecule): release lease emission (ships DEVX-181)
|
|
|
|
- Task: DEVX-182
|
|
- Status: draft
|
|
|
|
## Problem
|
|
|
|
DEVX-181 landed on master but was never released: the squash subject
|
|
came out `DEVX-181: ci: retrigger validation` because the branch's last
|
|
commit was an empty `ci:` retrigger. git-cliff found no bump-worthy
|
|
commit, so `v0.55.5` is still latest and the S08 lease producer is
|
|
unshipped. A `feat:` merge is needed to cut the release — and while
|
|
shipping, the emission log line is upgraded from a bare count to the
|
|
actual lease owner and UTC expiry, which is what an operator needs when
|
|
debugging a cleanup race.
|
|
|
|
## Approach
|
|
|
|
REQ-1: `start_docker.main()` computes `lease_env()` once and logs
|
|
`owner=` + ISO-8601 `until=` alongside the export confirmation. The
|
|
single call also removes a latent second-boundary inconsistency where
|
|
`emit_github_env` and the count message each re-derived `now`.
|
|
|
|
REQ-2: Merge squash commit carries `feat(molecule):` so git-cliff cuts
|
|
the next minor release containing DEVX-181's emitter and this change.
|
|
|
|
## Test Plan
|
|
|
|
- Update `test_emits_lease_on_success` + `test_prints_and_exports` for
|
|
the new log format; keep 100 % coverage.
|
|
- `make pre-push` — full devx suite green.
|
|
- Post-merge: verify a `v*` tag > v0.55.5 exists and
|
|
`pip index versions devx` (Gitea PyPI) lists it.
|
|
|
|
## Deploy Plan
|
|
|
|
- Auto-merge; post-merge release job tags + publishes.
|
|
- Infra (OBL-INFRA-658) and GRM (GRM-174) consume the new pin.
|
|
|
|
## Rollback Plan
|
|
|
|
- Revert merge; the unreleased module remains dormant regardless.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [x] REQ-1: emission log includes owner and ISO-8601 expiry; lease env
|
|
computed once — covered by updated unit tests.
|
|
- [x] REQ-2: merge commit uses `feat(molecule):` so the release job
|
|
cuts a version bump.
|