From 05b6ffc22d24fe3a8b50d8a805677c3b990d2f45 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Fri, 19 Jan 2024 10:03:38 +0100 Subject: [PATCH 1/2] docs: added version numbers to plugin implementations and setups --- packages/contracts/src/plugins/governance/admin/Admin.sol | 1 + packages/contracts/src/plugins/governance/admin/AdminSetup.sol | 1 + .../majority-voting/addresslist/AddresslistVoting.sol | 2 +- .../majority-voting/addresslist/AddresslistVotingSetup.sol | 1 + .../plugins/governance/majority-voting/token/TokenVoting.sol | 2 +- .../governance/majority-voting/token/TokenVotingSetup.sol | 1 + .../contracts/src/plugins/governance/multisig/Multisig.sol | 3 ++- .../src/plugins/governance/multisig/MultisigSetup.sol | 3 ++- 8 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/contracts/src/plugins/governance/admin/Admin.sol b/packages/contracts/src/plugins/governance/admin/Admin.sol index 1b9c36e53..3193e0ce0 100644 --- a/packages/contracts/src/plugins/governance/admin/Admin.sol +++ b/packages/contracts/src/plugins/governance/admin/Admin.sol @@ -12,6 +12,7 @@ import {IDAO} from "@aragon/osx-commons-contracts/src/dao/IDAO.sol"; /// @title Admin /// @author Aragon Association - 2022-2023 /// @notice The admin governance plugin giving execution permission on the DAO to a single address. +/// @dev v1.1 (Release 1, Build 1) /// @custom:security-contact sirt@aragon.org contract Admin is IMembership, PluginCloneable, ProposalUpgradeable { using SafeCastUpgradeable for uint256; diff --git a/packages/contracts/src/plugins/governance/admin/AdminSetup.sol b/packages/contracts/src/plugins/governance/admin/AdminSetup.sol index ce88dd477..c67183ffd 100644 --- a/packages/contracts/src/plugins/governance/admin/AdminSetup.sol +++ b/packages/contracts/src/plugins/governance/admin/AdminSetup.sol @@ -15,6 +15,7 @@ import {Admin} from "./Admin.sol"; /// @title AdminAddressSetup /// @author Aragon Association - 2022-2023 /// @notice The setup contract of the `Admin` plugin. +/// @dev v1.1 (Release 1, Build 1) /// @custom:security-contact sirt@aragon.org contract AdminSetup is PluginSetup { using Clones for address; diff --git a/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVoting.sol b/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVoting.sol index bf9f7bf51..34965272f 100644 --- a/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVoting.sol +++ b/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVoting.sol @@ -15,7 +15,7 @@ import {IMajorityVoting} from "../IMajorityVoting.sol"; /// @title AddresslistVoting /// @author Aragon Association - 2021-2023. /// @notice The majority voting implementation using a list of member addresses. -/// @dev This contract inherits from `MajorityVotingBase` and implements the `IMajorityVoting` interface. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract AddresslistVoting is IMembership, Addresslist, MajorityVotingBase { using SafeCastUpgradeable for uint256; diff --git a/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVotingSetup.sol b/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVotingSetup.sol index fbb38bcd0..cd2f8a045 100644 --- a/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVotingSetup.sol +++ b/packages/contracts/src/plugins/governance/majority-voting/addresslist/AddresslistVotingSetup.sol @@ -14,6 +14,7 @@ import {AddresslistVoting} from "./AddresslistVoting.sol"; /// @title AddresslistVotingSetup /// @author Aragon Association - 2022-2023 /// @notice The setup contract of the `AddresslistVoting` plugin. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract AddresslistVotingSetup is PluginSetup { /// @notice The address of `AddresslistVoting` plugin logic contract to be used in creating proxy contracts. diff --git a/packages/contracts/src/plugins/governance/majority-voting/token/TokenVoting.sol b/packages/contracts/src/plugins/governance/majority-voting/token/TokenVoting.sol index 0d788ce7d..b9bf503bd 100644 --- a/packages/contracts/src/plugins/governance/majority-voting/token/TokenVoting.sol +++ b/packages/contracts/src/plugins/governance/majority-voting/token/TokenVoting.sol @@ -16,7 +16,7 @@ import {IMajorityVoting} from "../IMajorityVoting.sol"; /// @title TokenVoting /// @author Aragon Association - 2021-2023 /// @notice The majority voting implementation using an [OpenZeppelin `Votes`](https://docs.openzeppelin.com/contracts/4.x/api/governance#Votes) compatible governance token. -/// @dev This contract inherits from `MajorityVotingBase` and implements the `IMajorityVoting` interface. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract TokenVoting is IMembership, MajorityVotingBase { using SafeCastUpgradeable for uint256; diff --git a/packages/contracts/src/plugins/governance/majority-voting/token/TokenVotingSetup.sol b/packages/contracts/src/plugins/governance/majority-voting/token/TokenVotingSetup.sol index 79f20d98e..ca9b8460c 100644 --- a/packages/contracts/src/plugins/governance/majority-voting/token/TokenVotingSetup.sol +++ b/packages/contracts/src/plugins/governance/majority-voting/token/TokenVotingSetup.sol @@ -24,6 +24,7 @@ import {TokenVoting} from "./TokenVoting.sol"; /// @title TokenVotingSetup /// @author Aragon Association - 2022-2023 /// @notice The setup contract of the `TokenVoting` plugin. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract TokenVotingSetup is PluginSetup { using Address for address; diff --git a/packages/contracts/src/plugins/governance/multisig/Multisig.sol b/packages/contracts/src/plugins/governance/multisig/Multisig.sol index 98840c9de..84bac9397 100644 --- a/packages/contracts/src/plugins/governance/multisig/Multisig.sol +++ b/packages/contracts/src/plugins/governance/multisig/Multisig.sol @@ -12,9 +12,10 @@ import {IDAO} from "@aragon/osx-commons-contracts/src/dao/IDAO.sol"; import {IMultisig} from "./IMultisig.sol"; -/// @title Multisig - Release 1, Build 2 +/// @title Multisig /// @author Aragon Association - 2022-2023 /// @notice The on-chain multisig governance plugin in which a proposal passes if X out of Y approvals are met. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract Multisig is IMultisig, diff --git a/packages/contracts/src/plugins/governance/multisig/MultisigSetup.sol b/packages/contracts/src/plugins/governance/multisig/MultisigSetup.sol index aa0a6ed54..631165dd5 100644 --- a/packages/contracts/src/plugins/governance/multisig/MultisigSetup.sol +++ b/packages/contracts/src/plugins/governance/multisig/MultisigSetup.sol @@ -10,9 +10,10 @@ import {IDAO} from "@aragon/osx-commons-contracts/src/dao/IDAO.sol"; import {DAO} from "../../../core/dao/DAO.sol"; import {Multisig} from "./Multisig.sol"; -/// @title MultisigSetup - Release 1, Build 2 +/// @title MultisigSetup /// @author Aragon Association - 2022-2023 /// @notice The setup contract of the `Multisig` plugin. +/// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org contract MultisigSetup is PluginSetup { /// @notice The address of `Multisig` plugin logic contract to be used in creating proxy contracts. From 559a631615af0c4a0501f72145364701c26b1143 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Fri, 19 Jan 2024 10:10:38 +0100 Subject: [PATCH 2/2] chore: maintained checklists --- DEPLOYMENT_CHECKLIST.md | 9 +++++---- UPDATE_CHECKLIST.md | 8 +++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/DEPLOYMENT_CHECKLIST.md b/DEPLOYMENT_CHECKLIST.md index 0d41b68c7..c66fcacf1 100644 --- a/DEPLOYMENT_CHECKLIST.md +++ b/DEPLOYMENT_CHECKLIST.md @@ -6,10 +6,11 @@ This checklist is seen as a guide to deploy the stack to a new chain. - [ ] Verify that the deployers wallet has enough funds. - [ ] Check that the subgraph hoster supports the network OSx is deployed to. -- [ ] Make sure you are using Node v16 -- [ ] Make sure you are using the intended `@aragon/osx-commons-contracts` package version. -- [ ] Make sure that the OSx protocol version in `@aragon/osx-commons-contracts/src/utils/versioning/ProtocolVersion.sol` is bumped correctly. -- [ ] Make sure that the semver number in `osx/packages/contracts/src/package.json` matches with that of `@aragon/osx-commons-contracts`. The pre-release suffix is allowed to differ. +- [ ] Check that you are using Node v16 +- [ ] Check that you are using the intended `@aragon/osx-commons-contracts` package version. +- [ ] Check that the OSx protocol version in `@aragon/osx-commons-contracts/src/utils/versioning/ProtocolVersion.sol` is bumped correctly. +- [ ] Check that the semver number in `osx/packages/contracts/src/package.json` matches with that of `@aragon/osx-commons-contracts`. The pre-release suffix is allowed to differ. +- [ ] Check that the version tags in the `/// @dev vX.Y (Release X, Build Y)` NatSpec comments of the plugin implementation and setup contracts are correct. - [ ] Check that version tags are set correctly in the plugin repo deploy scripts `packages/contracts/deploy/new/30_plugins/10_plugin-repos` to ensure synchronized version numbers across all supported networks. - [ ] Choose an ENS domain for DAOs - [ ] Choose an ENS domain for plugins diff --git a/UPDATE_CHECKLIST.md b/UPDATE_CHECKLIST.md index 6cfaaca66..e7ff42ca8 100644 --- a/UPDATE_CHECKLIST.md +++ b/UPDATE_CHECKLIST.md @@ -5,9 +5,11 @@ This checklist is seen as a guide to update the existing deployment. ## Pre-Update - [ ] Make sure you are using Node v16 -- [ ] Make sure you are using the intended `@aragon/osx-commons-contracts` package version. -- [ ] Make sure that the OSx protocol version in `@aragon/osx-commons-contracts/src/utils/versioning/ProtocolVersion.sol` is bumped correctly. -- [ ] Make sure that the semver number in `osx/packages/contracts/src/package.json` matches with that of `@aragon/osx-commons-contracts`. The pre-release suffix is allowed to differ. +- [ ] Check that you are using the intended `@aragon/osx-commons-contracts` package version. +- [ ] Check that the OSx protocol version in `@aragon/osx-commons-contracts/src/utils/versioning/ProtocolVersion.sol` is bumped correctly. +- [ ] Check that the semver number in `osx/packages/contracts/src/package.json` matches with that of `@aragon/osx-commons-contracts`. The pre-release suffix is allowed to differ. +- [ ] Check that the version tags in the `/// @dev vX.Y (Release X, Build Y)` NatSpec comments of the plugin implementation and setup contracts are correct. +- [ ] Check that version tags are set correctly in the plugin repo deploy scripts `packages/contracts/deploy/new/30_plugins/10_plugin-repos` to ensure synchronized version numbers across all supported networks. - [ ] Verify that all changes of this update are reflected in [contracts/CHANGELOG.md](packages/contracts/CHANGELOG.md) by comparing the diff with the previous release commit. - [ ] Check that storage corruption tests using OZ's `hardhat-upgrades` package (e.g., by using the methods in [uups-upgradeable.ts](packages/contracts/test/test-utils/uups-upgradeable.ts)) exist for every upgradeable contract and test the upgrade from all prior versions to the current version. - [ ] Check that all contracts that undergo an upgrade and