linkml / prefixmaps

Semantic prefix map registry
https://linkml.io/prefixmaps/
Apache License 2.0
10 stars 3 forks source link

chore: add support for python 3.12 #53

Closed Silvanoc closed 7 months ago

Silvanoc commented 8 months ago

Upgrading greenlet version to have support for Python 3.12. See here for more information: https://github.com/python-greenlet/greenlet/issues/323

⚠️ WARNING! This PR is removing support for Python 2.7, 3.5 and 3.6.

Closes #45

Silvanoc commented 8 months ago

Did you intend to only update the lock file? Without changes in pyproject.toml these could be overwritten in future PRs

The dependency on greenlet is not being explicitly declared in the pyprojects.toml file, that's why I've only updated the lock file.

I would say, that either we add a test for Python v3.12 or we declare that dependency in the pyprojects.toml file to avoid that the change can get reverted in the future.

I'm not sure either if the demand for this PR really exists. I've only stumbled upon it and thought it would make sense to add support for the latest Python version.

Silvanoc commented 7 months ago

Looking at the tests I can tell that no validation is taking place for Python 2.7, 3.5 and 3.6 anyway. So removing support for those Python releases is probably not so bad.

Silvanoc commented 7 months ago

Trying out the testing approach proposed here, marking as draft until tests run for Python v.3.12.

Silvanoc commented 7 months ago

Following draft PRs on linkml-runtime and linkml will help distributing the support for Python 3.12 to those components:

Silvanoc commented 7 months ago

Thanks to #54 from @cmungall I got the solution to the issue that was blocking this PR. I've integrated his commit (to keep attribution), but updated the Poetry lock accordingly extending his commit.

It's now ready for integration, removing the 'Draft' marker and retriggering review.

Silvanoc commented 7 months ago

@sierra-moxon we have already 3 prefixmaps PRs with some overlapping:

It would be meaningful to merge at least one of them and then reconsider if something is left over that should be covered by a 2nd one. #54 is in any case covered by #53 and #55.

I personally would go for this one (not only because it's mine, but because it validates support for Python 3.12 and has a "green" pipeline), rebasing #55 and reconsidering if what's left is needed or not.