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

MAINT: 3.12 support #959

Merged
merged 4 commits into from
Oct 31, 2023
Merged

Conversation

tylerjereddy
Copy link
Collaborator

  • a few adjustments to pyproject.toml to allow for pip install -v . followed by python -m pytest --pyargs darshan -n 32 to pass the full suite locally on x86_64 Linux with Python 3.12.0rc3, given that the final release of Python 3.12.0 is about a week away I think

  • changing the version of setuptools may break the developer experience with "editable" installs, since I recall pinning it a while back for that reason, but I think supporting isolated wheel builds/install with 3.12.0 should likely take priority

  • some of the metadata updates to pyproject.toml are apparently newly-required fields that must be present (pip install -v . fails otherwise)

  • perhaps we can delay adding 3.12 to the CI testing until the final release, though GHA does have the RC available if we want it

[skip cirrus]

* a few adjustments to `pyproject.toml` to allow for `pip install -v .`
followed by `python -m pytest --pyargs darshan -n 32` to pass the full
suite locally on x86_64 Linux with Python `3.12.0rc3`, given that
the final release of Python `3.12.0` is about a week away I think

* changing the version of `setuptools` may break the developer
experience with "editable" installs, since I recall pinning it
a while back for that reason, but I think supporting isolated
wheel builds/install with `3.12.0` should likely take priority

* some of the metadata updates to `pyproject.toml` are apparently
newly-required fields that must be present (`pip install -v .` fails
otherwise)

* perhaps we can delay adding `3.12` to the CI testing until the
final release, though GHA does have the RC available if we want it

[skip cirrus]
requires-python = ">=3.7"
version = "3.4.4.0"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

many projects will tend to use version numbers that have development indicators like 3.4.4.0.dev0 to avoid confusion with i.e., the final release or previous release with that same number, but I thought it best to just follow our current convention and paste this in from setup.py for now.

There may not be a compelling reason to change it anyway, unless for example we became so popular that we needed nightly or weekly wheels, where the dev tag would have a more compelling reason to exist to distinguish from stable releases.

* fix up a `pandas` `FutureWarning`:

```
FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
```
* fix `FutureWarning`s for `pandas` implicit cast from float64->object
and `read_html` acceptance of raw HTML text

[skip cirrus]
@tylerjereddy
Copy link
Collaborator Author

Needed to add a few shims for FutureWarnings from newer pandas release as well.

@tylerjereddy
Copy link
Collaborator Author

There's still a type hinting error (mypy) to deal with: darshan/experimental/plots/plot_io_cost.py:180: error: "_AxesBase" has no attribute "legend" [attr-defined]

Maybe because of a newer matplotlib, I won't get to that today though.

@shanedsnyder
Copy link
Contributor

I think the changes look good, thanks! The pandas future warning looks to be popping up elsewhere (#961, #963 ), so will be good to have that resolved.

Any objections to just adding 3.12 to the CI here to see what happens?

Aside from the outstanding CI error related to mypy, my only other suggestion is to add mention of the new place we need to maintain our version number (pyproject.toml) to RELEASE-CHECKLIST-PyDarshan.txt so we have a reminder as part of the release process.

* `plot_io_cost` now sets legend properties via the
raw axis object instead of via the twinned object (fixes
a `mypy` complaint)

* add Python `3.12` to the main CI matrix based on
reviewer feedback

* update release checklist to reflect version
number now maintained in `pyproject.toml` as well
@github-actions github-actions bot added the CI continuous integration label Oct 31, 2023
@tylerjereddy
Copy link
Collaborator Author

Latest revisions pushed in are summarized below, but we'll have to wait and see if CI is happy:

* `plot_io_cost` now sets legend properties via the
raw axis object instead of via the twinned object (fixes
a `mypy` complaint)

* add Python `3.12` to the main CI matrix based on
reviewer feedback

* update release checklist to reflect version
number now maintained in `pyproject.toml` as well

@shanedsnyder
Copy link
Contributor

Awesome, looks like everything is working here now, including the new 3.12 tests.

I'll go ahead and merge. Thanks!

@shanedsnyder shanedsnyder merged commit f88e682 into darshan-hpc:main Oct 31, 2023
19 checks passed
@tylerjereddy tylerjereddy deleted the treddy_312_support branch October 31, 2023 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI continuous integration maintenance pydarshan
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants