================= 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`.