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

CI: Reduce pip behaviour dependencies in test suite #2105

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

ncoghlan
Copy link

@ncoghlan ncoghlan commented Jun 23, 2024

Closes #2104

Contributor checklist
  • Included tests for the changes (change is to fix a test).
  • PR title is short, clear, and ready to be included in the user-facing changelog.
Maintainer checklist
  • Verified one of these labels is present: backwards incompatible, feature, enhancement, deprecation, bug, dependency, docs or skip-changelog as they determine changelog listing.
  • Assign the PR to an existing or new milestone for the target version (following Semantic Versioning).

@chrysle chrysle added tests Testing and related things pip Related to pip skip-changelog Avoid listing in changelog sync labels Jun 28, 2024
@ncoghlan ncoghlan changed the title CI: Avoid a pip behaviour dependency in test_sync CI: Reduce pip behaviour dependencies in test suite Jul 8, 2024
@webknjaz
Copy link
Member

@ncoghlan could you check if this is still necessary? pip is now pinned to 24.2 in regular CI runs, and the CI has been made green with that (see #2140).

@ncoghlan
Copy link
Author

Given CI is green, I agree it isn't necessary to proceed with this.

@ncoghlan ncoghlan closed this Dec 17, 2024
@ncoghlan ncoghlan deleted the issue-2104-avoid-pip-freeze-protection-assumptions branch December 17, 2024 11:15
@webknjaz
Copy link
Member

@ncoghlan note that the pip version in CI is now restricted so that the updates are transparent. So it is possible that this breaks with newer pips (I know there are some problems; I just don't know if they are the same you were looking to address here).

@ncoghlan ncoghlan restored the issue-2104-avoid-pip-freeze-protection-assumptions branch December 18, 2024 11:52
@ncoghlan
Copy link
Author

Ah, in that case you will still need something along these lines when upgrading to a newer pip. The specific changes this made are to:

  • explicitly set a build system and constraint file in test_compile_recursive_extras_build_targets
  • remove setuptools, wheel and distribute from the expected set of protected modules in test_diff_should_not_uninstall

@ncoghlan ncoghlan reopened this Dec 18, 2024
@ncoghlan
Copy link
Author

This will be an interesting test to see if my changes actually broke compatibility with the older pip version.

My prediction: the explicit build system change will be OK, but the protected file list test case will fail (since the older pip still protects those packages)

constraints_file.write_text("\n".join(version_constraints))
env = os.environ.copy() # Copy entire env to avoid Windows compatibility issues
# Work around https://github.com/jazzband/pip-tools/pull/1681/files#r1667748889
env["PIP_CONSTRAINT"] = str(constraints_file)
Copy link
Member

Choose a reason for hiding this comment

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

What if this was to be made conditional? Perhaps, the test could be parametrized with variants before and after certain pip version that would run in different jobs (through the skipif mark). It'd be able to cover the concern of breaking on older versions…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pip Related to pip skip-changelog Avoid listing in changelog sync tests Testing and related things
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test failure: pip freeze no longer protects setuptools, distribute or wheel on Python 3.12+
3 participants