Releases: caffeinelabs/mops
CLI v2.12.2
- Fix
mops install(and any--lock checkflow) failing with "Mismatched number of resolved packages" when a project's resolved dependencies include multiple aliases (e.g.base,base@0,base@0.16) that pin to the samename@version
SHA256: 1a7b5985d5d055696a24f5347735561c63c30aeb27db91d385d3738f4ae09125
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=29a222beeed0402730fe9475aa6c30bb24330e00 --build-arg MOPS_VERSION=2.12.2 -t mops
docker run --rm --env SHASUM=1a7b5985d5d055696a24f5347735561c63c30aeb27db91d385d3738f4ae09125 mopsCLI v2.12.1
mops check/build/check-stableskip migration staging when only the pendingnextmigration is needed, somocdiagnostics reference the realnext-migration/<file>path.
SHA256: 028437e21a8dca97acd115bae49c9091f2e870ad70ee0ec04b204619922cbc63
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=871616a9bfd12a7541cf1052f3dc42fd12fe84c5 --build-arg MOPS_VERSION=2.12.1 -t mops
docker run --rm --env SHASUM=028437e21a8dca97acd115bae49c9091f2e870ad70ee0ec04b204619922cbc63 mopsCLI v2.12.0
- Migration staging directory moved from
.mops/.migrations/<canister>/to<parent-of-chain>/.migrations-<canister>/, so migration files can import shared modules from sibling folders (e.g. atypes/folder next tomigrations/) — relative imports now resolve to the same target whether moc reads the original chain dir or the staged one. The staged dir self-stamps a.gitignoreso it doesn't pollutegit status;mops initnow also adds.migrations-*/to the project.gitignore [canisters.<name>.migrations]now requireschainandnextto share the same parent directory (any layout where the parents differed is rejected with a clear error). The default layoutchain = "migrations"+next = "next-migration"already satisfies this. For per-canister setups, use sibling subdirectories, e.g.chain = "src/backend/migrations"+next = "src/backend/next-migration"
SHA256: 82359579eda0ed010399a76bcc608b98422cdf9c89aa56721e679b8920acd0d4
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=3148a033924c0deb87b03142a0e22906e98c538d --build-arg MOPS_VERSION=2.12.0 -t mops
docker run --rm --env SHASUM=82359579eda0ed010399a76bcc608b98422cdf9c89aa56721e679b8920acd0d4 mopsCLI v2.11.0
- Add
mops migrate new <Name>andmops migrate freezecommands for managing enhanced migration chains - Add
[canisters.<name>.migrations]config section withchain,next,check-limit, andbuild-limitfields mops check,mops build, andmops check-stablenow auto-inject--enhanced-migrationwhen[migrations]is configuredmops checkandmops check-stableemit a hint to create a migration when a stable compatibility check fails and[migrations]is configured- Migration chain trimming: only the last N migrations are passed to
mocbased oncheck-limit/build-limitsettings
SHA256: bdb31e73c8319fdcba59d1a2387de35bcb192052aa5d3de0e08fa5235aa40e93
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=c72c56f5d3ad0d0ceb22b006486fd9877679ef74 --build-arg MOPS_VERSION=2.11.0 -t mops
docker run --rm --env SHASUM=bdb31e73c8319fdcba59d1a2387de35bcb192052aa5d3de0e08fa5235aa40e93 mopsCLI v2.10.0
mops checkandmops check-stablenow apply per-canister[canisters.<name>].args(previously onlymops buildapplied them)mops checknow accepts canister names as arguments (e.g.mops check backend) to check a specific canistermops check-stablenow works without arguments, checking all canisters with[check-stable]configuredmops check-stablenow accepts canister names as arguments (e.g.mops check-stable backend)
SHA256: 85b587774d4258e41baeaa8150ad62230849c40cc5f832fee8298217f56081d2
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=f02c9b3f00432493e8c4daedf4778ddedc07ef4e --build-arg MOPS_VERSION=2.10.0 -t mops
docker run --rm --env SHASUM=85b587774d4258e41baeaa8150ad62230849c40cc5f832fee8298217f56081d2 mopsCLI v2.9.0
- Add
mops info <pkg>command to show detailed package metadata from the registry - Add
[lint.extra]config for applying additional lint rules to specific files via glob patterns
SHA256: e1a1d5f44534d11da11272b7905d391fa0e387e78cf14aacabf3542b2b764775
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=8b97eaddfc48d12232a1a4ee75fed33a48f3ada0 --build-arg MOPS_VERSION=2.9.0 -t mops
docker run --rm --env SHASUM=e1a1d5f44534d11da11272b7905d391fa0e387e78cf14aacabf3542b2b764775 mopsCLI v2.8.1
- Fix
mops check-stablefailing when[moc] argscontains flags with relative paths (e.g.--actor-idl=system-idl)
SHA256: 68be42bc87d060c13d7c33c342e643d6550c09b0a76ec19c3390577beb64a472
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=225b327db8ae98908ee6a150f0555ac90dd14894 --build-arg MOPS_VERSION=2.8.1 -t mops
docker run --rm --env SHASUM=68be42bc87d060c13d7c33c342e643d6550c09b0a76ec19c3390577beb64a472 mopsCLI v2.8.0
mops buildnow generates a.most(Motoko stable types) file alongside.wasmand.didfor each canister; the.mostfile can be passed directly tomops check-stableto verify upgrade compatibilitymops.lockis now created automatically the first time dependencies are installed — no need to runmops i --lock updateonce to opt in. Triggered bymops install,mops add,mops remove,mops update,mops sync, andmops init(when it installs dependencies). Applications should commitmops.lock; library authors should add it to.gitignore.
SHA256: 9dfb65a25a220b498c1660e78438d316de554439e6f06d24dcfd4247d8a2b554
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=b8cf8c39dd73c88bac267d1224a5a3bd2fd78e14 --build-arg MOPS_VERSION=2.8.0 -t mops
docker run --rm --env SHASUM=9dfb65a25a220b498c1660e78438d316de554439e6f06d24dcfd4247d8a2b554 mopsCLI v2.7.0
mops publishno longer requires arepositoryfield — it is now optional metadata (used by the registry UI for source links)mops publishnow hard-errors on GitHub[dependencies]instead of prompting; the backend has rejected them for some time and the prompt was misleadingmops publishnow fails fast with a clear error when unsupported fields (dfx,moc,homepage,documentation,donation) are set inmops.toml- Fix
mops publishreporting incorrect max length forlicensefield (was 30, now matches backend limit of 40)
SHA256: c90e6ee94738d9a6f78f97ab8305874ee84ebd45c61a48b9bb3f6fefa8bbf48b
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=49ca78b7b3b893e93c9446bd7b2e3d6e60ff43a1 --build-arg MOPS_VERSION=2.7.0 -t mops
docker run --rm --env SHASUM=c90e6ee94738d9a6f78f97ab8305874ee84ebd45c61a48b9bb3f6fefa8bbf48b mopsCLI v2.6.0
- Packages can ship lintoko rules for consumers in a
rules/directory (distinct fromlint//lints/which check the package itself);rules/*.tomlfiles are included automatically when runningmops publish - Add
[lint] extendsinmops.tomlto pull inrules/from installed dependencies:extends = ["pkg"]for named packages orextends = truefor all - Add
[lint] rulesinmops.tomlto override the defaultlint//lints/rule directories with custom paths mops checknow runsmops lintafter a successful type-check whenlintokois pinned in[toolchain]; lint is scoped to explicitly passed files when given, otherwise covers all.mofiles;--fixpropagates to both steps- Raise package file limit from 300 to 1000;
mops publishnow fails fast with a clear error if the limit is exceeded - Fix
mops docs coveragecrashing with out-of-memory on packages with many source files (replaced JSDOM with a lightweight adoc parser)
SHA256: c07461ab9dd99294d7929dd766fcc230a8c7154102670442f5a1b99dd83a4d99
Verify build:
cd cli
docker build . --build-arg COMMIT_HASH=be939d98f713ffcc1201393b627a4a3625813ac6 --build-arg MOPS_VERSION=2.6.0 -t mops
docker run --rm --env SHASUM=c07461ab9dd99294d7929dd766fcc230a8c7154102670442f5a1b99dd83a4d99 mops