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.