Join GitHub today
This page provides a summary of what CVEI means, how and and where it's helpful to employ.
CVEI is short for..
..and represents an architectural pattern for building plug-ins with Pyblish that favours low maintenance cost, flexibility and efficiency. The goal of which is to enable interoperability between other stacks that also align to CVEI.
Formerly known as SVEC.
A CVEI-compatible stack assumes that publishes are idempotent and that published content is immutable. What does that mean? To be idempotent means that publishing once has the exact same effect as publishing twice. It means that publishing doesn't have any effect on subsequent publishes. The one exception to this rule is immutability. To be immutable means to never change. Which means that once content has been published, it is never modified in any way, such as overwriting it with more recent data. Because it can never be altered, it means that new data must be created each time a publish occurs, which is the exception to idempotency as publishing twice then means to output onto different locations.
CVEI consists of four stages of orthogonal responsibilities.
- Collection is about collecting information
- Validation is about validating this information
- Extraction serialises this information
- Integration then integrates the serialised information with the surrounding pipeline
Each stage runs after the other and hinges on the success of Validation; if Validation fails, nothing is written.
Test Your Stack
See which one of these are true for you in order to determine whether or not your stack of plug-ins follow the CVEI-methodology.
- No plug-in make modifications to its input (1 point)
- No plug-in depend on another plug-in (2 points)
- Collection is the only point at which data is read out-of-band (3 points)
- Integration is the only point at which data is written out-of-band (2 points)
- All plug-ins are compatible with both Python 2 and 3 (1 point)
|3-5||Some work is required|
Attach a badge equivalent to your score along with your Pyblish package to let others know what to expect.