Conversation
…0.2.0 Why Prepare the 0.2.0 release with semver-safe public enums and accurate documentation. Non-exhaustive enums allow adding variants in future minor releases without breaking downstream match arms. What - Add #[non_exhaustive] to AudexError, FrameData, KeyType, FLACErrorKind, StandardField, SkipReason, and TrueAudioTags - Fix doc comments across ~50 files: correct spec values (genre counts, sample rates, bit depths, channel counts, byte offsets), fix broken code examples, and clarify method behavior - Bump version to 0.2.0 in Cargo.toml, wasm/Cargo.toml, and README.md - Add cargo-semver-checks CI job - Add CHANGELOG entry for 0.2.0
Why - Redundant fully-qualified paths (crate::diff::, crate::AudexError::) clutter doc comments when Rust resolves them implicitly - MAX_IN_MEMORY_WRITER_FILE needed an explicit path for correct resolution from the module-level doc block What - diff.rs: drop crate::diff:: prefixes on same-module links - id3/mod.rs: drop crate:: prefix on AudexError link - limits.rs: add explicit crate::limits:: path for cross-scope link
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Public enums shipped in 0.1.0 without
#[non_exhaustive], meaning any new variant added in a future release would be a semver-breaking change for downstream crates using exhaustivematch. Additionally, doc comments across the codebase contained inaccurate spec values, broken code examples, and misleading method descriptions that could confuse consumers of the library.What
[api]— Non-exhaustive enums#[non_exhaustive]toAudexError,FrameData,KeyType,FLACErrorKind,StandardField,SkipReason, andTrueAudioTags[docs]— Doc comment fixes (~50 files)id3::mod,replaygain,flac,easymp4,musepack,tak,mp3::fileID3::size()(excludes 10-byte header),ID3::version()tuple semantics,DiffOptions::normalize_custom_keysscope,TagMap::is_empty()(includes pictures), APEv2 key case-insensitivity, padding behavior,add_tags()trait vs inherent method differencesid3::versiondoc comments (major_version not minor_version)[ci]— Semver checkingcargo-semver-checksjob to CI workflow to catch future semver violations[release]— Version bumpaudexandaudex-wasmfrom 0.1.0 to 0.2.0