Skip to content

Releases: caffeinelabs/mops

CLI v2.12.2

22 Apr 08:46
29a222b

Choose a tag to compare

  • Fix mops install (and any --lock check flow) 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 same name@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 mops

CLI v2.12.1

21 Apr 14:43
871616a

Choose a tag to compare

  • mops check/build/check-stable skip migration staging when only the pending next migration is needed, so moc diagnostics reference the real next-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 mops

CLI v2.12.0

20 Apr 13:52
3148a03

Choose a tag to compare

  • 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. a types/ folder next to migrations/) — 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 .gitignore so it doesn't pollute git status; mops init now also adds .migrations-*/ to the project .gitignore
  • [canisters.<name>.migrations] now requires chain and next to share the same parent directory (any layout where the parents differed is rejected with a clear error). The default layout chain = "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 mops

CLI v2.11.0

17 Apr 08:39
c72c56f

Choose a tag to compare

  • Add mops migrate new <Name> and mops migrate freeze commands for managing enhanced migration chains
  • Add [canisters.<name>.migrations] config section with chain, next, check-limit, and build-limit fields
  • mops check, mops build, and mops check-stable now auto-inject --enhanced-migration when [migrations] is configured
  • mops check and mops check-stable emit 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 moc based on check-limit/build-limit settings

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 mops

CLI v2.10.0

14 Apr 12:34
f02c9b3

Choose a tag to compare

  • mops check and mops check-stable now apply per-canister [canisters.<name>].args (previously only mops build applied them)
  • mops check now accepts canister names as arguments (e.g. mops check backend) to check a specific canister
  • mops check-stable now works without arguments, checking all canisters with [check-stable] configured
  • mops check-stable now 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 mops

CLI v2.9.0

10 Apr 08:47
8b97ead

Choose a tag to compare

  • 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 mops

CLI v2.8.1

30 Mar 08:30
225b327

Choose a tag to compare

  • Fix mops check-stable failing when [moc] args contains 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 mops

CLI v2.8.0

26 Mar 14:51
b8cf8c3

Choose a tag to compare

  • mops build now generates a .most (Motoko stable types) file alongside .wasm and .did for each canister; the .most file can be passed directly to mops check-stable to verify upgrade compatibility
  • mops.lock is now created automatically the first time dependencies are installed — no need to run mops i --lock update once to opt in. Triggered by mops install, mops add, mops remove, mops update, mops sync, and mops init (when it installs dependencies). Applications should commit mops.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 mops

CLI v2.7.0

25 Mar 13:16
49ca78b

Choose a tag to compare

  • mops publish no longer requires a repository field — it is now optional metadata (used by the registry UI for source links)
  • mops publish now hard-errors on GitHub [dependencies] instead of prompting; the backend has rejected them for some time and the prompt was misleading
  • mops publish now fails fast with a clear error when unsupported fields (dfx, moc, homepage, documentation, donation) are set in mops.toml
  • Fix mops publish reporting incorrect max length for license field (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 mops

CLI v2.6.0

25 Mar 10:33
be939d9

Choose a tag to compare

  • Packages can ship lintoko rules for consumers in a rules/ directory (distinct from lint//lints/ which check the package itself); rules/*.toml files are included automatically when running mops publish
  • Add [lint] extends in mops.toml to pull in rules/ from installed dependencies: extends = ["pkg"] for named packages or extends = true for all
  • Add [lint] rules in mops.toml to override the default lint//lints/ rule directories with custom paths
  • mops check now runs mops lint after a successful type-check when lintoko is pinned in [toolchain]; lint is scoped to explicitly passed files when given, otherwise covers all .mo files; --fix propagates to both steps
  • Raise package file limit from 300 to 1000; mops publish now fails fast with a clear error if the limit is exceeded
  • Fix mops docs coverage crashing 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