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

Add solver plugin hook #11993

Merged
merged 101 commits into from
Nov 11, 2022
Merged

Add solver plugin hook #11993

merged 101 commits into from
Nov 11, 2022

Conversation

jaimergp
Copy link
Contributor

@jaimergp jaimergp commented Oct 18, 2022

Description

Originally opened by @jezdez at jaimergp#2, but the target PR was merged before I saw it so... (re)-creating it here for better visibility

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

beeankha and others added 5 commits August 31, 2022 18:25
Initial plugin framework implementation. Adds registration decorator `@conda.plugins.register` and hook `conda_subcommands` this allows simple subcommand registration:

```
import conda.plugins

@conda.plugins.register
def conda_subcommands():
    yield conda.plugins.CondaSubcommand(
        name="my-subcommand",
        summary="...",
        action=<function>,
    )
```

Co-authored-by: Filipe Lains <lains@riseup.net>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
* Add `win-arm64` as a recognized platform (#11778)

* Rename `conda.recipe` to `recipe` (#11774)

* Rename conda.recipe to recipe

* Add news

* Update canary-release action version (#11799)

* Updated conda CLI help to be better for users. (#11708)

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>

* 🔄 Synced file(s) with conda/infra (#11827)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Fix pypy win (#11734)

* [pre-commit.ci] pre-commit autoupdate (#11833)

updates:
- [github.com/akaihola/darker: 1.5.0 → 1.5.1](akaihola/darker@1.5.0...1.5.1)
- [github.com/PyCQA/pylint: v2.15.0 → v2.15.2](pylint-dev/pylint@v2.15.0...v2.15.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fixes an issue that we are having with carnary builds (#11803)

* Fixes an issue that we are having with carnary builds

See this issue for more information:
conda/conda-build#4572

* undoing upates to cytoolz

* Update CONTRIBUTING.md (#11816)

Change all references to `triaging` to `issue sorting` per conda/infrastructure#575

* Release 22.9.0 (#11844)

* Updated .authors.yml

* Updated .mailmap

* Updated news

* Updated authorship for 22.9.0

* Updated CHANGELOG for 22.9.0

* Added first contributions

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add special announcement to changelog.

* Remove emoji to not freak out rever.

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Expose --mach and --arch to devenv script (#11851)

* [pre-commit.ci] pre-commit autoupdate (#11859)

updates:
- [github.com/PyCQA/pylint: v2.15.2 → v2.15.3](pylint-dev/pylint@v2.15.2...v2.15.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* 🔄 Synced file(s) with conda/infra (#11853)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Require `ruamel.yaml` (#11868)

* Update requirements.txt (#11842)

Updating the flask to address multiple CVEs including ones listed in #11831

* Grammatical correction in docs (#11870)

* Removed allow_other_channels from conda docs. (#11866)

* Use maintained `ruamel.yaml` (#11837)

* Try using maintained ruamel.yaml

The conda specific fork is maintained as a conda package only
in
https://github.com/conda-forge/ruamel_yaml-feedstock/tree/master/recipe.
My understanding of what's being patched there seems to indicate it's
just the __init__.py file. I'm hoping just a rename of the
import will be enough, or at least surface what real problems exist.

Ref #10691

* Only use ruamel.yaml

* Use updated ruamel.yaml API

stringio

* Cache yaml parsers

* TEMP CI CHANGE, REMOVE BEFORE MERGE

* Add ruamel_yaml fallback

* Add news

* Undo CI fixes

* Update news

Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>

* document conda-build: pkg_format: 2 (#11881)

* document conda-build: pkg_format: 2
* Apply suggestions from code review

Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>

Co-authored-by: Cheng H. Lee <chenghlee@users.noreply.github.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Conda Bot <18747875+conda-bot@users.noreply.github.com>
Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Shaun Walbridge <46331011+scdub@users.noreply.github.com>
Co-authored-by: Nikhil Raverkar <raverkar.nikhil@gmail.com>
Co-authored-by: Satyam Vyas <vyas.satyam.04@gmail.com>
Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>
Co-authored-by: Daniel Holth <dholth@anaconda.com>
* Add `win-arm64` as a recognized platform (#11778)

* Rename `conda.recipe` to `recipe` (#11774)

* Rename conda.recipe to recipe

* Add news

* Update canary-release action version (#11799)

* Updated conda CLI help to be better for users. (#11708)

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>

* 🔄 Synced file(s) with conda/infra (#11827)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Fix pypy win (#11734)

* [pre-commit.ci] pre-commit autoupdate (#11833)

updates:
- [github.com/akaihola/darker: 1.5.0 → 1.5.1](akaihola/darker@1.5.0...1.5.1)
- [github.com/PyCQA/pylint: v2.15.0 → v2.15.2](pylint-dev/pylint@v2.15.0...v2.15.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fixes an issue that we are having with carnary builds (#11803)

* Fixes an issue that we are having with carnary builds

See this issue for more information:
conda/conda-build#4572

* undoing upates to cytoolz

* Update CONTRIBUTING.md (#11816)

Change all references to `triaging` to `issue sorting` per conda/infrastructure#575

* Release 22.9.0 (#11844)

* Updated .authors.yml

* Updated .mailmap

* Updated news

* Updated authorship for 22.9.0

* Updated CHANGELOG for 22.9.0

* Added first contributions

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add special announcement to changelog.

* Remove emoji to not freak out rever.

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Expose --mach and --arch to devenv script (#11851)

* [pre-commit.ci] pre-commit autoupdate (#11859)

updates:
- [github.com/PyCQA/pylint: v2.15.2 → v2.15.3](pylint-dev/pylint@v2.15.2...v2.15.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* 🔄 Synced file(s) with conda/infra (#11853)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Require `ruamel.yaml` (#11868)

* Update requirements.txt (#11842)

Updating the flask to address multiple CVEs including ones listed in #11831

* Grammatical correction in docs (#11870)

* Removed allow_other_channels from conda docs. (#11866)

* Use maintained `ruamel.yaml` (#11837)

* Try using maintained ruamel.yaml

The conda specific fork is maintained as a conda package only
in
https://github.com/conda-forge/ruamel_yaml-feedstock/tree/master/recipe.
My understanding of what's being patched there seems to indicate it's
just the __init__.py file. I'm hoping just a rename of the
import will be enough, or at least surface what real problems exist.

Ref #10691

* Only use ruamel.yaml

* Use updated ruamel.yaml API

stringio

* Cache yaml parsers

* TEMP CI CHANGE, REMOVE BEFORE MERGE

* Add ruamel_yaml fallback

* Add news

* Undo CI fixes

* Update news

Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>

* document conda-build: pkg_format: 2 (#11881)

* document conda-build: pkg_format: 2
* Apply suggestions from code review

Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>

* Extract script building into helper functions for `conda init --dev` (#11862)

* 🔄 Synced file(s) with conda/infra (#11896)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Refactor conda init shells as argparse choices (#11897)

* remove encoding pragma (not needed in Python 3) (#11880)

* remove encoding pragma (not needed in Python 3)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fail with a readable error message if PackageCacheRecords are missing (#11591)

* Fail with a readable warning if PackageCacheRecords are missing

* Minor fixes to error message.

This also doesn’t use cont.io for the tests.

* More test fixes and minor code cleanup.

* Update news/11591-readable-error-message-if-packagecacherecords-missing

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Avoid a specific case where `conda env update` hangs. (#11818)

When using an environment.yml that asks pip to clone a git repo and
that path exists, pip will ask for user input. As we are not in a
context to provide such, tell pip what to do so it doesn't hang on
waiting for user input.

* Download packages in parallel (#11841)

* format package_cache_data.py with black
* download packages in threads
* improve test coverage
* Apply suggestions from code review

Co-authored-by: Jannis Leidel <jannis@leidel.info>

* Removed ref left behind from removing allow_other_channels docs. (#11908)

* Enable one single test for linux-{aarch64, ppc64le} (#11911)

Run one single fast test per docker+qemu emulated linux platform to test that
test execution is possible there (container+tools+dependencies work). Can be
changed / extended to run specific tests in case there are platform related
things to test. Running more tests is time consuming due to emulation
(factor 2-10x slower).

* Fixed broken URL in conda docs (#11902)

* Replaced bad link.

* Updated release note.

* Update xprocess minio pattern (#11924)

* Updated conda cheatsheet for 4.14.0 release. (#11768)

* Fix for conda update and install issue related to notices (#11852)

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add pyupgrade to pre-commit (#11909)

* [pre-commit.ci] auto fixes from pre-commit.com hooks (#11928)

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Introduce git-blame-ignore-revs file, add pyupgrade commit to it (#11929)

* Update ci-skip workflow. (#11935)

This was forgotten when the 3.10 changes were made.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Cheng H. Lee <chenghlee@users.noreply.github.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>
Co-authored-by: Conda Bot <18747875+conda-bot@users.noreply.github.com>
Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Shaun Walbridge <46331011+scdub@users.noreply.github.com>
Co-authored-by: Nikhil Raverkar <raverkar.nikhil@gmail.com>
Co-authored-by: Satyam Vyas <vyas.satyam.04@gmail.com>
Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>
Co-authored-by: Daniel Holth <dholth@anaconda.com>
Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
Co-authored-by: Samson Yeung <samson_gh@onepatchdown.net>
Co-authored-by: Daniel Bast <2790401+dbast@users.noreply.github.com>
@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label Oct 18, 2022
@jaimergp jaimergp mentioned this pull request Oct 18, 2022
3 tasks
conda/plugins/solvers.py Outdated Show resolved Hide resolved
conda/plugins/specs.py Outdated Show resolved Hide resolved
travishathaway and others added 19 commits October 19, 2022 15:48
* Add `win-arm64` as a recognized platform (#11778)

* Rename `conda.recipe` to `recipe` (#11774)

* Rename conda.recipe to recipe

* Add news

* Update canary-release action version (#11799)

* Updated conda CLI help to be better for users. (#11708)

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>

* 🔄 Synced file(s) with conda/infra (#11827)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Fix pypy win (#11734)

* [pre-commit.ci] pre-commit autoupdate (#11833)

updates:
- [github.com/akaihola/darker: 1.5.0 → 1.5.1](akaihola/darker@1.5.0...1.5.1)
- [github.com/PyCQA/pylint: v2.15.0 → v2.15.2](pylint-dev/pylint@v2.15.0...v2.15.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fixes an issue that we are having with carnary builds (#11803)

* Fixes an issue that we are having with carnary builds

See this issue for more information:
conda/conda-build#4572

* undoing upates to cytoolz

* Update CONTRIBUTING.md (#11816)

Change all references to `triaging` to `issue sorting` per conda/infrastructure#575

* Release 22.9.0 (#11844)

* Updated .authors.yml

* Updated .mailmap

* Updated news

* Updated authorship for 22.9.0

* Updated CHANGELOG for 22.9.0

* Added first contributions

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add special announcement to changelog.

* Remove emoji to not freak out rever.

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Expose --mach and --arch to devenv script (#11851)

* [pre-commit.ci] pre-commit autoupdate (#11859)

updates:
- [github.com/PyCQA/pylint: v2.15.2 → v2.15.3](pylint-dev/pylint@v2.15.2...v2.15.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* 🔄 Synced file(s) with conda/infra (#11853)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Require `ruamel.yaml` (#11868)

* Update requirements.txt (#11842)

Updating the flask to address multiple CVEs including ones listed in #11831

* Grammatical correction in docs (#11870)

* Removed allow_other_channels from conda docs. (#11866)

* Use maintained `ruamel.yaml` (#11837)

* Try using maintained ruamel.yaml

The conda specific fork is maintained as a conda package only
in
https://github.com/conda-forge/ruamel_yaml-feedstock/tree/master/recipe.
My understanding of what's being patched there seems to indicate it's
just the __init__.py file. I'm hoping just a rename of the
import will be enough, or at least surface what real problems exist.

Ref #10691

* Only use ruamel.yaml

* Use updated ruamel.yaml API

stringio

* Cache yaml parsers

* TEMP CI CHANGE, REMOVE BEFORE MERGE

* Add ruamel_yaml fallback

* Add news

* Undo CI fixes

* Update news

Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>

* document conda-build: pkg_format: 2 (#11881)

* document conda-build: pkg_format: 2
* Apply suggestions from code review

Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>

* Extract script building into helper functions for `conda init --dev` (#11862)

* 🔄 Synced file(s) with conda/infra (#11896)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Refactor conda init shells as argparse choices (#11897)

* remove encoding pragma (not needed in Python 3) (#11880)

* remove encoding pragma (not needed in Python 3)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fail with a readable error message if PackageCacheRecords are missing (#11591)

* Fail with a readable warning if PackageCacheRecords are missing

* Minor fixes to error message.

This also doesn’t use cont.io for the tests.

* More test fixes and minor code cleanup.

* Update news/11591-readable-error-message-if-packagecacherecords-missing

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Avoid a specific case where `conda env update` hangs. (#11818)

When using an environment.yml that asks pip to clone a git repo and
that path exists, pip will ask for user input. As we are not in a
context to provide such, tell pip what to do so it doesn't hang on
waiting for user input.

* Download packages in parallel (#11841)

* format package_cache_data.py with black
* download packages in threads
* improve test coverage
* Apply suggestions from code review

Co-authored-by: Jannis Leidel <jannis@leidel.info>

* Removed ref left behind from removing allow_other_channels docs. (#11908)

* Enable one single test for linux-{aarch64, ppc64le} (#11911)

Run one single fast test per docker+qemu emulated linux platform to test that
test execution is possible there (container+tools+dependencies work). Can be
changed / extended to run specific tests in case there are platform related
things to test. Running more tests is time consuming due to emulation
(factor 2-10x slower).

* Fixed broken URL in conda docs (#11902)

* Replaced bad link.

* Updated release note.

* Update xprocess minio pattern (#11924)

* Updated conda cheatsheet for 4.14.0 release. (#11768)

* Fix for conda update and install issue related to notices (#11852)

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add pyupgrade to pre-commit (#11909)

* [pre-commit.ci] auto fixes from pre-commit.com hooks (#11928)

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Introduce git-blame-ignore-revs file, add pyupgrade commit to it (#11929)

* Update ci-skip workflow. (#11935)

This was forgotten when the 3.10 changes were made.

* Check for conda before calling shell hook (#11374)

* Check conda PS1 hook before calling it
* Check for hook script in fish/xonsh/bash
* Adapt test_init_sh_user_windows

* Removing an outdated piece of documentation (#11943)

* Fix bullet point list formatting (#11945)

* Change `metadata_signature_status`'s default value (#11944)

* Change metadata_signature_status's default value

* Add news

* Fix CI workflows to always run (#11941)

* Get rid of the docs check.

* Use all-greens action to use just one job for branch protection.

* add LD_PRELOAD (#11926)

Co-authored-by: Mahe Iram Khan <maheiramkhan@Mahes-MacBook-Pro.fritz.box>

* restore CondaMultiError from package downloads (#11959)

* restore CondaMultiError from package downloads

* [pre-commit.ci] pre-commit autoupdate (#11947)

updates:
- [github.com/asottile/pyupgrade: v2.38.2 → v3.0.0](asottile/pyupgrade@v2.38.2...v3.0.0)
- [github.com/PyCQA/pylint: v2.15.3 → v2.15.4](pylint-dev/pylint@v2.15.3...v2.15.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update a few actions to reduce warnings. (#11963)

* Changed mentioned conda version (#11810)

* Check for actions updates every week. (#11962)

* Bump conda/actions from 22.2.1 to 22.9.0 (#11965)

Bumps [conda/actions](https://github.com/conda/actions) from 22.2.1 to 22.9.0.
- [Release notes](https://github.com/conda/actions/releases)
- [Commits](conda/actions@v22.2.1...v22.9.0)

---
updated-dependencies:
- dependency-name: conda/actions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove toolz accumulate (#11879)

* substitute for toolz.groupby (#11913)

* substitute for toolz.groupby

* Remove custom `argparse` aliases (#11747)

* Remove custom aliasing logic

* Move argument inline into `add_subparsers`

This was added in Python 3.7.

* 🔄 Synced file(s) with conda/infra (#11969)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* UTF 16 and UTF 32 fixes (#9946)

* Use a loop to ensure that prefix is replaced even in utf-16 cases

* Specify little endian and big endian

* Fixup the binary replacement

* keep backward portability

* Add some tests

* Make encoding a string in tests

* Just use a loop

* Match from beginning of prefix

* Add a comment as to why we specify -le and -be

* Attempt minimal changes for binary replacement using a single regex

* Fixup regex

* removing unnecessary

* reverting previous state of some test

* fixing more issues with tests

* updates to enhance code readability

* updating type hint to use Enum

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>

* Replace "experimental solver" with just "solver" (#11889)

* Replace "experimental solver" with just solver

* mock is part of unittest

* add newline for clearer error message

* one more instance

* pre-commit fixes

* PendingDeprecationWarning preferred at this stage

* argparse.Action base class implements __call__ abstractly - do not super()!

* actually, better inherit from _StoreAction

* satisfy pre-commit

* better

* that tiiiny space

* add news

* Update issue template.

* Remove trailing whitespace.

Co-authored-by: Jannis Leidel <jannis@leidel.info>

* Add Plugin Mechanism (#11435)

Initial plugin framework implementation. Adds registration decorator `@conda.plugins.register` and hook `conda_subcommands` this allows simple subcommand registration:

```
import conda.plugins

@conda.plugins.register
def conda_subcommands():
    yield conda.plugins.CondaSubcommand(
        name="my-subcommand",
        summary="...",
        action=<function>,
    )
```

Co-authored-by: Filipe Lains <lains@riseup.net>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Merging latest `main` changes into `feature/plugins` (#11940)

* Add `win-arm64` as a recognized platform (#11778)

* Rename `conda.recipe` to `recipe` (#11774)

* Rename conda.recipe to recipe

* Add news

* Update canary-release action version (#11799)

* Updated conda CLI help to be better for users. (#11708)

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>

* 🔄 Synced file(s) with conda/infra (#11827)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Fix pypy win (#11734)

* [pre-commit.ci] pre-commit autoupdate (#11833)

updates:
- [github.com/akaihola/darker: 1.5.0 → 1.5.1](akaihola/darker@1.5.0...1.5.1)
- [github.com/PyCQA/pylint: v2.15.0 → v2.15.2](pylint-dev/pylint@v2.15.0...v2.15.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fixes an issue that we are having with carnary builds (#11803)

* Fixes an issue that we are having with carnary builds

See this issue for more information:
conda/conda-build#4572

* undoing upates to cytoolz

* Update CONTRIBUTING.md (#11816)

Change all references to `triaging` to `issue sorting` per conda/infrastructure#575

* Release 22.9.0 (#11844)

* Updated .authors.yml

* Updated .mailmap

* Updated news

* Updated authorship for 22.9.0

* Updated CHANGELOG for 22.9.0

* Added first contributions

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Update CHANGELOG.md

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add special announcement to changelog.

* Remove emoji to not freak out rever.

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Expose --mach and --arch to devenv script (#11851)

* [pre-commit.ci] pre-commit autoupdate (#11859)

updates:
- [github.com/PyCQA/pylint: v2.15.2 → v2.15.3](pylint-dev/pylint@v2.15.2...v2.15.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* 🔄 Synced file(s) with conda/infra (#11853)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Require `ruamel.yaml` (#11868)

* Update requirements.txt (#11842)

Updating the flask to address multiple CVEs including ones listed in #11831

* Grammatical correction in docs (#11870)

* Removed allow_other_channels from conda docs. (#11866)

* Use maintained `ruamel.yaml` (#11837)

* Try using maintained ruamel.yaml

The conda specific fork is maintained as a conda package only
in
https://github.com/conda-forge/ruamel_yaml-feedstock/tree/master/recipe.
My understanding of what's being patched there seems to indicate it's
just the __init__.py file. I'm hoping just a rename of the
import will be enough, or at least surface what real problems exist.

Ref #10691

* Only use ruamel.yaml

* Use updated ruamel.yaml API

stringio

* Cache yaml parsers

* TEMP CI CHANGE, REMOVE BEFORE MERGE

* Add ruamel_yaml fallback

* Add news

* Undo CI fixes

* Update news

Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>

* document conda-build: pkg_format: 2 (#11881)

* document conda-build: pkg_format: 2
* Apply suggestions from code review

Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>

* Extract script building into helper functions for `conda init --dev` (#11862)

* 🔄 Synced file(s) with conda/infra (#11896)

Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>

* Refactor conda init shells as argparse choices (#11897)

* remove encoding pragma (not needed in Python 3) (#11880)

* remove encoding pragma (not needed in Python 3)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fail with a readable error message if PackageCacheRecords are missing (#11591)

* Fail with a readable warning if PackageCacheRecords are missing

* Minor fixes to error message.

This also doesn’t use cont.io for the tests.

* More test fixes and minor code cleanup.

* Update news/11591-readable-error-message-if-packagecacherecords-missing

Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Avoid a specific case where `conda env update` hangs. (#11818)

When using an environment.yml that asks pip to clone a git repo and
that path exists, pip will ask for user input. As we are not in a
context to provide such, tell pip what to do so it doesn't hang on
waiting for user input.

* Download packages in parallel (#11841)

* format package_cache_data.py with black
* download packages in threads
* improve test coverage
* Apply suggestions from code review

Co-authored-by: Jannis Leidel <jannis@leidel.info>

* Removed ref left behind from removing allow_other_channels docs. (#11908)

* Enable one single test for linux-{aarch64, ppc64le} (#11911)

Run one single fast test per docker+qemu emulated linux platform to test that
test execution is possible there (container+tools+dependencies work). Can be
changed / extended to run specific tests in case there are platform related
things to test. Running more tests is time consuming due to emulation
(factor 2-10x slower).

* Fixed broken URL in conda docs (#11902)

* Replaced bad link.

* Updated release note.

* Update xprocess minio pattern (#11924)

* Updated conda cheatsheet for 4.14.0 release. (#11768)

* Fix for conda update and install issue related to notices (#11852)

Co-authored-by: Ken Odegard <kodegard@anaconda.com>

* Add pyupgrade to pre-commit (#11909)

* [pre-commit.ci] auto fixes from pre-commit.com hooks (#11928)

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Introduce git-blame-ignore-revs file, add pyupgrade commit to it (#11929)

* Update ci-skip workflow. (#11935)

This was forgotten when the 3.10 changes were made.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Cheng H. Lee <chenghlee@users.noreply.github.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>
Co-authored-by: Conda Bot <18747875+conda-bot@users.noreply.github.com>
Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Shaun Walbridge <46331011+scdub@users.noreply.github.com>
Co-authored-by: Nikhil Raverkar <raverkar.nikhil@gmail.com>
Co-authored-by: Satyam Vyas <vyas.satyam.04@gmail.com>
Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>
Co-authored-by: Daniel Holth <dholth@anaconda.com>
Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
Co-authored-by: Samson Yeung <samson_gh@onepatchdown.net>
Co-authored-by: Daniel Bast <2790401+dbast@users.noreply.github.com>

* remove unused import; silence typing error (#11951)

* Update feature/plugins branch with current main. (#11961)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Cheng H. Lee <chenghlee@users.noreply.github.com>
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
Co-authored-by: Katherine Kinnaman <kkinnaman@anaconda.com>
Co-authored-by: Jannis Leidel <jannis@leidel.info>
Co-authored-by: Bianca Henderson <bhenderson@anaconda.com>
Co-authored-by: Conda Bot <18747875+conda-bot@users.noreply.github.com>
Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com>
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Shaun Walbridge <46331011+scdub@users.noreply.github.com>
Co-authored-by: Nikhil Raverkar <raverkar.nikhil@gmail.com>
Co-authored-by: Satyam Vyas <vyas.satyam.04@gmail.com>
Co-authored-by: YuviPanda <yuvipanda@gmail.com>
Co-authored-by: Orion Poplawski <orion@nwra.com>
Co-authored-by: Daniel Holth <dholth@anaconda.com>
Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
Co-authored-by: Samson Yeung <samson_gh@onepatchdown.net>
Co-authored-by: Daniel Bast <2790401+dbast@users.noreply.github.com>
Co-authored-by: wulmer <wulmer@users.noreply.github.com>
Co-authored-by: Mahe Iram Khan <65779580+ForgottenProgramme@users.noreply.github.com>
Co-authored-by: Mahe Iram Khan <maheiramkhan@Mahes-MacBook-Pro.fritz.box>
Co-authored-by: Arqam Hussain <70997750+arq0017@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Harfouche <mark.harfouche@gmail.com>
Co-authored-by: Jaime Rodríguez-Guerra <jaimergp@users.noreply.github.com>
Co-authored-by: Bianca Henderson <beeankha@gmail.com>
Co-authored-by: Filipe Lains <lains@riseup.net>
* Fix error output bug in rename tests

Co-authored-by: travishathaway <travis.j.hathaway@gmail.com>
conda/cli/conda_argparse.py Outdated Show resolved Hide resolved
conda/core/index.py Outdated Show resolved Hide resolved
conda/plugins/types.py Outdated Show resolved Hide resolved
Copy link
Contributor Author

@jaimergp jaimergp left a comment

Choose a reason for hiding this comment

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

This is looking nice!

I added some comments that do not really change the current work much. I would like to take a deeper look at the tests and how it feels to use this locally but I don't have time right now, so expect a 2nd round of comments tomorrow. Thanks!

Copy link
Contributor

@travishathaway travishathaway left a comment

Choose a reason for hiding this comment

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

Don't see any obvious problems. Let me know if you change anything and need a second round of review.

conda/plugins/types.py Outdated Show resolved Hide resolved
@jezdez jezdez changed the title Implement solver plugin Add solver plugin hook Nov 11, 2022
Copy link
Contributor

@travishathaway travishathaway left a comment

Choose a reason for hiding this comment

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

Couple of additions to the docs that I think will help us later (especially the comment on the plugin_manager property for the context object 😅).

Other than that, looks good.

conda/plugins/types.py Outdated Show resolved Hide resolved
conda/base/context.py Show resolved Hide resolved
jezdez and others added 2 commits November 11, 2022 10:18
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Copy link
Contributor Author

@jaimergp jaimergp left a comment

Choose a reason for hiding this comment

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

I played a bit with the plugin PRs (this one and the sibling in conda-libmamba-solver) and it works as expected.

I don't know how to feel about conda.core.solve._get_solver_class() still being the default way of instantiating the configured solver. It feels a bit weird to have this as a private function (downstream libraries will need to call this), which was okay during the "experimental" phase, but maybe not anymore. Not saying we should change it now, but at some point we might need to think a mechanism that feels better supported / guaranteed to work robustly.

I can't "approve" this because I opened it, but let this comment be equivalent!

✅ 👍 👌 🆗 :D

@jezdez jezdez merged commit 9d51b70 into main Nov 11, 2022
@jezdez jezdez deleted the solver-plugin branch November 11, 2022 22:56
@github-actions github-actions bot added the locked [bot] locked due to inactivity label Nov 18, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 18, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla-signed [bot] added once the contributor has signed the CLA in-progress issue is actively being worked on locked [bot] locked due to inactivity plugins pertains to a plugin/subcommand
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

6 participants