-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add Plugin Mechanism #11435
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 Plugin Mechanism #11435
Conversation
e9045cf
to
11096ad
Compare
7c2a1e6
to
1fd8d2a
Compare
a7a6cf8
to
fc952f4
Compare
3ec444c
to
7508c52
Compare
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
Co-authored-by: Travis Hathaway <travis.j.hathaway@gmail.com>
203565c
to
23ad3a7
Compare
|
||
@conda.plugins.register | ||
def conda_subcommands(): | ||
... |
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.
So each hook implementation is supposed to have the same name and number of arguments as a hook spec. So far there is only a "conda_subcommands" hook spec. pluggy only checks the name and number of arguments, and doesn't do any e.g. isinstance
or Python annotations checks.
Then pluggy makes it easy to call every registered conda_subcommands
function by calling pluginmanager.hook.conda_subcommands(arguments)
, (in this case no arguments), passes any arguments to all the plugins, and returns a list (in this case a list of lists) of results.
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.
correct, we have some ideas for making this cleaner/safer but yes that's roughly how pluggy works
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.
it should be straightforward to e.g. read type annotations off the collected hooks instead of calling them right away, if we wanted to do pluggy++
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.
maybe the stdlib doesn't have 'are these two type annotations compatible' functions
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.
but since this is Python we should also follow duck typing, looks like a plugin, acts like a plugin 🤷🏼♂️
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>
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>
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>
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> * 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>
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 (conda#11778) * Rename `conda.recipe` to `recipe` (conda#11774) * Rename conda.recipe to recipe * Add news * Update canary-release action version (conda#11799) * Updated conda CLI help to be better for users. (conda#11708) Co-authored-by: Jannis Leidel <jannis@leidel.info> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> * 🔄 Synced file(s) with conda/infra (conda#11827) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Fix pypy win (conda#11734) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#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 (conda#11816) Change all references to `triaging` to `issue sorting` per conda/infrastructure#575 * Release 22.9.0 (conda#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 (conda#11851) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#11853) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Require `ruamel.yaml` (conda#11868) * Update requirements.txt (conda#11842) Updating the flask to address multiple CVEs including ones listed in conda#11831 * Grammatical correction in docs (conda#11870) * Removed allow_other_channels from conda docs. (conda#11866) * Use maintained `ruamel.yaml` (conda#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 conda#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 (conda#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` (conda#11862) * 🔄 Synced file(s) with conda/infra (conda#11896) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Refactor conda init shells as argparse choices (conda#11897) * remove encoding pragma (not needed in Python 3) (conda#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 (conda#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. (conda#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 (conda#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. (conda#11908) * Enable one single test for linux-{aarch64, ppc64le} (conda#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 (conda#11902) * Replaced bad link. * Updated release note. * Update xprocess minio pattern (conda#11924) * Updated conda cheatsheet for 4.14.0 release. (conda#11768) * Fix for conda update and install issue related to notices (conda#11852) Co-authored-by: Ken Odegard <kodegard@anaconda.com> * Add pyupgrade to pre-commit (conda#11909) * [pre-commit.ci] auto fixes from pre-commit.com hooks (conda#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 (conda#11929) * Update ci-skip workflow. (conda#11935) This was forgotten when the 3.10 changes were made. * Check for conda before calling shell hook (conda#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 (conda#11943) * Fix bullet point list formatting (conda#11945) * Change `metadata_signature_status`'s default value (conda#11944) * Change metadata_signature_status's default value * Add news * Fix CI workflows to always run (conda#11941) * Get rid of the docs check. * Use all-greens action to use just one job for branch protection. * add LD_PRELOAD (conda#11926) Co-authored-by: Mahe Iram Khan <maheiramkhan@Mahes-MacBook-Pro.fritz.box> * restore CondaMultiError from package downloads (conda#11959) * restore CondaMultiError from package downloads * [pre-commit.ci] pre-commit autoupdate (conda#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. (conda#11963) * Changed mentioned conda version (conda#11810) * Check for actions updates every week. (conda#11962) * Bump conda/actions from 22.2.1 to 22.9.0 (conda#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 (conda#11879) * substitute for toolz.groupby (conda#11913) * substitute for toolz.groupby * Remove custom `argparse` aliases (conda#11747) * Remove custom aliasing logic * Move argument inline into `add_subparsers` This was added in Python 3.7. * 🔄 Synced file(s) with conda/infra (conda#11969) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * UTF 16 and UTF 32 fixes (conda#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" (conda#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 (conda#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` (conda#11940) * Add `win-arm64` as a recognized platform (conda#11778) * Rename `conda.recipe` to `recipe` (conda#11774) * Rename conda.recipe to recipe * Add news * Update canary-release action version (conda#11799) * Updated conda CLI help to be better for users. (conda#11708) Co-authored-by: Jannis Leidel <jannis@leidel.info> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> * 🔄 Synced file(s) with conda/infra (conda#11827) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Fix pypy win (conda#11734) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#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 (conda#11816) Change all references to `triaging` to `issue sorting` per conda/infrastructure#575 * Release 22.9.0 (conda#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 (conda#11851) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#11853) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Require `ruamel.yaml` (conda#11868) * Update requirements.txt (conda#11842) Updating the flask to address multiple CVEs including ones listed in conda#11831 * Grammatical correction in docs (conda#11870) * Removed allow_other_channels from conda docs. (conda#11866) * Use maintained `ruamel.yaml` (conda#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 conda#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 (conda#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` (conda#11862) * 🔄 Synced file(s) with conda/infra (conda#11896) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Refactor conda init shells as argparse choices (conda#11897) * remove encoding pragma (not needed in Python 3) (conda#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 (conda#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. (conda#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 (conda#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. (conda#11908) * Enable one single test for linux-{aarch64, ppc64le} (conda#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 (conda#11902) * Replaced bad link. * Updated release note. * Update xprocess minio pattern (conda#11924) * Updated conda cheatsheet for 4.14.0 release. (conda#11768) * Fix for conda update and install issue related to notices (conda#11852) Co-authored-by: Ken Odegard <kodegard@anaconda.com> * Add pyupgrade to pre-commit (conda#11909) * [pre-commit.ci] auto fixes from pre-commit.com hooks (conda#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 (conda#11929) * Update ci-skip workflow. (conda#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 (conda#11951) * Update feature/plugins branch with current main. (conda#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>
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 (conda#11778) * Rename `conda.recipe` to `recipe` (conda#11774) * Rename conda.recipe to recipe * Add news * Update canary-release action version (conda#11799) * Updated conda CLI help to be better for users. (conda#11708) Co-authored-by: Jannis Leidel <jannis@leidel.info> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> * 🔄 Synced file(s) with conda/infra (conda#11827) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Fix pypy win (conda#11734) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#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 (conda#11816) Change all references to `triaging` to `issue sorting` per conda/infrastructure#575 * Release 22.9.0 (conda#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 (conda#11851) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#11853) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Require `ruamel.yaml` (conda#11868) * Update requirements.txt (conda#11842) Updating the flask to address multiple CVEs including ones listed in conda#11831 * Grammatical correction in docs (conda#11870) * Removed allow_other_channels from conda docs. (conda#11866) * Use maintained `ruamel.yaml` (conda#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 conda#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 (conda#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` (conda#11862) * 🔄 Synced file(s) with conda/infra (conda#11896) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Refactor conda init shells as argparse choices (conda#11897) * remove encoding pragma (not needed in Python 3) (conda#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 (conda#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. (conda#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 (conda#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. (conda#11908) * Enable one single test for linux-{aarch64, ppc64le} (conda#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 (conda#11902) * Replaced bad link. * Updated release note. * Update xprocess minio pattern (conda#11924) * Updated conda cheatsheet for 4.14.0 release. (conda#11768) * Fix for conda update and install issue related to notices (conda#11852) Co-authored-by: Ken Odegard <kodegard@anaconda.com> * Add pyupgrade to pre-commit (conda#11909) * [pre-commit.ci] auto fixes from pre-commit.com hooks (conda#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 (conda#11929) * Update ci-skip workflow. (conda#11935) This was forgotten when the 3.10 changes were made. * Check for conda before calling shell hook (conda#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 (conda#11943) * Fix bullet point list formatting (conda#11945) * Change `metadata_signature_status`'s default value (conda#11944) * Change metadata_signature_status's default value * Add news * Fix CI workflows to always run (conda#11941) * Get rid of the docs check. * Use all-greens action to use just one job for branch protection. * add LD_PRELOAD (conda#11926) Co-authored-by: Mahe Iram Khan <maheiramkhan@Mahes-MacBook-Pro.fritz.box> * restore CondaMultiError from package downloads (conda#11959) * restore CondaMultiError from package downloads * [pre-commit.ci] pre-commit autoupdate (conda#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. (conda#11963) * Changed mentioned conda version (conda#11810) * Check for actions updates every week. (conda#11962) * Bump conda/actions from 22.2.1 to 22.9.0 (conda#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 (conda#11879) * substitute for toolz.groupby (conda#11913) * substitute for toolz.groupby * Remove custom `argparse` aliases (conda#11747) * Remove custom aliasing logic * Move argument inline into `add_subparsers` This was added in Python 3.7. * 🔄 Synced file(s) with conda/infra (conda#11969) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * UTF 16 and UTF 32 fixes (conda#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" (conda#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 (conda#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` (conda#11940) * Add `win-arm64` as a recognized platform (conda#11778) * Rename `conda.recipe` to `recipe` (conda#11774) * Rename conda.recipe to recipe * Add news * Update canary-release action version (conda#11799) * Updated conda CLI help to be better for users. (conda#11708) Co-authored-by: Jannis Leidel <jannis@leidel.info> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> * 🔄 Synced file(s) with conda/infra (conda#11827) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Fix pypy win (conda#11734) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#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 (conda#11816) Change all references to `triaging` to `issue sorting` per conda/infrastructure#575 * Release 22.9.0 (conda#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 (conda#11851) * [pre-commit.ci] pre-commit autoupdate (conda#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 (conda#11853) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Require `ruamel.yaml` (conda#11868) * Update requirements.txt (conda#11842) Updating the flask to address multiple CVEs including ones listed in conda#11831 * Grammatical correction in docs (conda#11870) * Removed allow_other_channels from conda docs. (conda#11866) * Use maintained `ruamel.yaml` (conda#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 conda#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 (conda#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` (conda#11862) * 🔄 Synced file(s) with conda/infra (conda#11896) Co-authored-by: Conda Bot <conda-bot@users.noreply.github.com> * Refactor conda init shells as argparse choices (conda#11897) * remove encoding pragma (not needed in Python 3) (conda#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 (conda#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. (conda#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 (conda#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. (conda#11908) * Enable one single test for linux-{aarch64, ppc64le} (conda#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 (conda#11902) * Replaced bad link. * Updated release note. * Update xprocess minio pattern (conda#11924) * Updated conda cheatsheet for 4.14.0 release. (conda#11768) * Fix for conda update and install issue related to notices (conda#11852) Co-authored-by: Ken Odegard <kodegard@anaconda.com> * Add pyupgrade to pre-commit (conda#11909) * [pre-commit.ci] auto fixes from pre-commit.com hooks (conda#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 (conda#11929) * Update ci-skip workflow. (conda#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 (conda#11951) * Update feature/plugins branch with current main. (conda#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>
* 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> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> Co-authored-by: Daniel Holth <dholth@anaconda.com>
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 Plugin Mechanism (conda#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> Co-authored-by: Bianca Henderson <bhenderson@anaconda.com> Co-authored-by: Daniel Holth <dholth@anaconda.com>
A
conda
plugin system was initially implemented by @FFY00 in #11121; this initial PR will remain open for reference until all of the work discussed in Issue #11112 is complete.This particular PR's purpose is to split out the mechanism/infrastructure parts of that work so that we can merge the new plugins feature via manageable chunks that can be fully tested before implementing specific plugins (e.g., virtual packages, authentication, shell integration, license acceptance, etc).
We will also be adding documentation relevant to the work being implemented in this PR (a simple tutorial, an overview of how the infrastructure portion of the plugins works, etc)