Package: fix release workflow, exclude plugin tests, include all files from MANIFEST.in (#5536)

Fixes #5526
Fixes #5531
Fixes #5539

### Package contents

See #5526 where a package maintainer fails running plugin tests. I found that before
introduction of Poetry `beets` never bundled plugin tests, therefore I now excluded them.

I also remembered that previously `MANIFEST.in` file was used to specify which files get
included in the package, so I mirrored the same configuration. This includes zsh
completion in `extra/_beet` which fixes #5531.

I removed `MANIFEST.in` file since it has no use anymore.

### Release workflow

The last release workflow run failed to pick up the commit with the version updates and
tagged an outdated commit (#5539). I simplified the workflow to create the tag at the same
time the version upgrade is committed.
This commit is contained in:
Šarūnas Nejus 2024-12-10 05:58:48 +00:00 committed by GitHub
commit 3cc129b893
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 26 additions and 55 deletions

View file

@ -10,10 +10,11 @@ on:
env:
PYTHON_VERSION: 3.8
NEW_VERSION: ${{ inputs.version }}
NEW_TAG: v${{ inputs.version }}
jobs:
increment-version:
name: Bump project version and commit it
name: Bump version, commit and create tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@ -28,13 +29,14 @@ jobs:
run: poetry install --only=release
- name: Bump project version
id: script
run: poe bump "${{ env.NEW_VERSION }}"
- uses: EndBug/add-and-commit@v9
name: Commit the changes
id: commit_and_tag
name: Commit the changes and create tag
with:
message: "Increment version to ${{ env.NEW_VERSION }}"
tag: "${{ env.NEW_TAG }} --force"
build:
name: Get changelog and build the distribution package
@ -45,7 +47,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
ref: master
ref: ${{ env.NEW_TAG }}
- name: Install Python tools
uses: BrandonLWhite/pipx-install-action@v0.1.1
@ -103,17 +105,6 @@ jobs:
env:
CHANGELOG: ${{ needs.build.outputs.changelog }}
steps:
- uses: actions/checkout@v4
with:
ref: master
- name: Tag the commit
id: tag_version
uses: mathieudutour/github-tag-action@v6.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ env.NEW_VERSION }}
- name: Download all the dists
uses: actions/download-artifact@v4
with:
@ -123,8 +114,6 @@ jobs:
- name: Create a GitHub release
id: make_release
uses: ncipollo/release-action@v1
env:
NEW_TAG: ${{ steps.tag_version.outputs.new_tag }}
with:
tag: ${{ env.NEW_TAG }}
name: Release ${{ env.NEW_TAG }}
@ -136,4 +125,4 @@ jobs:
with:
access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
url: ${{ secrets.MASTODON_URL }}
message: "Version ${{ steps.tag_version.outputs.new_tag }} of beets has been released! Check out all of the new changes at ${{ steps.create_release.outputs.html_url }}"
message: "Version ${{ env.NEW_TAG }} of beets has been released! Check out all of the new changes at ${{ steps.make_release.outputs.html_url }}"

View file

@ -1,36 +0,0 @@
# Include tests (but avoid including *.pyc, etc.)
prune test
recursive-include test/rsrc *
recursive-exclude test/rsrc *.pyc
recursive-exclude test/rsrc *.pyo
include test/*.py
# Include relevant text files.
include LICENSE README.rst
# And generated manpages.
include man/beet.1
include man/beetsconfig.5
# Include the Sphinx documentation.
recursive-include docs *.rst *.py Makefile *.png
prune docs/_build
# Resources for web plugin.
recursive-include beetsplug/web/templates *
recursive-include beetsplug/web/static *
# And for the lastgenre plugin.
include beetsplug/lastgenre/genres.txt
include beetsplug/lastgenre/genres-tree.yaml
# Exclude junk.
global-exclude .DS_Store
# Include default config
include beets/config_default.yaml
# Shell completion template
include beets/ui/completion_base.sh
# Include extra bits
recursive-include extra *

View file

@ -7,14 +7,25 @@ Unreleased
----------
New features:
Bug fixes:
* :doc:`plugins/lyrics`: LRCLib will fallback to plain lyrics if synced lyrics
are not found and `synced` flag is set to `yes`.
* Synchronise files included in the source distribution with what we used to
have before the introduction of Poetry.
:bug:`5531`
:bug:`5526`
For packagers:
Other changes:
* Release workflow: fix the issue where the new release tag is created for the
wrong (outdated) commit. Now the tag is created in the same workflow step
right after committing the version update.
:bug:`5539`
2.2.0 (December 02, 2024)
-------------------------

View file

@ -26,7 +26,14 @@ packages = [
{ include = "beets" },
{ include = "beetsplug" },
]
include = ["test", "man/**/*"] # extra files to include in the sdist
include = [ # extra files to include in the sdist
"docs",
"extra",
"man/**/*",
"test/*.py",
"test/rsrc/**/*",
]
exclude = ["docs/_build", "docs/modd.conf", "docs/**/*.css"]
[tool.poetry.urls]
Changelog = "https://github.com/beetbox/beets/blob/master/docs/changelog.rst"