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

Reduce duplication in minimum dependencies #1842

Merged
merged 6 commits into from
May 3, 2021

Conversation

dopplershift
Copy link
Member

@dopplershift dopplershift commented Apr 30, 2021

Description Of Changes

As evidenced by #1839, we have a problem where we have duplication of information about the minimum supported versions of things. They currently exist in 3 places:

  • The install guide
  • setup.cfg
  • ci/Minimum -- so we can test with our minimum versions

This PR changes things so that setup.cfg, which drives our PyPI package and gets (manually) synced to our conda-forge recipe, is the only source of this information. For CI, this deletes the static copy in ci/Minimum and instead CI parses setup.cfg and generates this file. For the install guide, this changes to use sphinx's literalinclude directive to directly include the relevant portion of setup.cfg. So that changes from:
image
to
image

I don't love the new visual, but maybe at some point in the future we can address that with CSS. What I do love is that we only need to change one (sensibly canonical) spot to update our minimum supported versions of upstream dependencies, which is a good win for maintainability.

This PR also removes CI's hack for installing an older scipy for conda (and bumps us to scipy 1.6.3), which is no longer needed, as well as updates a few URLs that were redirecting.

Checklist

@dopplershift dopplershift added Area: Docs Affects documentation Area: Infrastructure Pertains to project infrastructure (e.g. CI, linting) Type: Enhancement Enhancement to existing functionality labels Apr 30, 2021
@dopplershift dopplershift added this to the 1.1.0 milestone Apr 30, 2021
This was naming the wrong version for a release: "v1" instead of "v1.0".
conda-forge's packages are now automatically built and should stay that
way.
Instead, use sphinx's literalinclude to directly pull the list of
dependencies from `setup.cfg`.
Instead of having a separate file (that doesn't get updated by
Dependabot), just read our minimum versions directly from setup.cfg and
use this to generate a Minimum constraint file on CI.

This also updates setup.cfg to reflect the current versions from
Minimum.
@dopplershift dopplershift marked this pull request as ready for review May 3, 2021 18:29
@dopplershift dopplershift requested a review from dcamron as a code owner May 3, 2021 18:29
@dcamron
Copy link
Member

dcamron commented May 3, 2021

A consideration during review: is it worth keeping a Minimum around in the repo beyond just in the CI pipeline alongside our other spec files for use in e.g. specifying an environment locally. It would probably be more of a pain to maintain (even if automatically) for little usage and I'm not gonna hold this up for that; just capturing the thought

@dopplershift
Copy link
Member Author

Yeah, I don't want the duplicated information. If you think it's worth it, I could extract the Python code that generates it into a script in .github.

@dcamron
Copy link
Member

dcamron commented May 3, 2021

Nah, the more I think about the point on testing minimums the less I think there's any serious use case for keeping that around on its own.

@dcamron dcamron merged commit 9a8ba2f into Unidata:main May 3, 2021
@dopplershift dopplershift deleted the ci-fixes branch May 3, 2021 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Docs Affects documentation Area: Infrastructure Pertains to project infrastructure (e.g. CI, linting) Type: Enhancement Enhancement to existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sync dependencies in setup.cfg
2 participants