chore: replace ambiguous Unicode characters across compose-scripts + bats tests (sister of #149) #150
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#150
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The phenomenon
Operator surfaced 2026-06-27: the same ambiguous-Unicode pattern that Forgejo's lint flags on
_release.yml+release.yml(#149) appears across the bash compose-scripts AND bats test files too. Neither bash nor bats is currently lint-flagged by Forgejo (their lint scope is workflow YAML), but the look-alike-character readability + consistency-with-#149 concern applies + the bats test assertions track the scripts' log output (so they must change in lockstep).Inventory
Compose-scripts (11 files, ~160 occurrences)
scripts/release-prep.shscripts/release-decide.shscripts/lib/fragments.shscripts/manifest-precheck.shscripts/lib/conventional-commits.shscripts/lib/config.shscripts/manifest-check.shscripts/draft-release.shscripts/lib/forgejo-api.shscripts/lib/changelog.shscripts/lib/semver.shBats tests (12 files, ~159 occurrences)
tests/release-decide.batstests/fragments.batstests/manifest-check.batstests/manifest-precheck.batstests/release-prep.batstests/draft-release.batstests/check-self-bootstrap.batstests/conventional-commits.batstests/changelog.batstests/semver.batstests/config.batstests/workflows.batsCombined total: ~319 occurrences
Unique characters present
Four characters beyond #149's set (em-dash, arrow, alpha, gamma, section):
—→αγ§×…∈≠Replacement scheme (extends #149)
—-(or--)→->αalphaγgamma§sectionorsec.×x(e.g., "3 retries x 5s")…...∈in(e.g., "x in {set}")≠!=ornot equalWhy bundle scripts + bats
The bats tests assert on log output from the scripts via
[[ "$output" == *"…"* ]]patterns. When a script'slog()line changes from"manifest update — idempotent skip"to"manifest update - idempotent skip", the corresponding bats assertion must change in lockstep. Splitting scripts + bats into separate PRs would mean the scripts' PR temporarily breaks bats; one PR keeps the lockstep consistent.Scope decisions worth noting
Scripts + bats only, not the comprehensive sweep
ADR docs + markdown comments + other repo content remain unchanged. The Greek-letter jargon (
path-α/path-γ) IS established naming from ADR-0007; replacing in scripts means switching topath-alpha/path-gammain code while leaving ADR docs using the original characters. The ADR-vs-code naming drift is the smallest cost; the alternative (sweep ADRs too) would be a much bigger PR.Log-output cosmetic changes
Bash
log()/printf/echolines containing these characters will change their runtime log output text. No behavioral change. Bats assertions tracking those strings will be updated in the same PR.Composition with #149 + #148
Implementation surface
What this PR does NOT do
Refs
chore: replace ambiguous Unicode characters across all compose-scripts (sister of #149)to chore: replace ambiguous Unicode characters across compose-scripts + bats tests (sister of #149)