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
RELEASE
version when we apply breaking changes affecting the interaction with other contracts on the blockchain to:The
Plugin
implementation contract such as the- change or removal of storage variables
- removal of external functions
- change of external function headers
We are doing a
BUILD
version when we apply backward compatible changes not affecting the interaction with other contracts on the blockchain to:The
Plugin
implementation 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
PluginSetup
contract such asaddition, change, or removal of
- input parameters
- helper contracts
- requested permissions
The release and build
metadata
URIs such as thechange of
- the plugin setup ABI
- the plugin UI components
- the plugin description