Releases: Harmonese/pylrclib
Releases · Harmonese/pylrclib
Release list
v0.6.1
[0.6.1] - 2026-08-22
Added
- Added Python 3.13 and 3.14 package classifiers after verifying the test suite on Python 3.14.
- Added
--max-pow-iterationsandPYLRCLIB_MAX_POW_ITERATIONSfor upload and flag publish challenges.
Changed
- Increased the default LRCLIB publish proof-of-work nonce attempts from 2,000,000 to 10,000,000.
- Added project-local Ruff rule selection and PyYAML typing stubs so documented development checks are reproducible in fresh environments.
- Updated package license metadata to the current setuptools SPDX form while preserving the bundled
LICENSEfile.
Fixed
- Handled publish proof-of-work failures without surfacing a traceback, allowing the existing publish retry flow to continue.
- Fixed existing
mypy pylrclibissues so the documented release checks pass. - Renamed the database dump download message placeholder to avoid a
get_text()keyword conflict.
v0.6.0
[0.6.0] - 2026-05-24
Added
- Added
pylrclib dumpsfor listing public LRCLIB database dumps, emitting dump metadata as JSON, and downloading selected dumps. - Added structured LRCLIB API errors that preserve HTTP status, API error name, message, and response text.
Changed
- Improved LRCLIB error logging so HTTP failures surface the API-provided error message when available.
- Stream database dump downloads through a temporary file before replacing the final target.
v0.5.0
[0.5.0] - 2026-05-23
Added
- Added
pylrclib flagfor reporting incorrect LRCLIB records by id.
Changed
- Skipped the deprecated LRCLIB
/api/get-cachedlookup in upload workflows after current compatibility testing showed it returns 404. - Published instrumental records with LRCLIB's current
[au: instrumental]synced marker.
Fixed
- Omitted missing optional LRCLIB lookup parameters instead of sending
duration=0, which current LRCLIB rejects.
v0.4.8
[0.4.8] - 2026-05-22
Added
- Added a repository test suite covering CLI command entry points, upload and download workflows, LRCLIB client/publish retry behavior, lyric parsing and matching, metadata parsing, filesystem helpers, and interactive prompts.
- Added
coverageto the development extra so the documented coverage commands work afterpip install -e ".[dev]". - Added project logo assets under
docs/assets/and embedded the logo lockup in the README. - Added PyPI, Python version, and license badges to the README.
- Added configurable cleanse rules via
CleanseOptions. - Added
--keep-headers,--keep-credits,--keep-translations, and--keep-instrumental-markerto bothcleanseand upload-timeup --cleanseworkflows.
Changed
- Reworked the README into a user-facing guide with installation, quick start, command workflows, YAML metadata, environment variables, language settings, and development checks.
- Updated the README introduction so the first sentence matches the PyPI project description.
- Changed
up --cleansefrom a compatibility flag into real upload-time behavior: it now controls in-memory LRC normalization, while--cleanse-writewrites normalized content back to matched files before upload. - Changed local LRC loading so uploads preserve raw
.lrccontent unless--cleanse,-m/--match, or-d/--defaultenables cleansing. - Updated
cleanseanduphelp text in English and Chinese to document cleanse keep flags and upload-time cleansing behavior. - Stopped ignoring the
tests/directory and ignore local.coverageoutput during development.
Fixed
- Fixed
doctor's missingPathimport exposed byruff. - Removed unused imports from API, lyrics writer, loader, and config tests so
ruff check .passes cleanly.
v0.4.7
[0.4.7] - 2026-05-16
Fixed
- LRC parser rejected timestamps with fewer than 2 decimal digits (e.g.
[00:12.5]or[00:12]). The initial timestamp guard now uses the same relaxed regex as the per-line parser. solve_powinfinite loop when the server returned an unsolvable proof-of-work challenge. Added a 2,000,000 iteration cap that raisesPoWErrorinstead of hanging forever.parse_retry_afterhad no upper bound on the returned delay, so a malformedRetry-Afterheader could cause arbitrarily long sleeps. Capped at 60 seconds.resolve_intandresolve_optional_intwould crash withValueErrorwhen the user passed a non-numeric CLI argument (e.g.--preview-lines abc). They now fall back to the default /Nonerespectively.doctorcommand double-counted lyric files whenlyrics_dir,plain_dir, andsynced_dirresolved to the same directory.
v0.4.6
v0.4.5
[0.4.5] - 2026-05-16
Added
- Chinese (zh_CN) i18n support for all CLI output: help text, prompts, log messages, preview labels, status strings, validate errors, and argparse built-in strings.
--lang/--languageflag withauto,en_US,zh_CNoptions. Auto-detects from$LANGenvironment variable.- Environment variable
PYLRCLIB_LANGto override locale without CLI flags.