Skip to content

2.0.0

Choose a tag to compare

@marcomc marcomc released this 18 Mar 23:16
· 67 commits to main since this release

[2.0.0] - 2026-03-10 - Python Package Port

Changed

  • Ported the project from a single Bash script to a Python package with the
    raiplaysound-cli entry point, preserving the list and download
    workflows, the existing dot-config file format, and the same download/output
    directories.
  • Replaced the custom ANSI progress renderer with a Rich-based live transfer
    display for episode downloads.
  • Updated the repository workflow, Makefile, and agent guidance for a
    Python-only architecture.
  • Split the Python implementation into focused modules, added stale-lock
    recovery for interrupted download runs, corrected metadata cache validation,
    and aligned the overall Rich progress bar with episode-count semantics.
  • Standardized Python development checks around ruff, black, and mypy.
  • Changed the Makefile install workflow to match cligoo: standalone installs
    now live under ~/.local/share/raiplaysound-cli/venv with the CLI exposed at
    ~/.local/bin/raiplaysound-cli, while install-dev points that same command
    at the project .venv for editable development.
  • Tightened the Makefile workflow further toward cligoo by moving dev setup
    to pip install -e ".[dev]", adding make run, and making prerequisite
    checks validate Python 3.10+ explicitly.
  • Added an explicit README disclaimer clarifying that the project is
    independent from RAI and RaiPlaySound and that station/program names remain
    the property of their respective owners.
  • Avoided creating download directories during list-only commands.
  • Made RSS and playlist generation fall back to filename-derived metadata when
    multiple cached episodes share the same publication date, avoiding
    misassigned titles and GUIDs.
  • Expanded the default Markdown lint target so documentation under docs/ is
    validated by make lint.
  • Clarified the RSS documentation and sample config so RSS_BASE_URL is
    documented as a direct file-serving base URL, with generic valid and invalid
    URL shapes instead of provider-specific examples.
  • Added an RSS validation step to the testing guide so users and agents can
    confirm generated enclosure URLs resolve correctly.

Added

  • Added a packaged Python CLI implementation under src/raiplaysound_cli/.
  • Added a Python test suite covering config parsing and core selection and
    normalization helpers.
  • Expanded regression coverage with tests for CLI entrypoints, RSS/playlist
    generation, downloader progress parsing, and mocked RaiPlaySound discovery
    flows.
  • Added docs/TESTING.md to document the test suite and validation workflow
    for both users and AI agents.

Removed

  • Removed the legacy Bash entrypoint and the old Bash-only project constraints.