Validate release metadata object and field types before reading identity fields
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- json, python
- Domain
- build-system, release, testing-qa
Research direction
Start at verify_metadata() in tools/ci/release.py:47, where metadata is validated and identity fields are read. Add root and field type checks before calling .get() or performing identity operations, while preserving the existing source, version, digest, target, and revision checks. Run the verify_metadata() fixture with valid metadata and malformed roots and field types; done means invalid inputs produce actionable filename/field errors and cannot advance publication.
Written by the indexing model from the issue text.
Description
Problem
With all expected archive/checksum filenames present, a metadata JSON value of [] raises AttributeError: list object has no attribute get instead of a package validation error. Other malformed field types need equally direct diagnostics.
Starting point: tools/ci/release.py:47.
Validation
Audited canonical Wave 540728c2eb6cc12f5c69c3fb3fdb96e07ba059a4 (0.0.1-alpha-dev), whose tree matches the local checkout. Validation: Executed verify_metadata() fixture with all nine archive/checksum identities and non-object metadata. Executed compiler probes use the matching checkout-built compiler and std on Linux amd64 (Rust 1.89.0 / LLVM 21.1.8). Source/header or mocked checks are not native execution on another OS.
Scope
Validate the metadata object and field types before identity operations. Keep exact source/version/digest/target/revision requirements intact.
Related: #828. These links do not claim those broader or completed scopes are unfinished.
Completion criteria
- Reject array/null/scalar roots and wrongly typed identity fields with an actionable filename/field error.
- Valid metadata still satisfies every existing publication identity check.
- No malformed input can advance publication or weaken the gate.
This is a bounded, unassigned task with the starting point and focused checks above. Keep unrelated refactoring out of the change.
- Dominant language
- Rust
- Stars
- 56
- Forks
- 21
- Avg merge
- 7h 19m
- Merged PRs (30d)
- 61
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wavefnd/Wave
-
Validate CI command vectors before indexing Cargo subcommandsPossibly taken @amandeavor claimed this today. Openbug ci good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
build good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 67/100
rust-bitcoin/rust-bitcoin#7089 · 1 comment · 1 reaction ·
Maintainers usually reply within 2 days
-
area/tools bug session-analysis
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
[Bug]: Python OpenTelemetrySectionConfig has no file_sinksMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
NVIDIA/NeMo-Relay#1514 ·
Maintainers usually reply within 1 day
-
prompting proposal tool triaged
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
can1357/oh-my-pi#17041 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
nix-community/fenix#262 ·