conda / conda

A system-level, binary package and environment manager running on all major operating systems and platforms.

Home Page:https://docs.conda.io/projects/conda/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plugin system: transaction action plugins

jaimergp opened this issue · comments

Checklist

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

What is the idea?

Add a plugin hook to allow developing new transaction actions.

Why is this needed?

The transaction system is the natural fit for many post-solve operations that require access to the recently solved environment. I'm seeing this need in conda-pip and conda-checkpoints, for example.

The transaction API is also a natural fit for rollbacks and other operations that affect the disk (like placing files in strategic paths with EXTERNALLY-MANAGED or menuinst shortcuts).

What should happen?

A new transaction plugin hook could be added to classes that inherit the _Action API.

Additional Context

This is similar to post-solves in a way, but not quite. Post-solves run before the transaction is created, don't have rollbacks and are more designed for additional checks, not operations in disk.