Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(x/gov): constitution amendments can update the constitution #25

Merged
merged 11 commits into from
Sep 25, 2024

Conversation

giunatale
Copy link
Collaborator

The ProposeConstitutionAmendment msg that is used for constitution amendment proposals now contains an amendment field, that needs to be in unified diff format (the output of diff -u) and will trigger an update
of the constitution.

The choice of using a unified diff format instead of requiring to overwrite the constitution with an entirely new string is for a couple reasons:

  • human readability
  • compactness

The choice of the unified diff format was deemed the best tradeoff to achieve both results.

A cli command in the txs called generate-constitution-amendment is also provided that fetches the current constitution and generates the amendment message that needs to go in the proposal, but the patching mechanism accepts standard unified diffs generated from any source. Putting it into the txs seemed the best place.

The code that checks and applies the diffs does not rely on any external library, conversely the CLI utility to generate the diff does make use of github.com/hexops/gotextdiff.

Use unified diff notation to define amendments so that how the constitution is modified is encoded in a more compact way which is also more readable
@giunatale giunatale merged commit 31f0307 into main Sep 25, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants