8000 Version pinning for main by tennlee · Pull Request #580 · nci/scores · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Version pinning for main #580

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

Merged
merged 4 commits into from
Jul 1, 2024
Merged

Conversation

tennlee
Copy link
Collaborator
@tennlee tennlee commented Jun 30, 2024

This PR sets some pinned versions for the main branch, which are not included in develop. The intention would be to include these pinned versions in the tagged releases, but allow develop to update freely.

The versions specified are:

    "xarray ~= 2024",
    "pandas ~= 2.2",
    "scipy ~= 1.1",
    "bottleneck ~= 1.3",
    "scikit-learn ~= 1.4",

~= is an "approximate" match, meaning >= the specified version, but not going above the major version. This should mean that tagged releases are protected against breaking API changes which may be introduced by major upgrades in dependencies.

It is generally accepted best practise to specify version ranges which are supported by particular releases. We could potentially seek to support a very wide range of versions, or focus only on the versions which have been recently tested. I could not find any prescriptive or definitive guidance on how to select versions for dependencies.

I hope these versions mean that people who have to use older versions of things could still integrate scores, while those wanting to keep up-to-date can easily do so. Over time, if we get many user requests for supporting older package versions, we could expand the range of acceptable versions accordingly.

Currently, all the pinned versions are somewhat (around 6 months) behind those brought in during automated testing for Python 3.9. So an "up to date" 3.9 installation is supported, but an "out of date" 3.9 installation is not, but potentially could be.

At this stage, our project doesn't have the resources to manually support more complexity than this, and it seems a reasonable place to start.

Fixes #517

@tennlee tennlee changed the base branch from develop to main June 30, 2024 08:26
Copy link
Collaborator
@nicholasloveday nicholasloveday left a comment

Choose a reason for hiding this comment

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

This seems reasonable to me

@nikeethr
Copy link
Collaborator
nikeethr commented Jul 1, 2024

requires-python = ">=3.7" are we supporting 3.7,3.8?

@tennlee
Copy link
Collaborator Author
tennlee commented Jul 1, 2024

requires-python = ">=3.7" are we supporting 3.7,3.8?

Ah that's an oversight, thanks. Should be >= 3.9, I'll fix it now

Copy link
Collaborator
@nikeethr nikeethr left a comment

Choose a reason for hiding this comment

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

I'm okay to approve this as is for a first pass.

I do however, have some uncertainties - but these may be addressed later if any usability issues arise:

I'm a bit unsure of how to handle xarray, since an increment in calendar year, does not necessarily mean a major version bump that would break compatibility.

I can think of situations e.g. beginning of 2025, where we may want to include both 2024 and 2025.

For now this may be fine but my optional recommendation is to include a compatiblity version (~=) for numpy and use >= for xarray. I believe xarray has a hard dependency on numpy, so it should auto-resolve to the appropriate xarray version that is above the minimum required.

@tennlee
Copy link
Collaborator Author
tennlee commented Jul 1, 2024

For the versions coming soon, I think 2024 is okay for xarray. As we approach 2025, perhaps we include both in those releases, it's a valid point but I think we can handle it when we get there.

@tennlee
Copy link
Collaborator Author
tennlee commented Jul 1, 2024

Okay, thanks everyone for their comments. I'm going to merge this in now. I'll make sure CI is happy (it should be) and will do some manual testing of things as we approach version 1 to see that things are behaving well.

8D76

@tennlee tennlee merged commit dbcfd89 into nci:main Jul 1, 2024
5 checks passed
@tennlee tennlee deleted the version_pinning_for_main branch July 1, 2024 04:50
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.

Dependency freezing for stability when tagging
3 participants
0