Releases: aaronsb/cdreader
Release list
v0.4.0-rc1 (pre-release)
Pre-release. Everything here passes 202 unit tests on Python 3.9/3.11/3.13,
but none of it has been run against a real optical drive. The test suite is
deliberately offline and hardware-free, so it cannot tell you whether ripping
still works. Please shake this out before it becomes v0.4.0.
What's new
Multi-disc albums (#12) — every disc lands in one album directory with the disc
number prefixed onto the track number (2-01 - Nicotine.flac), and DISCNUMBER /
DISCTOTAL / DISCSUBTITLE are written to every file. This follows MusicBrainz
Picard's default naming and keeps a release as one album in Plex, Jellyfin and
Navidrome. Single-disc output is byte-for-byte unchanged.
Hand-editable metadata (#13) — every rip now writes metadata.toml beside the
FLACs, pre-filled with whatever was known:
cdripper apply <album-dir> # re-tag, rename, and relocate from the file
cdripper toml <album-dir> # regenerate it from FLACs ripped before this existedApplying re-tags, renames files whose titles changed, rewrites album_info.txt and
the playlist, and moves the directory when the artist or album changed — so an
unmatched disc goes from Unknown Artist/xK9fL2mQpR7-/01 - Track 01.flac to
The Weather Station/Live at Massey Hall/01 - Robber.flac in one command. Extra
fields for recordings MusicBrainz doesn't carry: performer, engineer,
recorded, venue, genre, notes. Nothing is uploaded anywhere.
Readable multi-drive logs (#11) — short dimmed timestamps, no redundant [srN]
inside a panel already titled srN, hanging indents on wrapped lines, and colour
for failures and completions. At two drives on a 122-column terminal that's 15
entries visible where 11 fit before.
Project tooling — make dev/test/lint/check/once/tag, 202 unit tests, and CI on
Python 3.9/3.11/3.13.
Please test
pipx install --force git+https://github.com/aaronsb/cdreader.git@v0.4.0-rc1
cdripper --version # 0.4.0rc1- an ordinary single-disc album — output should be identical to v0.3.2
- a multi-disc set — both discs in one folder,
1-NN/2-NN, one playlist spanning both - a disc MusicBrainz doesn't know — edit its
metadata.toml, runcdripper apply, check it renames and relocates - several drives at once — the log columns are the point of #11
Bare cdripper is unchanged; the new subcommands are optional.
What's Changed
- fix: handle existing FLAC files when re-ripping an album by @aaronsb in #7
- feat: inhibit system sleep while ripping by @aaronsb in #8
- feat: per-drive log panels in TUI by @aaronsb in #9
- fix: auto-detect drives by default, harden multi-drive resilience by @aaronsb in #10
- chore: add Makefile, unit tests, and CI by @turbospark in #14
- docs: add CLAUDE.md, CONTRIBUTING.md, and workflow skills by @turbospark in #15
- fix: make per-drive log columns readable by @turbospark in #16
- feat: handle multi-disc albums by @turbospark in #17
- feat: hand-editable metadata sidecar with apply round trip by @turbospark in #18
- chore: bump CI actions off deprecated Node 20 by @turbospark in #19
New Contributors
- @aaronsb made their first contribution in #7
- @turbospark made their first contribution in #14
Full Changelog: v0.3.2...v0.4.0-rc1
v0.3.2 - TUI polish
Fixed
- Progress bar now fills the full column width (12 chars instead of 10)
- Album column uses full terminal width instead of truncating at 40 characters
Upgrade
pipx install git+https://github.com/aaronsb/cdreader.git --forceOr re-run the installer:
curl -fsSL https://raw.githubusercontent.com/aaronsb/cdreader/main/setup.sh | bash