-
-
Notifications
You must be signed in to change notification settings - Fork 646
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
Allow changing the versioning scheme for python_distribution
first-party dependencies
#10977
Allow changing the versioning scheme for python_distribution
first-party dependencies
#10977
Conversation
…ion` first-party dependencies # Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust] # Building wheels and fs_util will be skipped. Delete if not intended. [ci skip-build-wheels]
7f40800
to
a5f0d5e
Compare
register( | ||
"--exact-first-party-dependency-requirements", | ||
type=bool, | ||
default=False, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should default to ~=
, but curious what you all think.
Note that this is an API change. If this weren't 2.0, we would need to set the default to using ==
and use a deprecation cycle to be able to change the default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went back to using the prior default of ==
, because imo the default should favor correctness over ergonomics. Users can loosen it if they are okay with the risk of less correctness.
Also, we avoid a deprecation cycle.
# Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust] # Building wheels and fs_util will be skipped. Delete if not intended. [ci skip-build-wheels]
~=
) with python_distribution
first-party dependenciespython_distribution
first-party dependencies
# Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust] # Building wheels and fs_util will be skipped. Delete if not intended. [ci skip-build-wheels]
We should probably default to the safest behavior, given that the purpose of a tool like Pants is correctness. This also avoids making a breaking API change. # Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust] # Building wheels and fs_util will be skipped. Delete if not intended. [ci skip-build-wheels]
class PythonDistributionSubsystem(Subsystem): | ||
"""Options for packaging wheels/sdists from a `python_distribution` target.""" | ||
|
||
options_scope = "python-distribution" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be python_distribution
to match the target type name?
Related: I want to make a change that normalizes dashes in scope names to underscores, so that they behave similarly to the option name itself. (i.e., --sco-pe-na-me
and [sco_pe].na_me
both work, as well as, [sco-pe].na_me
for backwards compat).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had it as python_distribution
before, but changed it because every single scope I've seen using -
, so it seemed confusing to be inconsistent.
That flexibility would be nice. We will want to decide the canonical format used in documentation.
I don't think this is worth changing to python_distribution
until we add the new flexibility you describe.
…p-py # Conflicts: # src/python/pants/backend/python/goals/setup_py_test.py
…party dependencies (Cherry-pick of pantsbuild#10977) [ci skip-rust] [ci skip-build-wheels] # Conflicts: # src/python/pants/backend/python/goals/setup_py_test.py
Internal-only changes: * upgrade to cpython crate v0.5.1 (#11052) `PR #11052 <https://github.com/pantsbuild/pants/pull/11052>`_ * Prepare 2.0.0 (#11053) `PR #11053 <https://github.com/pantsbuild/pants/pull/11053>`_ * Revert "Add new EngineAware method metadata() (#11030)" (#11047) `PR #11030 <https://github.com/pantsbuild/pants/pull/11030>`_ `PR #11047 <https://github.com/pantsbuild/pants/pull/11047>`_ * Remove deprecated `python_binary` target in favor of `pex_binary` (#11046) `PR #11046 <https://github.com/pantsbuild/pants/pull/11046>`_ * Prepare 2.0.0rc3 (#11044) `PR #11044 <https://github.com/pantsbuild/pants/pull/11044>`_ * Eagerly validate entry points for `setup_py().with_binaries()` (#11034) `PR #11034 <https://github.com/pantsbuild/pants/pull/11034>`_ `PR #11021 <https://github.com/pantsbuild/pants/pull/11021>`_ * Use Ubuntu Bionic for CI (#11027) `PR #11027 <https://github.com/pantsbuild/pants/pull/11027>`_ * Prepare 2.0.0rc2 (#11017) `PR #11017 <https://github.com/pantsbuild/pants/pull/11017>`_ * Remove RunTrackerLogger (#11018) `PR #11018 <https://github.com/pantsbuild/pants/pull/11018>`_ * Upgrade Pex to 2.1.20 (#11014) `PR #11014 <https://github.com/pantsbuild/pants/pull/11014>`_ * Remove more unused code from RunTracker (#11012) `PR #11012 <https://github.com/pantsbuild/pants/pull/11012>`_ * Add type annotations to AggregatedTimings (#11009) `PR #11009 <https://github.com/pantsbuild/pants/pull/11009>`_ * Increase default `[python-setup].resolver_jobs` to `cpu_count / 2` (#11006) `PR #11006 <https://github.com/pantsbuild/pants/pull/11006>`_ * Include `<PYENV>` in `[python-setup].interpreter_search_paths` default (#10998) `PR #10998 <https://github.com/pantsbuild/pants/pull/10998>`_ * Remove PantsDaemonStats class wrapper (#11003) `PR #11003 <https://github.com/pantsbuild/pants/pull/11003>`_ `PR #files#r508861045 <https://github.com/pantsbuild/pants/pull/11000/files#r508861045>`_ * Revert using libCST for dep inference due to performance (#10907) (#11001) `PR #10907 <https://github.com/pantsbuild/pants/pull/10907>`_ `PR #11001 <https://github.com/pantsbuild/pants/pull/11001>`_ * Run tracker refactor (#11000) `PR #11000 <https://github.com/pantsbuild/pants/pull/11000>`_ * refactor Core::new including command runner setup (#10993) `PR #10993 <https://github.com/pantsbuild/pants/pull/10993>`_ `PR #10960 <https://github.com/pantsbuild/pants/pull/10960>`_ * Allow changing the versioning scheme for `python_distribution` first-party dependencies (#10977) `PR #10977 <https://github.com/pantsbuild/pants/pull/10977>`_ * Remove tokio Handle type from Executor::new (#10980) `PR #10980 <https://github.com/pantsbuild/pants/pull/10980>`_ * Remove deprecated `Address.parse()` and `Address.reference()` (#10981) `PR #10981 <https://github.com/pantsbuild/pants/pull/10981>`_ * Remove project_ methods from the externs module (#10955) `PR #10955 <https://github.com/pantsbuild/pants/pull/10955>`_ * Prepare 2.0.0rc1 (#10972) `PR #10972 <https://github.com/pantsbuild/pants/pull/10972>`_ * Fix interpreter selection when building a PEX to use `[python-setup].interpreter_search_paths` (#10965) `PR #10965 <https://github.com/pantsbuild/pants/pull/10965>`_ * Delete `JsonReporter` (#10964) `PR #10964 <https://github.com/pantsbuild/pants/pull/10964>`_ * Fix log (#10959) `PR #10959 <https://github.com/pantsbuild/pants/pull/10959>`_ * Expose getattr method for Python-related APIs (#10953) `PR #10953 <https://github.com/pantsbuild/pants/pull/10953>`_ * Upgrade tokio package to 0.2.22 (#10949) `PR #10949 <https://github.com/pantsbuild/pants/pull/10949>`_ * Use `package` to build Pants's wheels, rather than `setup-py` (#10947) `PR #10947 <https://github.com/pantsbuild/pants/pull/10947>`_ * Simplify val_to_str and have it and val_to_log_level use PyObject (#10946) `PR #10946 <https://github.com/pantsbuild/pants/pull/10946>`_
Closes #10908.
Users can now choose between no version requirements, compatible versions (
~=
), and exact requirements (==
). See https://www.python.org/dev/peps/pep-0440/#compatible-release.[ci skip-rust]
[ci skip-build-wheels]