Goal
Make scripts/release-artifact build reject ambiguous duplicate singleton options.
Background
The build parser accepts repeated --version, --output, and --commit flags and silently keeps the last value. For example, scripts/release-artifact build --version 2.0.0 --version 2.0.0 --output DIR succeeds today, and differing values select the final version without warning. The guarded scripts/release command already rejects duplicate singleton options, so the two release entry points expose inconsistent CLI contracts.
Scope
- Track occurrence of each singleton build option and return usage status
2 on a duplicate, before repository or filesystem side effects.
- Keep missing-value and unknown-option diagnostics deterministic.
- Add focused tests for duplicate equal and differing values, including
--commit and --output.
- Document the singleton-option rule in the command usage or release-process documentation.
Acceptance Criteria
- Each of
--version, --output, and --commit is accepted at most once.
- Duplicate options fail with a clear diagnostic and do not create or modify an artifact directory.
- Existing valid builds and deterministic verification remain unchanged.
Validation
./tests/validate.sh
- Focused
tests/release-artifact.bats cases for duplicate options and no-side-effect behavior.
Non-Goals
- Changing release version grammar or publication behavior.
- Adding new release-artifact options.
Project Fields
- Status: Backlog
- Priority: P2
- Area: Packaging
- Initiative: Adoption Polish
- Size: S
- Milestone: v2.1.0
Agent Assignment
Goal
Make
scripts/release-artifact buildreject ambiguous duplicate singleton options.Background
The build parser accepts repeated
--version,--output, and--commitflags and silently keeps the last value. For example,scripts/release-artifact build --version 2.0.0 --version 2.0.0 --output DIRsucceeds today, and differing values select the final version without warning. The guardedscripts/releasecommand already rejects duplicate singleton options, so the two release entry points expose inconsistent CLI contracts.Scope
2on a duplicate, before repository or filesystem side effects.--commitand--output.Acceptance Criteria
--version,--output, and--commitis accepted at most once.Validation
./tests/validate.shtests/release-artifact.batscases for duplicate options and no-side-effect behavior.Non-Goals
Project Fields
Agent Assignment