Skip to content

Implement Virtual Package Plugin Hook and Plugins #11811

@beeankha

Description

@beeankha

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

Why is this needed?

Virtual Package Hooks

An implementation of virtual packages via the plugin system would be a good use-case for the new plugin infrastructure, since it will enable other virtual packages to be able to be utilized without requiring direct changes to the conda codebase; we will need to create hooks for these first.

Virtual Package Plugins

Virtual packages defined by conda can be implemented as core plugins under the conda.plugins.* namespace and registered directly in conda.base.context.get_plugin_manager. The virtual packages plugins will be shipped by default with conda, as an initial set of officially conda-developed plugins.

What should happen?

Hooks that enable virtual package plugins will be created in the plugins/__init__.py file. After that,index.py will be refactored to accommodate for usage of plugins (vs hard-coded virtual package detection), and we will develop separate plugin modules for our currently-supported virtual packages (i.e., Linux, CUDA, MacOS, Windows) which will live in the plugins directory. These will then get registered directly in conda.base.context.get_plugin_manager instead of via entrypoints.

Additional Context

This work is a continuation of the initial plugin implementation here (connected to issue #11112).

Metadata

Metadata

Labels

in-progressissue is actively being worked onlocked[bot] locked due to inactivitypluginspertains to a plugin/subcommandsource::anacondacreated by members of Anaconda, Inc.type::featurerequest for a new feature or capability

Type

No type

Projects

Status

🏁 Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions