-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Beets: Update to v2.3.1 and migrate to Python 3.12 #6447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
c01a32b
to
5200a17
Compare
I believe issue might be solved 🚀 |
Looking at the code, you should really not enable |
I’m open to any workable approach for bundling llvmlite—it’s needed by numba, which in turn is required by librosa and resampy. These wheels are essential for the Autobpm plugin. If integrating LLVM proves impossible, we’ll limit the update to the other dependencies noted in #6421 (comment) and flag the Autobpm plugin as unsupported for this release. |
It's not impossible... it's just something that will take a hell a lot of time to figure out. It requires the exact subset of LLVM which is a massive beast to play with. Last time I played with that for OpenCL acceleration it took me months to figure that out. I suggest considering investigating that into an independent PR later-on and indeed flag Autobpm plugin as unsupported for this release. |
Agreed, that would shrink our
As you will note above, wheels like EDIT: I'll push a commit to update the requirements files shortly so we are working with the same objective. |
- install cross wheels as prebuilt whl files (to install pygobject without pycairo dependency) - install pure python wheels with requirements-pure.txt
@mreid-tt latest version installs without pycairo.
you can not add discogs plugin in the command above because it requires authentication:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should remove support for the following plugins
and their associated dependencies and requirements:
This requires clear documentation of the requirements and dependencies for each plugin supported by the beets package.
We provide beets as a CLI tool without a service.
Therefore, all plugins that provide a service should be removed:
- aura (server implementation of the AURA specification using the Flask framework)
- bpd (runs as a daemon and implements the MPD protocol)
- web (an experimental web-based GUI for beets)
We could create separate packages for each of these plugins, but aura and web are still experimental.
Integration with DSM (port, firewall rules, service users) requires separate server packages.
Other plugins whose support should be removed:
- mpdstats
This plugin must run continuously (like a service) to collect statistics. - thumbnails
This plugin creates thumbnails for Linux desktop systems (it works on freedesktop.org-compatible file managers like Nautilus or Thunar), so it's not useful for DSM.
Validation
We need to verify that the chroma plugin works with the installed chromaprint package.
This was requested at #2927.
Update Documentation
Update https://github.com/SynoCommunity/spksrc/wiki/FAQ-beets and document the supported (working) plugins.
Should we consider re-enabling the Cairo dependencies and corresponding tests in the PyGObject build? That way, if the resulting wheel is reused by other packages in the future, it will be fully featured rather than the minimal version we currently produce (which lacks the “Cairo integration” layer).
While the plugin requires authentication, I’ve already tested it successfully. Registering for a free Discogs account is trivial, so it doesn’t present a meaningful barrier to verification.
I’ll prepare an updated
Is there a specific test case you'd like to run for the |
@hgy59, I disagree with your approach to exclude python/pycairo dependency (again). This adds custom code to the |
I agree with pycairo for pygobject (even it enlarges the package needlessly). BUT I don't agree with avoiding "custom code" in service setup just for the sake of a "standard". |
I have no problem with the discog plugin. When it asks for the authentication code the plugin obviously works. |
@mreid-tt I guess you will add "autobpm" to unsupported plugins - or do you still plan to add wheels for numba, scikit_learn, scipy, llvmlite, ...? |
I think we may have different perspectives on this, which is understandable. For my part, I advocate for maintaining standardized code because it helps keep our development process as lightweight and accessible as possible. It reduces the length and complexity of our wiki pages on these topics and makes it significantly easier for new contributors to get up to speed. This was the core motivation behind standardizing our That said, I do agree with your point regarding how our installer currently defaults to retrieving wheels from the index rather than using what’s already included in the package. That behavior does feel a bit outdated, and I think it’s worth re-evaluating. Perhaps we should reverse the logic: rather than requiring a Makefile flag to include the bundled wheels, we make that the default and use a flag to fall back to the index when necessary. I know the original rationale was to reduce server storage, but I agree that in today’s context, installation speed is more valuable. With that in mind, my preference is to stick with a standardized approach and adjust our defaults so the change benefits all packages going forward. |
@mreid-tt I already evaluated plugin related requirements (it does not mention the autobpm plugin yet). |
This reverts commit d143bf4.
In the linked request, there was an issue with Since I don't know beets and chromaprint details, I can't provide a test case. |
Thanks for this analysis. Your comments have been integrated into the last commit. |
Done. |
I believe I was able to test this successfully with the following:
There were expected failures due to non-configured plugins: lyrics, plexupdate, kodi, emby. There was one plugin that had timeouts contacting its server (Connection to oauth-api.beatport.com timed out): beatport. However, for chroma, with Chromaprint installed we are able to see that songs are fingerprinted successfully:
|
@hgy59, I believe the package is ready to go::
|
Requested changes are done.
Additional verificatation for obsolete requirements pending.
@hgy59, I'm not sure what else is to be done here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
validated on DS115j (armv7-7.1)
just validated that no obsolete requirement exists (good work!). |
Wow you've been busy over the weekend, good job! |
Description
This PR includes the following:
Fixes #
Checklist
all-supported
completed successfullyType of change