Skip to content

Proposal: Daml upgrade migration planner#91

Open
pmensik wants to merge 2 commits intocanton-foundation:mainfrom
ruby-nodes:daml-upgrade-migration-planner
Open

Proposal: Daml upgrade migration planner#91
pmensik wants to merge 2 commits intocanton-foundation:mainfrom
ruby-nodes:daml-upgrade-migration-planner

Conversation

@pmensik
Copy link

@pmensik pmensik commented Mar 16, 2026

Development Fund Proposal Submission

Proposal file: /proposals/daml-upgrade-migration-planner.md


Summary

This proposal introduces the Daml Upgrade Migration Planner, a CLI-first common-good tool designed to automate and derisk smart contract upgrades on Canton. It connects to a live participant, evaluates existing package and vetting state against newly proposed DARs, and computes a deterministic, reviewable migration plan mapping out exact upload orders, multi-synchronizer vetting steps, and topology serials for safe rollback.


Checklist

  • Proposal file added under /proposals/
  • Milestones and funding amounts defined
  • Acceptance criteria included
  • Alignment with Canton priorities described

Notes for Reviewers

  • Focus on tooling over APIs: The tool wraps and orchestrates existing Canton primitives (dpm upgrade-check, ValidateDarFile, and Admin API dry_run) into a single planning workflow rather than re-inventing Daml-LF validation.
  • Bounded Scope: The tool strictly focuses on single-participant migration planning through JSON/Markdown output. Distributed multi-participant coordination and mutative release orchestration are explicitly framed as follow-up grant opportunities.
  • Operational Realism: The design natively recognizes Canton's rollback asymmetry, planning for the fact that package uploads are irreversible, but vetting topology changes can be safely rolled back using CAS topology serials.

@pmensik pmensik requested a review from a team as a code owner March 16, 2026 16:41
@pmensik pmensik changed the title Daml upgrade migration planner Proposal: Daml upgrade migration planner Mar 17, 2026
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