Skip to content

Releases: Harmonese/pylrclib

v0.6.1

Choose a tag to compare

@Harmonese Harmonese released this 22 Aug 12:22

[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-iterations and PYLRCLIB_MAX_POW_ITERATIONS for 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 LICENSE file.

Fixed

  • Handled publish proof-of-work failures without surfacing a traceback, allowing the existing publish retry flow to continue.
  • Fixed existing mypy pylrclib issues so the documented release checks pass.
  • Renamed the database dump download message placeholder to avoid a get_text() keyword conflict.

v0.6.0

Choose a tag to compare

@Harmonese Harmonese released this 24 May 07:46

[0.6.0] - 2026-05-24

Added

  • Added pylrclib dumps for 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

Choose a tag to compare

@Harmonese Harmonese released this 22 May 16:21

[0.5.0] - 2026-05-23

Added

  • Added pylrclib flag for reporting incorrect LRCLIB records by id.

Changed

  • Skipped the deprecated LRCLIB /api/get-cached lookup 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

Choose a tag to compare

@Harmonese Harmonese released this 22 May 14:11

[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 coverage to the development extra so the documented coverage commands work after pip 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-marker to both cleanse and upload-time up --cleanse workflows.

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 --cleanse from a compatibility flag into real upload-time behavior: it now controls in-memory LRC normalization, while --cleanse-write writes normalized content back to matched files before upload.
  • Changed local LRC loading so uploads preserve raw .lrc content unless --cleanse, -m/--match, or -d/--default enables cleansing.
  • Updated cleanse and up help text in English and Chinese to document cleanse keep flags and upload-time cleansing behavior.
  • Stopped ignoring the tests/ directory and ignore local .coverage output during development.

Fixed

  • Fixed doctor's missing Path import exposed by ruff.
  • Removed unused imports from API, lyrics writer, loader, and config tests so ruff check . passes cleanly.

v0.4.7

Choose a tag to compare

@Harmonese Harmonese released this 16 May 13:53

[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_pow infinite loop when the server returned an unsolvable proof-of-work challenge. Added a 2,000,000 iteration cap that raises PoWError instead of hanging forever.
  • parse_retry_after had no upper bound on the returned delay, so a malformed Retry-After header could cause arbitrarily long sleeps. Capped at 60 seconds.
  • resolve_int and resolve_optional_int would crash with ValueError when the user passed a non-numeric CLI argument (e.g. --preview-lines abc). They now fall back to the default / None respectively.
  • doctor command double-counted lyric files when lyrics_dir, plain_dir, and synced_dir resolved to the same directory.

v0.4.6

Choose a tag to compare

@Harmonese Harmonese released this 15 May 17:38

[0.4.6] - 2026-05-16

Changed

  • __version__ now reads from pyproject.toml at runtime, making it the single source of truth for the version number.

v0.4.5

Choose a tag to compare

@Harmonese Harmonese released this 15 May 17:14

[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 / --language flag with auto, en_US, zh_CN options. Auto-detects from $LANG environment variable.
  • Environment variable PYLRCLIB_LANG to override locale without CLI flags.

v0.4.4

Choose a tag to compare

@Harmonese Harmonese released this 14 Apr 04:43

[0.4.4] - 2026-04-14

Fixed

  • Fixed PyPI tag

v0.4.3

Choose a tag to compare

@Harmonese Harmonese released this 13 Apr 09:14

[0.4.3] - 2026-04-13

Fixed

  • Bugs that causes failure in PyPI distribution

v0.4.2

Choose a tag to compare

@Harmonese Harmonese released this 13 Apr 09:04

[0.4.2] - 2026-04-13

Added

  • Verbose --help message