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

Dependency pins #1041

Merged
merged 12 commits into from
Jan 11, 2023
Merged

Dependency pins #1041

merged 12 commits into from
Jan 11, 2023

Conversation

freakboy3742
Copy link
Member

@freakboy3742 freakboy3742 commented Jan 10, 2023

Modify the usage of dependency pins:

  • Runtime dependencies are all specified as open ended, with a minimum version. Packages using semver also have an upper version. Packages that are part of the "core python toolchain" (e.g., wheel) do not have an upper pin as we always want the most recent versions those tools. Packages that use calver have no upper pin on the basis that there is no rationale for an upper pin as a basis for API stability.
  • Development dependencies are are hard-pinned to a specific version. This ensures development environment consistency.

Updating to the most recent version of Sphinx caused a version incompatibility with the RTD theme; since we've planning to move to Furo on Toga anyway, I figured this is as good a time as any to make that change.

Refs #1026.
Refs #1027.
Refs #1037.

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

@freakboy3742 freakboy3742 force-pushed the dependency-pins branch 2 times, most recently from 7d95858 to a485f63 Compare January 10, 2023 07:40
setup.cfg Outdated
Comment on lines 79 to 82
test =
pytest~=7.2
pytest-tldr~=0.2
pytest-cov~=4.0
pytest == 7.2.0
pytest-tldr == 0.2.5
coverage[toml] == 7.0.4
Copy link
Member

Choose a reason for hiding this comment

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

A development environment should probably have all the test tools installed, so Toga will merge[test] into [dev]as soon as the setuptools-scm PR is merged (beeware/toga#1675 (review)). Would it make sense to do the same for Briefcase?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah - the distinction is pretty narrow, so I guess that makes sense, if only for simplicity.

setup.cfg Outdated
Comment on lines 58 to 61
install_requires =
pip >= 22
setuptools >= 60
wheel ~= 0.37
cookiecutter ~= 2.1
tomli ~= 2.0; python_version <= "3.10"
wheel >= 0.37
Copy link
Member

Choose a reason for hiding this comment

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

We should leave a comment here explaining our pinning strategy: essentially the same text as the first post in this PR.

@@ -93,7 +95,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install --upgrade setuptools
pip install setuptools_scm[toml]~=7.0 tox~=4.0 coverage[toml]~=7.0
pip install $(ls dist/briefcase-*.whl)[dev,test]
Copy link
Member

Choose a reason for hiding this comment

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

There should be another "We don't actually want..." comment here.

Also, the difference between briefcase-*.whl here and *.whl below implies there might be some other wheels in dist, which is not actually the case. So I suggest we use briefcase-*.whl in both places.

@mhsmith mhsmith merged commit 40fccb1 into beeware:main Jan 11, 2023
@freakboy3742 freakboy3742 deleted the dependency-pins branch January 11, 2023 22:41
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.

2 participants