Repository navigation
Run on Python 3.12, 3.13 and 3.14 - #256
Draft
maxipavlovic wants to merge 4 commits into
Draft
maxipavlovic wants to merge 4 commits into
maxipavlovic wants to merge 4 commits into
Conversation
Since Python 3.12, importlib.metadata.entry_points() no longer returns a dict, so entry_points().get(group) raised AttributeError and every ccli command failed, --help included. Select the group instead, which works on Python 3.10 and newer. Also drop the unused distutils import: distutils is gone in Python 3.12 and only resolved through setuptools' shim. A new test reads the plugins that are actually installed, so a change like this one can't go unnoticed again.
ccli --version asks Connect and PyPI for the latest versions without a timeout, so a slow network made it hang. The check is best effort and already ignores request errors, so a timeout now ends it quietly.
Python 3.14 removed ast.Str, so flake8 could not load two plugins and the extension project tests failed: - flake8-string-format moves to 0.4, which supports Python 3.14. - flake8-future-import goes. Its last release is from 2022, and its checks did nothing here: they are on the ignore list, and code that requires Python 3.10 needs no __future__ imports. No other locked version changes.
CI tested Python 3.10 on Linux only, so the Python 3.12 failure above went unnoticed while the package said it supports 3.10 to 3.14. Test every supported version on Linux, and the oldest and newest on macOS, where the PDF reports need Pango from Homebrew. The classifiers listed Python 3.8 and 3.9, which the package does not support. Poetry now derives them from the python range.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
entry_points(group=...)instead of the dict API that Python 3.12 removed. The unuseddistutilsimport goes too.ccli --versiongives up after 5 seconds.Why
41.0 says it supports Python 3.10–3.14, but on 3.12 and newer every command,
--helpincluded, fails withAttributeError: 'EntryPoints' object has no attribute 'get'. pip and uv install it there without a warning, and CI only tested 3.10. It also keeps the Homebrew formula on python@3.10, which Homebrew disables on 1 Oct 2027.Key decisions
ResourceSetraisesTypeError: 'ResourceIterator' object is not iterable. Once it's released, I'll bump the lock here and mark this ready.How it worked before / after