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

experiment: support migration via extended stable interfaces #4833

Draft
wants to merge 3 commits into
base: claudio/migration-eop
Choose a base branch
from

Conversation

crusso
Copy link
Contributor

@crusso crusso commented Dec 20, 2024

builds on #4829 and #4812, addressing syntactic stable signatures.

A stable signature is now either a single interface of stable fields (as before) or (the new bit) a dual interface recording the pre and post upgrade interface when performing migration.

The pre and post fields are implicitly identical for a singleton interface and provide for backwards compatibility and ordinary upgrades (sans explicit migration).

Stability compatibility now checks the post interface of old module is compatible with the pre-interface of the new module.

<stab_sig> ::=
  <typ_dec>;* actor { <stab_field>;* }
  <typ_dec>;* actor ( { <stab_field>;* },  <stab_field>;* } )

Done this way, there should be no need to modify dfx, which defers to moc for the compatibility check anyway.

  • fig grammar.sed to delete new production
  • add some tests to test/cmp

@crusso crusso changed the base branch from master to claudio/migration-eop December 20, 2024 17:32
Copy link

github-actions bot commented Dec 20, 2024

Comparing from 2b860e0 to f65d3f0:
In terms of gas, no changes are observed in 5 tests.
In terms of size, no changes are observed in 5 tests.

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.

1 participant