Skip to content

CI: mops backend fails to compile under moc 1.4.x (M0219 implicit transient in backup@3.0.0) #508

@ggreif

Description

@ggreif

Summary

Adding moc 1.4.1 to the CI matrix (see branch gabor/fix-integrity-alias-count local experiment) surfaces a hard compile error in one of mops' own transitive deps:

.mops/backup@3.0.0/src/backup-canister.mo:57.2-57.113:
type error [M0219], this declaration is currently implicitly transient,
please declare it explicitly `transient`

See run: https://github.com/caffeinelabs/mops/actions/runs/24739756755/job/72375998544

Why

moc 1.4.x promoted the implicit-transient warning (previously M0244/M0243-style advisory) to a hard type error M0219. Any actor-field declaration that isn't explicitly transient or persistent-eligible needs to be annotated.

backup@3.0.0 predates this tightening and hasn't been re-released. mops' own backend/main pulls it in transitively, so the mops backend canister build fails the moment the matrix includes a moc ≥ 1.4.

Impact

Proposed fixes (any or all)

  1. Bump backup to a version that compiles under moc 1.4 (upstream fix in backup repo, then bump the mops backend's mops.toml).
  2. If backup is orphaned: vendor the one-line transient annotation fix and pin to the vendored fork.
  3. Once (1) or (2) is done, re-add 1.4.1 to the CI matrix (drop-in revert of the branch commit I reverted).

Context

Discovered while preparing a small matrix bump on top of #507. That PR only touches cli/integrity.ts; the matrix-bump commit is reverted from its branch so #507 can land independently. Filing this so the upgrade path isn't lost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions