New Plugin Version
How to add a new version of your plugin
The Aragon OSx protocol has an on-chain versioning system built-in, which distinguishes between releases and builds.
- Releases contain breaking changes, which are incompatible with preexisting installations. Updates to a different release are not possible. Instead, you must install the new plugin release and uninstall the old one.
- Builds are minor/patch versions within a release, and they are meant for compatible upgrades only (adding a feature or fixing a bug without changing anything else).
Builds are particularly important for UUPSUpgradeable plugins, whereas a non-upgradeable plugin will work off of only releases.
Given a version tag RELEASE.BUILD, we can infer that:
We are doing a
RELEASEversion when we apply breaking changes affecting the interaction with other contracts on the blockchain to:The
Pluginimplementation contract such as the- change or removal of storage variables
- removal of external functions
- change of external function headers
We are doing a
BUILDversion when we apply backward compatible changes not affecting the interaction with other contracts on the blockchain to:The
Pluginimplementation contract such as theaddition of
- storage variables
- external functions
change of
- external function bodies
addition, change, or removal of
- internal functions
- constants
- immutables
- events
- errors
The
PluginSetupcontract such asaddition, change, or removal of
- input parameters
- helper contracts
- requested permissions
The release and build
metadataURIs such as thechange of
- the plugin setup ABI
- the plugin UI components
- the plugin description