-
Notifications
You must be signed in to change notification settings - Fork 739
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
Collapse unavailable packages in resolver errors #6154
Conversation
if should_display_tree { | ||
display_tree(&tree, "Resolver derivation tree before reduction"); | ||
} |
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.
Need to see the tree before and after reduction when doing complex transforms
f2605de
to
91396f9
Compare
@@ -241,10 +241,15 @@ fn prune_unzipped() -> Result<()> { | |||
╰─▶ Because only the following versions of iniconfig are available: | |||
iniconfig<=0.1 | |||
iniconfig>=1.0.0 | |||
and iniconfig==0.1 network connectivity is disabled, but the metadata wasn't found in the cache, we can conclude that iniconfig<1.0.0 cannot be used. |
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.
Okay what this error was bad? Need to improve this separately
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.
See #6156
91396f9
to
759f332
Compare
and anyio==1.0.0 has no usable wheels and building from source is disabled, we can conclude that any of: | ||
and any of: | ||
anyio==1.0.0 | ||
anyio==1.1.0 | ||
anyio==1.2.0 | ||
anyio==1.2.1 | ||
anyio==1.2.2 |
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.
Now we enumerate all the versions in a single clause instead of having a clause for each! I think now we can simplify this range with the known available versions and it'll be way better.
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.
See #6155
anyio==4.2.0 | ||
anyio==4.3.0 | ||
anyio==4.4.0 | ||
has no usable wheels and building from source is disabled, we can conclude that any of: |
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.
Needs to be plural form "have no usable wheels" — will require more changes separately.
iniconfig==1.1.0 | ||
iniconfig==1.1.1 | ||
iniconfig==2.0.0 | ||
network connectivity is disabled, but the metadata wasn't found in the cache, we can conclude that iniconfig<1.0.0 cannot be used. |
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 this says "and any of network connectivity is disabled"
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.
@@ -1925,95 +1925,51 @@ fn install_only_binary_all_and_no_binary_all() { | |||
anyio>=3.0.0,<=3.6.2 | |||
anyio>=3.7.0,<=3.7.1 | |||
anyio>=4.0.0 | |||
and anyio==1.0.0 has no usable wheels and building from source is disabled, we can conclude that any of: | |||
and any of: |
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 it be "all of"?
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.
Yeah it's a little confusing. I think it's saying "any of a or b" instead of "all of a and b" — we don't use "and" or "or" so "all" and "any" do that. We can probably make this better somehow...
Now that these incompatibilities are collected into a single range (#6154), we can simplify the range using the known available versions to reduce verbosity.
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.
Nice! Much better.
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | minor | `0.2.37` -> `0.3.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.3.0`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#030) [Compare Source](astral-sh/uv@0.2.37...0.3.0) This release introduces the uv [project](https://docs.astral.sh/uv/guides/projects/), [tool](https://docs.astral.sh/uv/guides/tools/), [script](https://docs.astral.sh/uv/guides/scripts/), and [python](https://docs.astral.sh/uv/guides/install-python/) interfaces. If you've been following uv's development, you've probably seen these new commands behind a preview flag. Now, the interfaces are stable and ready for production-use. These features are all documented in [new, comprehensive documentation](https://docs.astral.sh/uv/). This release also stabilizes preview functionality in `uv venv`: - `uv venv --python <version>` will [automatically download](https://docs.astral.sh/uv/concepts/python-versions/#requesting-a-version) the Python version if required - `uv venv` will read the required Python version from the `.python-version` file or `pyproject.toml` The `uv pip` interface should not be affected by any breaking changes. Note the following changelog entries does not include all the new features since they were added incrementally as preview features. See the [feature page](https://docs.astral.sh/uv/getting-started/features/) in the documentation for a comprehensive listing, or read the [blog post](https://astral.sh/blog/uv-unified-python-packaging) for more context on the new features. ##### Breaking changes - Migrate to XDG and Linux strategy for macOS directories ([#​5806](astral-sh/uv#5806)) - Move concurrency settings to top-level ([#​4257](astral-sh/uv#4257)) - Apply system Python filtering to executable name requests ([#​4309](astral-sh/uv#4309)) - Remove `--legacy-setup-py` command-line argument ([#​4255](astral-sh/uv#4255)) - Stabilize preview features ([#​6166](astral-sh/uv#6166)) ##### Enhancements - Add 32-bit Windows target ([#​6252](astral-sh/uv#6252)) - Add support for `python_version in ...` markers ([#​6172](astral-sh/uv#6172)) - Allow user to constrain supported lock environments ([#​6210](astral-sh/uv#6210)) - Lift requirement that .egg-info filenames must include version ([#​6179](astral-sh/uv#6179)) - Change "any of" to "all of" in error messages ([#​6222](astral-sh/uv#6222)) - Collapse redundant dependency clauses enumerating available versions ([#​6160](astral-sh/uv#6160)) - Collapse unavailable packages in resolver errors ([#​6154](astral-sh/uv#6154)) - Fix messages for unavailable packages when range is plural ([#​6221](astral-sh/uv#6221)) - Improve resolver error messages when `--offline` is used ([#​6156](astral-sh/uv#6156)) - Avoid overwriting dependencies with different markers in `uv add` ([#​6010](astral-sh/uv#6010)) - Simplify available package version ranges when the name includes markers or extras ([#​6162](astral-sh/uv#6162)) - Simplify version ranges reported for unavailable packages ([#​6155](astral-sh/uv#6155)) - Rename `environment-markers` to `resolution-markers` ([#​6240](astral-sh/uv#6240)) - Support `uv add -r requirements.txt` ([#​6005](astral-sh/uv#6005)) ##### CLI - Hide global options in `uv generate-shell-completion` ([#​6170](astral-sh/uv#6170)) - Show generate-shell-completion command in `uv help` ([#​6180](astral-sh/uv#6180)) - Special-case reinstalls in environment update summaries ([#​6243](astral-sh/uv#6243)) - Add output when `uv add` and `uv remove` update scripts ([#​6231](astral-sh/uv#6231)) - Add support for `package@latest` in `tool run` ([#​6138](astral-sh/uv#6138)) - Show `python find` output with `-q` ([#​6256](astral-sh/uv#6256)) - Warn when `--upgrade` is passed to `tool run` ([#​6140](astral-sh/uv#6140)) ##### Configuration - Allow customizing the tool install directory with `UV_TOOL_BIN_DIR` ([#​6207](astral-sh/uv#6207)) ##### Performance - Use `FxHash` in `uv-auth` ([#​6149](astral-sh/uv#6149)) ##### Bug fixes - Avoid panicking when the resolver thread encounters a closed channel ([#​6182](astral-sh/uv#6182)) - Respect release-only semantics of `python_full_version` when constructing markers ([#​6171](astral-sh/uv#6171)) - Tolerate missing `[project]` table in `uv venv` ([#​6178](astral-sh/uv#6178)) - Avoid using workspace `lock_path` as relative root ([#​6157](astral-sh/uv#6157)) ##### Documentation - Preview changes are now included in the standard changelog ([#​6259](astral-sh/uv#6259)) - Document dynamic metadata behavior for cache ([#​5993](astral-sh/uv#5993)) - Document the effect of ordering on package priority ([#​6211](astral-sh/uv#6211)) - Make some edits to the workspace concept documentation ([#​6223](astral-sh/uv#6223)) - Update environment variables doc ([#​5994](astral-sh/uv#5994)) - Disable collapsible navigation in the documentation ([#​5674](astral-sh/uv#5674)) - Document `uv add` and `uv remove` behavior with markers ([#​6163](astral-sh/uv#6163)) - Document the Python installation directory ([#​6227](astral-sh/uv#6227)) - Document the `uv.pip` section semantics ([#​6225](astral-sh/uv#6225)) - Document the cache directory ([#​6229](astral-sh/uv#6229)) - Document the tools directory ([#​6228](astral-sh/uv#6228)) - Document yanked packages caveat during sync ([#​6219](astral-sh/uv#6219)) - Link to persistent configuration options in Python versions document ([#​6226](astral-sh/uv#6226)) - Link to the projects concept from the dependencies concept ([#​6224](astral-sh/uv#6224)) - Improvements to the Docker installation guide ([#​6216](astral-sh/uv#6216)) - Increase the size of navigation entries ([#​6233](astral-sh/uv#6233)) - Install `ca-certificates` in docker and use pipefail ([#​6208](astral-sh/uv#6208)) - Add script support to feature highlights in index ([#​6251](astral-sh/uv#6251)) - Show `uv generate-shell-completion` in CLI documentation reference ([#​6146](astral-sh/uv#6146)) - Update Docker guide for projects ([#​6217](astral-sh/uv#6217)) - Use `uv add --script` in guide ([#​6215](astral-sh/uv#6215)) - Show pinned version example on in GitHub Actions integration guide ([#​6234](astral-sh/uv#6234)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Uses my expanding tree reduction knowledge from #6092 to improve the long-standing issue of verbose messages for unavailable packages.
Implements pubgrub-rs/pubgrub#232, but post-resolution instead of during resolution.
Partially addresses #5046
Closes #2519