Skip to content
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

Update build system and rebuild with numpy >= 2.0 #611

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

cvanelteren
Copy link

Hi there,

I made some changes to the build chain and update the numpy dependencies. The tests pass both here as in our package Ultraplot. Let me know if you wish me to comment on these changes.
Sincerely,
C

@cvanelteren
Copy link
Author

The PR would address #604 #608 #609

@cvanelteren
Copy link
Author

Perhaps one of the maintainers can comment on the build failure. Pinging @kant 🔔

@molinav
Copy link
Member

molinav commented Jan 24, 2025

@cvanelteren The error is coming because of the deprecated versions used in all the artifacts actions; v1 was needed because of using pleistocenic base images to still build with the manylinux1 tag.

I appreciate all your efforts in this PR, and I think it is actually a good moment to start thinking of basemap 2.0.0 and bring all the breaking changes that I was avoiding for the purpose of keeping the legacy things working. Some items I can list fast right now:

  • Moving to "Python >= 3.X", with X to be defined (reason for 3.7? better 3.8 because of the Cython 3.1 target versions? 3.9 to stay with the non-EOL versions?
  • Moving from manylinux1 to manylinux_2_17 for the GNU/Linux wheels. This already allows the use of not so old base images in the GitHub Actions, and probably v4 of the artifacts actions may work as is.
  • Start relying on implicit namespace packages (no empty __init__.py files). There is a PR from long ago still open.
  • Migrate everything in setup.py and setup.cfg to pyproject.toml. Is this even possible, considering that GEOS needs to be built? I do not have the knowledge but I see that you define something about that in the pyproject.toml of this PR.

My only concern with the current PR is that it makes several big changes all at once, I would be in favour of addressing each of the current problems one by one in separate PR. I think that, as of today, the develop branch should become the branch targeting a major release basemap 2.0.0. I will look at the latest commit and create a support-1.x branch, so that I can still keep my legacy support without disturbing the majority of the basemap users, because it really is a problem for you right now: the latest basemap patch release from my side was almost 1 year ago, and there is still no support for Python 3.13 and numpy >= 2.0.

@DWesl
Copy link
Contributor

DWesl commented Jan 24, 2025

  • Migrate everything in setup.py and setup.cfg to pyproject.toml. Is this even possible, considering that GEOS needs to be built?

It is not currently possible to create extension modules in pyproject.toml, but all the other metadata should be there. I think there's a PR over on PyPA/setuptools about what extension modules in pyproject.toml should look like.

@cvanelteren
Copy link
Author

@molinav no worries if this PR is trashed ;-). I wasn't keeping track of the main. I am happy to chip in to work on stuff. I don't have full overview of the pipeline but noticed some verbose and missing stuff in pyproject.toml (hence this PR).

I agree that this is perhaps a bit too rushed and fast. We could split this PR up by first tackling pyproject.toml (to move everything there, and then update the dependency for higher python versions (say 3.9 and up?). Let me know what you think.

To answer one of you questions:

Migrate everything in setup.py and setup.cfg to pyproject.toml. Is this even possible, considering that GEOS needs to be built? I do not have the knowledge but I see that you define something about that in the pyproject.toml of this PR.

Yes I have included it as such in the PR here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants