Bug Report BR-065 - RW Step 12.5 GitHub release parser fails on v-prefixed version
Status: OPEN
Priority: HIGH
Severity: MEDIUM - non-blocking RW completion, but GitHub Release publication is skipped due to parser failure.
Created: 2026-04-13
Last updated: 2026-04-13 (implementation complete in working tree: boundary normalization + deterministic diagnostics + regression tests)
Version: N/A
Code: BR-065
Implementing Task: E6:S07:T113
Problem Statement
RW Step 12.5 (create_github_release.py) fails with:
invalid literal for int() with base 10: 'v0'
when processing a v-prefixed version/tag input. The RW run correctly completes as non-blocking, but the GitHub Release itself is not created/updated.
Expected Behavior
Step 12.5 should accept canonical v-prefixed release inputs (for both SemVer and internal version context) and either:
- create/update the GitHub Release successfully, or
- fail with deterministic diagnostics that point to the exact malformed field.
Observed Behavior
- Step 12.5 exits with parse error:
invalid literal for int() with base 10: 'v0'
- RW otherwise completes and pushes commit/tags.
- GitHub Release publication remains incomplete, requiring manual follow-up.
Reproduction
- Run RW with Step 12.5 enabled for a normal tagged release.
- Observe
create_github_release.pyexecution. - Receive parser exception for
v-prefixed value.
Proposed Resolution
- Harden version parsing in
create_github_release.pyto normalize optional leadingvbefore numeric conversion. - Add unit tests for both prefixed and non-prefixed values.
- Improve error messages to identify the exact argument/value that failed parsing.
- Keep Step 12.5 non-blocking behavior, but emit stronger remediation guidance.
Implementation Outcome (2026-04-13)
- Added
normalize_internal_version(...)increate_github_release.pyand applied it beforeget_rw_tag_info(...)calls. - Accepted formats now include:
0.EPIC.STORY.TASK+BUILDv0.EPIC.STORY.TASK+BUILD
- Added deterministic validation errors for malformed values (argument-aware, expected format examples included).
- Added targeted parser regression tests:
packages/frameworks/workflow mgt/scripts/version/test_create_github_release_parsing.py
Verification Evidence
python -m pytest "packages/frameworks/workflow mgt/scripts/version/test_create_github_release_parsing.py" -q->5 passed- Manual regression check:
python "packages/frameworks/workflow mgt/scripts/create_github_release.py" --semver-tag "v0.4.733+1" --internal-version "v0.6.7.113+1" ... --token "dummy"- Result no longer contains
invalid literal for int() with base 10: 'v0'; script proceeds to expected GitHub auth failure path (401 Bad credentialswith dummy token).
Related
- FR-041
- E6:S07:T103
- IPW-E6S07T113
packages/frameworks/workflow mgt/scripts/create_github_release.py