-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[Mamba POC] Bring in more conda logic #10983
Conversation
(fixes test_force_remove_1)
Down to 26 failing tests! |
we do this by: 1) Translating conda update python to conda update python>={installed} if not conflicting. This forces conflicts we can neuter. 2) Letting conflicts grow a bit (up to 10 items) so we can get python 3) Down-prioritizing some dependencies that can conflict.
make sure conflicting packages that are not explicitly requested are also neutered if needed
… poc-libsolv-conda-logic
All green in both platforms, except four tiny issues on Windows: Something about cleaning the index cache. They pass in isolation, but not with other tests in the same run. Fun stuff.
Something about paths:
I will fix this first thing next week and merge for all green goodness. |
Also note that I needed to use restricted unicode on Windows for now. This is being fixed in libmamba as we speak and we will be able to undo that workaround in the future. And I also took split |
Looks like the index cache issue might be Windows leaving something open... Logs say:
|
Is this the first time everything's green? 🔥 |
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.
This is ready. Thank you @jaimergp!
This PR implements a consolidated logic after studying the code in
Solver._collect_all_metadata()
,Solver._add_specs()
andSolver._post_sat_handling
. It's a reimplementation that doesn't use the SolverStateContainer features found in theResolve
instance they carry. More comments when needed, but it still needs to be documented thoroughly.It's not perfect yet (conflict analysis is pending), but I am seeing more passing tests now.
This is an alternative implementation to the retry logic and history pinning found in #10946, #10947.
Let's see how many we can tackle now:
tests/test_create.py
test_allow_softlinks
test_clone_offline_multichannel_with_untracked
test_conda_pip_interop_conda_editable_package
-- this passes locally! :/test_conda_recovery_of_pip_inconsistent_env
test_install_features
test_install_force_reinstall_flag
test_install_mkdir
test_list_with_pip_wheel
test_neutering_of_historic_specs
test_noarch_python_package_reinstall_on_pyver_change
test_noarch_python_package_without_entry_points
test_offline_with_empty_index_cache
test_package_optional_pinning
test_packages_not_found
test_pinned_override_with_explicit_spec
test_remove_all
test_remove_features
test_update_with_pinned_packages
test_create_env_default_packages
tests/cli/test_cli_install.py
test_find_conflicts_called_once
tests/conda_env/test_cli.py
test_update
test_update_env_json_output
tests/core/test_solve.py
test_pinned_1
test_freeze_deps_1
test_prune_1
test_update_all_1
test_conda_downgrade
test_python2_update
test_fast_update_with_update_modifier_not_set
test_force_reinstall_1
test_channel_priority_churn_minimized
test_priority_1
test_features_solve_1
test_current_repodata_fallback