This week, the Governance team is proposing one upgrade for the SNS framework. DFINITY plans to vote on this proposal the following Tuesday.
- SNS Governance — https://dashboard.internetcomputer.org/proposal/135615
This proposal is shifted by a day because it took a bit longer to merge the changes that we wanted to include into the release.
SNS Governance
# Publish SNS Governance WASM Built at Commit ebb190b
__Proposer__: arshavir.ter.gabrielyan at dfinity.org
__Source code__: [ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3][new-commit]
[new-commit]: https://github.com/dfinity/ic/tree/ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3
## Features & Fixes
### Added
* New type of SNS proposals `SetTopicsForCustomProposals` can be used to batch-set topics for all custom proposals (or any non-empty subset thereof) at once.
Example usage:
```bash
dfx canister --ic call ${SNS_GOVERNANCE_CANISTER_ID} manage_neuron '(
record {
subaccount = blob "'${PROPOSER_SNS_NEURON_SUBACCOUNT}'";
command = opt variant {
MakeProposal = record {
url = "https://forum.dfinity.org/t/sns-topics-plan";
title = "Set topics for custom SNS proposals";
action = opt variant {
SetTopicsForCustomProposals = record {
custom_function_id_to_topic = vec {
record {
1001 : nat64;
variant { ApplicationBusinessLogic };
};
record {
1002 : nat64;
variant { DaoCommunitySettings };
};
};
}
};
summary = "Set topics ApplicationBusinessLogic and \
DaoCommunitySettings for SNS proposals with \
IDs 1001 and 1002 resp.";
}
};
},
)'
```
### Changed
* Enable
[automatic target version advancement](https://forum.dfinity.org/t/proposal-opt-in-mechanism-for-automatic-sns-target-version-advancement/39874)
for newly deployed SNSs. To opt out, please submit a `ManageNervousSystemParameters` proposal, e.g.:
```bash
dfx canister --ic call ${SNS_GOVERNANCE_CANISTER_ID} manage_neuron '(
record {
subaccount = blob "'${PROPOSER_SNS_NEURON_SUBACCOUNT}'";
command = opt variant {
MakeProposal = record {
url = "https://forum.dfinity.org/t/proposal-opt-in-mechanism-for-automatic-sns-target-version-advancement";
title = "Opt out from automatic advancement of SNS target versions";
action = opt variant {
ManageNervousSystemParameters = record {
automatically_advance_target_version = opt false;
}
};
summary = "Disable automatically advancing the target version \
of this SNS to have full control over the delivery of SNS framework \
upgrades blessed by the NNS.";
}
};
},
)'
```
### Fixed
* `ManageNervousSystemParameters` proposals now enforce that at least one field is set.
* Errors caused by trying to submit proposals restricted in pre-initialization mode should no
longer overflow.
## New Commits
```
$ git log --format="%C(auto) %h %s" 00b04a892dfb2fee1459f1de9d4a731aa04f1ca3..ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3 -- ./rs/sns/governance
ebb190bf1d chore(sns): Rename `SetCustomProposalTopics` into `SetTopicsForCustomProposals` (#4185)
4050fa7d4e feat(sns): Introduce `SetCustomProposalTopics` proposal type (#4162)
873d9cb2ff refactor(nns): Make Governance environment parameters compatible with timer usages (#4161)
9bcb5d989b fix(sns): Bound SNS Governance response size for proposal submission (#4125)
8dd9666a3c test(sns): Custom upgrade paths work with advancing target SNS version (#4077)
f70f89db22 feat(sns): Enable automatic advancement of SNS target versions for newly launches SNSs (#3901)
c38ebaaf5d fix(sns): Disallow `ManageNervousSystemParameters` proposals that do not set any fields (#4037)
b215232f64 fix(governance-tools): Proposal URL was wrong. (#3981)
05601afe26 chore(nervous-system): Update changelog for release 2025-02-14 (#3967)
```
## Wasm Verification
See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.
[how to verify]: https://github.com/dfinity/ic/tree/ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3/rs/nervous_system/docs/proposal_verification.md
See ["Building the code"][prereqs] for prerequisites.
[prereqs]: https://github.com/dfinity/ic/tree/ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3/README.adoc#building-the-code
```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3
# 2. Build canisters.
./ci/container/build-ic.sh -c
# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/sns-governance-canister.wasm.gz
```
This should match `wasm` field of this proposal.