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

Remove Python version 3.8 #2213

Merged
merged 11 commits into from
Sep 25, 2024
Merged

Conversation

AdamRJensen
Copy link
Member

@AdamRJensen AdamRJensen commented Sep 16, 2024

  • I am familiar with the contributing guidelines
  • Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
  • Pull request is nearly complete and ready for detailed review.
  • Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

Python 3.8 is reaching its end of life on October 1st 2024, meaning there will no longer be released security patches.

@AdamRJensen AdamRJensen added build tools Pipelines, CI, GH actions dependency labels Sep 16, 2024
@AdamRJensen
Copy link
Member Author

@kandersolar should the python version for the asv also be updated?

"python": "3.8",

@echedey-ls
Copy link
Contributor

echedey-ls commented Sep 20, 2024

Is a requirements-py3.9-min.yml needed or this test with minimal versions will be removed? I found it useful on some PRs.

Edit: added the min suffix I forgot to add.

@kandersolar kandersolar mentioned this pull request Sep 23, 2024
11 tasks
@kandersolar
Copy link
Member

Yes, the -min environment always gets updated to version+1 when we drop version. I agree it is useful and think we should continue to retain it.

@echedey-ls
Copy link
Contributor

Numpy versions on conda are:

(base) upm@upm00473:~/pvlib-python/benchmarks$ conda search -f numpy=1.19
Loading channels: done
# Name                       Version           Build  Channel             
numpy                         1.19.1  py36h30dfecb_0  pkgs/main           
numpy                         1.19.1  py36hbc911f0_0  pkgs/main           
numpy                         1.19.1  py37h30dfecb_0  pkgs/main           
numpy                         1.19.1  py37hbc911f0_0  pkgs/main           
numpy                         1.19.1  py38h30dfecb_0  pkgs/main           
numpy                         1.19.1  py38hbc911f0_0  pkgs/main           
numpy                         1.19.2  py36h54aff64_0  pkgs/main           
numpy                         1.19.2  py36h6163131_0  pkgs/main           
numpy                         1.19.2  py37h54aff64_0  pkgs/main           
numpy                         1.19.2  py37h6163131_0  pkgs/main           
numpy                         1.19.2  py37h7895c89_1  pkgs/main           
numpy                         1.19.2  py37hc896f84_1  pkgs/main           
numpy                         1.19.2  py38h54aff64_0  pkgs/main           
numpy                         1.19.2  py38h6163131_0  pkgs/main           
numpy                         1.19.2  py38h7895c89_1  pkgs/main           
numpy                         1.19.2  py38hc896f84_1  pkgs/main           
numpy                         1.19.2  py39h7895c89_1  pkgs/main           
numpy                         1.19.2  py39h87658db_0  pkgs/main           
numpy                         1.19.2  py39h89c1606_0  pkgs/main           
numpy                         1.19.2  py39hc896f84_1  pkgs/main           
numpy                         1.19.5  py37hc896f84_4  pkgs/main           
numpy                         1.19.5  py37hd5178e2_4  pkgs/main           
numpy                         1.19.5  py38h7820934_5  pkgs/main           
numpy                         1.19.5  py38hc896f84_4  pkgs/main           
numpy                         1.19.5  py38hd5178e2_4  pkgs/main           
numpy                         1.19.5  py39h7820934_5  pkgs/main           
numpy                         1.19.5  py39hc896f84_4  pkgs/main           
numpy                         1.19.5  py39hd5178e2_4  pkgs/main 

And for ephem:

(base) upm@upm00473:~/pvlib-python/benchmarks$ conda search -f ephem=4
Loading channels: done
# Name                       Version           Build  Channel             
ephem                        4.0.0.2  py36h27cfd23_0  pkgs/main           
ephem                        4.0.0.2  py37h27cfd23_0  pkgs/main           
ephem                        4.0.0.2  py38h27cfd23_0  pkgs/main           
ephem                        4.0.0.2  py39h27cfd23_0  pkgs/main           
ephem                          4.1.2 py310h7f8727e_0  pkgs/main           
ephem                          4.1.2 py311h5eee18b_0  pkgs/main           
ephem                          4.1.2  py37h7f8727e_0  pkgs/main           
ephem                          4.1.2  py38h7f8727e_0  pkgs/main           
ephem                          4.1.2  py39h7f8727e_0  pkgs/main 

@echedey-ls
Copy link
Contributor

And in conda-forge, there are plenty more versions of each one:

Numpy (all but 1.19.3)

```bash (base) upm@upm00473:~/pvlib-python/benchmarks$ conda search conda-forge::numpy=1.19 Loading channels: done # Name Version Build Channel numpy 1.19.0 py36h7314795_0 conda-forge numpy 1.19.0 py36he0f5f23_0 conda-forge numpy 1.19.0 py37h8960a57_0 conda-forge numpy 1.19.0 py38h8854b6b_0 conda-forge numpy 1.19.1 py36h3849536_1 conda-forge numpy 1.19.1 py36h3849536_2 conda-forge numpy 1.19.1 py36h7314795_0 conda-forge numpy 1.19.1 py36he0f5f23_0 conda-forge numpy 1.19.1 py36he0f5f23_1 conda-forge numpy 1.19.1 py36he0f5f23_2 conda-forge numpy 1.19.1 py37h7ea13bd_1 conda-forge numpy 1.19.1 py37h7ea13bd_2 conda-forge numpy 1.19.1 py37h8960a57_0 conda-forge numpy 1.19.1 py38h8854b6b_0 conda-forge numpy 1.19.1 py38hbc27379_1 conda-forge numpy 1.19.1 py38hbc27379_2 conda-forge numpy 1.19.2 py36h3849536_0 conda-forge numpy 1.19.2 py36h3849536_1 conda-forge numpy 1.19.2 py36h68c22af_1 conda-forge numpy 1.19.2 py36h865be6f_1 conda-forge numpy 1.19.2 py36he0f5f23_1 conda-forge numpy 1.19.2 py37h7008fea_1 conda-forge numpy 1.19.2 py37h7ea13bd_0 conda-forge numpy 1.19.2 py37h7ea13bd_1 conda-forge numpy 1.19.2 py38hbc27379_0 conda-forge numpy 1.19.2 py38hbc27379_1 conda-forge numpy 1.19.2 py38hf89b668_1 conda-forge numpy 1.19.2 py39h2bb7b6c_1 conda-forge numpy 1.19.2 py39hb68c0c8_1 conda-forge numpy 1.19.4 py36h2aa4a07_2 conda-forge numpy 1.19.4 py36h8732dcd_0 conda-forge numpy 1.19.4 py36h8732dcd_1 conda-forge numpy 1.19.4 py36hf5aa452_0 conda-forge numpy 1.19.4 py37h7e9df27_0 conda-forge numpy 1.19.4 py37h7e9df27_1 conda-forge numpy 1.19.4 py37haa41c4c_2 conda-forge numpy 1.19.4 py38h18fd61f_2 conda-forge numpy 1.19.4 py38hf0fd68c_0 conda-forge numpy 1.19.4 py38hf0fd68c_1 conda-forge numpy 1.19.4 py39h57d35e7_0 conda-forge numpy 1.19.4 py39h57d35e7_1 conda-forge numpy 1.19.4 py39hdbf815f_2 conda-forge numpy 1.19.5 py36h2aa4a07_0 conda-forge numpy 1.19.5 py36h2aa4a07_1 conda-forge numpy 1.19.5 py36h7e87304_0 conda-forge numpy 1.19.5 py36h7e87304_1 conda-forge numpy 1.19.5 py36hfc0c790_2 conda-forge numpy 1.19.5 py37h038b26d_2 conda-forge numpy 1.19.5 py37h3e96413_3 conda-forge numpy 1.19.5 py37h620df1f_1 conda-forge numpy 1.19.5 py37h620df1f_2 conda-forge numpy 1.19.5 py37haa41c4c_0 conda-forge numpy 1.19.5 py37haa41c4c_1 conda-forge numpy 1.19.5 py37hf0d26b2_3 conda-forge numpy 1.19.5 py38h18fd61f_0 conda-forge numpy 1.19.5 py38h18fd61f_1 conda-forge numpy 1.19.5 py38h8246c76_3 conda-forge numpy 1.19.5 py38h9894fe3_2 conda-forge numpy 1.19.5 py38hd7c341c_3 conda-forge numpy 1.19.5 py39hbb6b2ec_3 conda-forge numpy 1.19.5 py39hd249d9e_3 conda-forge numpy 1.19.5 py39hdbf815f_0 conda-forge numpy 1.19.5 py39hdbf815f_1 conda-forge numpy 1.19.5 py39hdbf815f_2 conda-forge ```

Ephem

```bash (base) upm@upm00473:~/pvlib-python/benchmarks$ conda search conda-forge::ephem=4 Loading channels: done # Name Version Build Channel ephem 4.0.0.1 py36h8f6f2f9_0 conda-forge ephem 4.0.0.1 py37h5e8e339_0 conda-forge ephem 4.0.0.1 py38h497a2fe_0 conda-forge ephem 4.0.0.1 py39h3811e60_0 conda-forge ephem 4.0.0.2 py36h8f6f2f9_0 conda-forge ephem 4.0.0.2 py37h5e8e339_0 conda-forge ephem 4.0.0.2 py38h497a2fe_0 conda-forge ephem 4.0.0.2 py39h3811e60_0 conda-forge ephem 4.1 py310h6acc77f_1 conda-forge ephem 4.1 py36h8f6f2f9_0 conda-forge ephem 4.1 py37h5e8e339_0 conda-forge ephem 4.1 py37h5e8e339_1 conda-forge ephem 4.1 py37h6b43d8f_0 conda-forge ephem 4.1 py37h6b43d8f_1 conda-forge ephem 4.1 py38h497a2fe_0 conda-forge ephem 4.1 py38h497a2fe_1 conda-forge ephem 4.1 py39h3811e60_0 conda-forge ephem 4.1 py39h3811e60_1 conda-forge ephem 4.1.1 py310h6acc77f_0 conda-forge ephem 4.1.1 py37h5e8e339_0 conda-forge ephem 4.1.1 py37h6b43d8f_0 conda-forge ephem 4.1.1 py38h497a2fe_0 conda-forge ephem 4.1.1 py39h3811e60_0 conda-forge ephem 4.1.3 py310h5764c6d_3 conda-forge ephem 4.1.3 py310h5764c6d_4 conda-forge ephem 4.1.3 py310h5764c6d_5 conda-forge ephem 4.1.3 py310h6acc77f_0 conda-forge ephem 4.1.3 py310h6acc77f_1 conda-forge ephem 4.1.3 py310h6acc77f_2 conda-forge ephem 4.1.3 py311hd4cff14_5 conda-forge ephem 4.1.3 py37h0313132_3 conda-forge ephem 4.1.3 py37h540881e_3 conda-forge ephem 4.1.3 py37h540881e_4 conda-forge ephem 4.1.3 py37h5e8e339_0 conda-forge ephem 4.1.3 py37h5e8e339_1 conda-forge ephem 4.1.3 py37h5e8e339_2 conda-forge ephem 4.1.3 py37h6b43d8f_0 conda-forge ephem 4.1.3 py37h6b43d8f_1 conda-forge ephem 4.1.3 py37h6b43d8f_2 conda-forge ephem 4.1.3 py38h0a891b7_3 conda-forge ephem 4.1.3 py38h0a891b7_4 conda-forge ephem 4.1.3 py38h0a891b7_5 conda-forge ephem 4.1.3 py38h497a2fe_0 conda-forge ephem 4.1.3 py38h497a2fe_1 conda-forge ephem 4.1.3 py38h497a2fe_2 conda-forge ephem 4.1.3 py38h50598f1_4 conda-forge ephem 4.1.3 py38h50598f1_5 conda-forge ephem 4.1.3 py39h3811e60_0 conda-forge ephem 4.1.3 py39h3811e60_1 conda-forge ephem 4.1.3 py39h3811e60_2 conda-forge ephem 4.1.3 py39h4d8b378_4 conda-forge ephem 4.1.3 py39h4d8b378_5 conda-forge ephem 4.1.3 py39hb9d737c_3 conda-forge ephem 4.1.3 py39hb9d737c_4 conda-forge ephem 4.1.3 py39hb9d737c_5 conda-forge ephem 4.1.4 py310h1fa729e_0 conda-forge ephem 4.1.4 py311h2582759_0 conda-forge ephem 4.1.4 py38h1de0b5d_0 conda-forge ephem 4.1.4 py38h5c95235_0 conda-forge ephem 4.1.4 py39h3d6e266_0 conda-forge ephem 4.1.4 py39h72bdee0_0 conda-forge ephem 4.1.5 py310h2372a71_0 conda-forge ephem 4.1.5 py310h2372a71_1 conda-forge ephem 4.1.5 py310ha75aee5_2 conda-forge ephem 4.1.5 py311h459d7ec_0 conda-forge ephem 4.1.5 py311h459d7ec_1 conda-forge ephem 4.1.5 py311h9ecbd09_2 conda-forge ephem 4.1.5 py312h66e93f0_2 conda-forge ephem 4.1.5 py312h98912ed_1 conda-forge ephem 4.1.5 py313h536fd9c_2 conda-forge ephem 4.1.5 py38h01eb140_0 conda-forge ephem 4.1.5 py38h01eb140_1 conda-forge ephem 4.1.5 py39h8cd3c5a_2 conda-forge ephem 4.1.5 py39hd1e30aa_0 conda-forge ephem 4.1.5 py39hd1e30aa_1 conda-forge ephem 4.1.5 py39hf860d4a_0 conda-forge ephem 4.1.5 py39hf860d4a_1 conda-forge ```

@AdamRJensen
Copy link
Member Author

@echedey-ls that's awesome. Do you know how to do a similar search on pypi?

@echedey-ls
Copy link
Contributor

echedey-ls commented Sep 24, 2024

@echedey-ls that's awesome. Do you know how to do a similar search on pypi?

@AdamRJensen , I'm pretty sure the problem is related to conda sources. PyPI lists numpy==1.19.3 available for Py3.9: https://pypi.org/project/numpy/1.19.3/#files; see all those built packages that start with numpy-1.19.3-cp39-cp39

EDIT: and the asv_check log states the following:

Details

PackagesNotFoundError: The following packages are not available from current channels:
   
     - numpy=1.19.3*
     - ephem=4.0.0.0*
   
   Current channels:
   
     - https://repo.anaconda.com/pkgs/main/linux-64
     - https://repo.anaconda.com/pkgs/r/linux-64
     - https://conda.anaconda.org/conda-forge/linux-64

@AdamRJensen
Copy link
Member Author

AdamRJensen commented Sep 24, 2024

@echedey-ls that's awesome. Do you know how to do a similar search on pypi?

@AdamRJensen , I'm pretty sure the problem is related to conda sources. PyPI lists numpy==1.19.3 available for Py3.9: https://pypi.org/project/numpy/1.19.3/#files; see all those built packages that start with numpy-1.19.3-cp39-cp39

It was more just a general question :)

@echedey-ls
Copy link
Contributor

@echedey-ls that's awesome. Do you know how to do a similar search on pypi?

@AdamRJensen , I'm pretty sure the problem is related to conda sources. PyPI lists numpy==1.19.3 available for Py3.9: https://pypi.org/project/numpy/1.19.3/#files; see all those built packages that start with numpy-1.19.3-cp39-cp39

It was more as just a general question :)

Haha, then I would say that I only know about browsing the files of each version one by one. I will report back if I find something useful with the uv package manager.

@echedey-ls
Copy link
Contributor

I had to go to stack-overflow, how not, but surprisingly pip allows it! pip index versions <pckge> https://stackoverflow.com/a/26664162/19371110

@AdamRJensen AdamRJensen marked this pull request as ready for review September 25, 2024 01:39
@AdamRJensen AdamRJensen added the remote-data triggers --remote-data pytests label Sep 25, 2024
@AdamRJensen AdamRJensen added remote-data triggers --remote-data pytests and removed remote-data triggers --remote-data pytests labels Sep 25, 2024
@AdamRJensen
Copy link
Member Author

@kandersolar @echedey-ls any idea why the remote tests still are looking for the 3.8-min environment file?

@kandersolar
Copy link
Member

@kandersolar @echedey-ls any idea why the remote tests still are looking for the 3.8-min environment file?

Yes, for security reasons, changes to the remote-data test config don't take effect until after merge. See https://github.com/pvlib/pvlib-python/blob/main/.github/workflows/pytest-remote-data.yml#L17-L29

ci/requirements-py3.9-min.yml Outdated Show resolved Hide resolved
@AdamRJensen AdamRJensen added remote-data triggers --remote-data pytests and removed remote-data triggers --remote-data pytests labels Sep 25, 2024
@AdamRJensen AdamRJensen merged commit 52afdcf into pvlib:main Sep 25, 2024
25 of 32 checks passed
@AdamRJensen AdamRJensen deleted the remove_python_3_8 branch September 25, 2024 15:56
@kandersolar kandersolar added this to the v0.11.1 milestone Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build tools Pipelines, CI, GH actions dependency remote-data triggers --remote-data pytests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants