theupdateframework / theupdateframework/rust-tuf
Cleaning up API surface before releasing 0.3.0
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 198
- Forks
- 39
- Avg merge
- 9h 19m
- Merged PRs (30d)
- 2
Description
We're getting close to releasing 0.3.0. Are there any other papercuts on the API surface we want to clean up before release? Here are some ideas:
-
MetadataPathandTargetPathown aString, but are mainly passed around as a reference. Should we instead replicate std::path::Path and use a dynamically sized type? Downside of this is that we'd have to useunsafein order to construct these values. - Should we create
client::ClientBuilderand move theclient::Configinto it? Then people who just want the default wouldn't have to deal with passing aroundConfig::default(). - The TUF spec refers to different formats as "POUFs". Should we rename
tuf::interchangetotuf::pouf, andtuf::interchange::Jsontotuf::pouf::Pouf1? - Should we get rid of the
HashAlgorithmenum, and use adyn HashAlgorithminstead? That might allow better customization of the hash algorithm type. - Should we drop support for the legacy
hash_key_algorithm? - The tuf::error::Error is a little messy. Is there a better way to clean it up?
- should tuf::verify::verify_signature be public?
- Change TargetsMetadata to store targets in a BTreeMap rather than a HashMap to make ordering stable.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Start by reviewing the listed API candidates: MetadataPath and TargetPath, client::Config, tuf::interchange, HashAlgorithm, tuf::error::Error, tuf::verify::verify_signature, and TargetsMetadata. Compare each proposal with the 0.3.0 release goals and the linked TUF and docs.rs references. Done requires a settled scope and decisions for the proposed API changes, not just an isolated edit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100