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.