Files
devx/docs/specs/DEVX-182.md
T
Emil Simeonov 7cce0f754f
CI / validate (pull_request) Successful in 3m33s
CI / auto-merge (pull_request) Successful in 21s
feat(molecule): log lease owner and UTC expiry on emission
2026-09-30 18:11:05 +02:00

1.7 KiB

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

  • REQ-1: emission log includes owner and ISO-8601 expiry; lease env computed once — covered by updated unit tests.
  • REQ-2: merge commit uses feat(molecule): so the release job cuts a version bump.