Pop Release 7.0.0¶
The Plugin Oriented Programming implementation has reached version 7.0.0!
The main highlight of this release is the addition of contract sigs. This new interface allows for contracts to enforce plugin implementation on a granular level.
The main deprecation of this release is that the tools
sub has been
renamed to pop. This is a serious breaking change as if affects all
pop based software, but since we are early on here, now is the time!
Contract Signatures¶
Contract Signatures or sigs
allow for plugin interfaces to be defined
and enforced via the contract system. This makes it so that a plugin
will fail to load if it does not implement the function signature that
is defined in the contract.
Contract Signatures also enforce python typing annotations. This allows for very granular typing to be mandated for defined interfaces.
Take a look at the new contracts document for more details
Removal of the functions Interface From Contracts¶
The original implementation of contracts looked for a function called functions which would return a list of required functions for a contracted plugin to implement. With the introduction of sigs this feature is completely superseded and is no longer needed.
Change tools to pop¶
In older docs and releases the tools
sub is automatically added when
a new hub is created. We decided to change the name of tools
to pop.
This is a serious breaking change, but this is very early in the development
of pop and so this is the time to do it!
To fix your existing code just grep for hub.tools and replace them with refs to hub.pop.