Skip to content

Latest commit

 

History

History
29 lines (22 loc) · 1.72 KB

File metadata and controls

29 lines (22 loc) · 1.72 KB

Development Setup

  1. Install Uv

  2. Install the project dependencies: uv sync --locked --all-extras --dev

  3. To confirm that you can run Beets in its own isolated environment with Beets-audible from source: uv run beet -v version

    If audible is not in the list of plugins shown, add it to the list of plugins in the Beets configuration file. See the readme for instructions.

Warning: installing the beets-copyartifacts3 plugin in development breaks the ability to run Beets-audible from source, I'm unsure why this only happens in development. I've seen this happening with other plugins, so this isn't specific to beets-audible.

Release Process

Releases are automated from git tags and no longer use manual uv publish.

  1. Update CHANGELOG.md with a new section whose heading matches the release tag, for example ## v1.3.0 (2026-02-08).
  2. Bump version in pyproject.toml to the matching PEP 440 version, for example 1.3.0.
  3. Commit the version/changelog changes to main.
  4. Create and push an annotated tag from that commit:
    • git tag -a v1.3.0 -m "v1.3.0"
    • git push origin v1.3.0
  5. The Release GitHub Actions workflow will:
    • run lint, tests, and build
    • publish to PyPI using trusted publishing (OIDC)
    • create a GitHub Release for the tag
    • use the matching CHANGELOG.md section as release narrative text
    • append GitHub autogenerated release notes (grouped by .github/release.yml)
    • skip duplicate uploads if the version already exists on PyPI (useful for historical tags)

If a tag does not have a corresponding changelog section (for example, tag v1.3.2 without a ## v1.3.2 (...) section), the release workflow fails when generating notes.