dandi / dandi-schema

Schemata for DANDI archive project
Apache License 2.0
7 stars 10 forks source link

[CFG] set minimum python version to 3.8 #156

Closed satra closed 9 months ago

satra commented 1 year ago

in keeping with numpy's policy: https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table

codecov[bot] commented 1 year ago

Codecov Report

Base: 96.67% // Head: 96.61% // Decreases project coverage by -0.07% :warning:

Coverage data is based on head (eccb3ad) compared to base (969c359). Patch has no changes to coverable lines.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #156 +/- ## ========================================== - Coverage 96.67% 96.61% -0.07% ========================================== Files 18 18 Lines 1654 1654 ========================================== - Hits 1599 1598 -1 - Misses 55 56 +1 ``` | Flag | Coverage Δ | | |---|---|---| | unittests | `96.61% <ø> (-0.07%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dandi#carryforward-flags-in-the-pull-request-comment) to find out more. | [Impacted Files](https://codecov.io/gh/dandi/dandi-schema/pull/156?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dandi) | Coverage Δ | | |---|---|---| | [dandischema/models.py](https://codecov.io/gh/dandi/dandi-schema/pull/156?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dandi#diff-ZGFuZGlzY2hlbWEvbW9kZWxzLnB5) | `94.05% <0.00%> (-0.22%)` | :arrow_down: | Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dandi). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dandi)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

satra commented 1 year ago

@jwodder and @yarikoptic - i'm ready to merge this, but will wait to see what else needs to happen in our ecosystem.

yarikoptic commented 1 year ago

I would prefer to keep minimal supported version of Python to be the minimal supported version of our tools.

Rationale: If people could just afford to not install new scientific stack (numpy etc) on their systems, we often demand people to upgrade their dandi-cli to the most recent release just to be able to download or upload data. So making it unaffordable for them to use outdated version of dandi-cli, possibly the "latest" supported on their "supported" version of Python with still available for that Python numpy etc. Hence, to not demand users to upgrade their entire stack (Python, numpy, etc) to merely upload/download data to/from the archive, I would prefer to align with the EOL cycle of Python itself: https://endoflife.date/python .

Having stated that, if at some point we consciously decide to drop some supported Python version due to some grave issue or that compatibility with it becomes difficult, or some really useful new feature added in some newer Python -- I would be open to have such minimal version boosted then. Insofar, I saw no such need/desires to warrant dropping supported 3.7 . Sure thing some downstream projects like hdmf (attn @rly @bendichter @oruebel) could force us to act by dropping compatibility .

I am open for discussion though - may be I am missing some good reasons to demand our users to chase the train.

satra commented 1 year ago

@yarikoptic - the policy i'm referring to is numpy's: https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table (which is the basis for nibabel -> pybids, h5py -> pynwb, and many more in our stack, etc...).

to continue to use numpy and align with python EOL, we would need to limit the max version, which i think is more detrimental to people in the conda world and the research world. aligning with numpy, which we haven't done thus far, is i think a fine way to control our lifecycle of software, which is highly scientific python based. anyone using numpy as a core pkg of the stack should follow the numpy lifecycle.

and numpy will

On Apr 14, 2023 drop support for Python 3.8 (initially released on Oct 14, 2019)

candleindark commented 11 months ago

Since #193 has been merged, does that mean everyone agrees to drop support for Python 3.7 at this point?

yarikoptic commented 11 months ago

Since #193 has been merged, does that mean everyone agrees to drop support for Python 3.7 at this point?

yes, 3.7 EOLed fully by now.

candleindark commented 11 months ago

Since #193 has been merged, does that mean everyone agrees to drop support for Python 3.7 at this point?

yes, 3.7 EOLed fully by now.

Will someone merge this PR?

yarikoptic commented 11 months ago

nobody will merge it until it is redone or conflicts are resolved. Could you redo it (I think easier than merge conflicts) @candleindark ?

candleindark commented 11 months ago

nobody will merge it until it is redone or conflicts are resolved. Could you redo it (I think easier than merge conflicts) @candleindark ?

OK. I will look into it but possibly will get the Pydantic upgrade working first.

satra commented 9 months ago

closing this for now 3.8 is out the door almost at this point.