Skip to content

Demo: transaction based installer plugin hooks #103

@soapy1

Description

@soapy1

An alternative way to structure the installer plugin hooks is to accept a list of packages and return a set of transactions for conda to execute. In this approach, the installer plugin is responsible for creating the custom transactions. And conda is responsible for executing them. So, the plugin is not responsible for making modifications to the filesystem.

An interface might look like:

def install(
  prefix: str, specs: Iterable[str], *args, **kwargs
) -> Action

The goal of this issue is to write a demo to try this approach to installer plugins. It would be good to start with 2 plugins:

  • an identity plugin that is able to inject a simple action into the conda transaction system. This is a first step to prove that this approach is possible. If this is successful, create a follow up pip plugin
  • a pip plugin that injects some actions for installing pip packages.

ref: https://docs.google.com/document/d/1ca1jvxV1a82wS-veU3WYwoP9fk6I7DljzjUSB2Y8yZ4/edit?pli=1&tab=t.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    TODO 📬

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions