dfinity / dfinity/developer-docs
docs(motoko): update guides for new icskills — --default-persistent-actors, inline migration, mops-cli
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 4
- Forks
- 5
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 30
Descripción
Background
The icskills submodule is currently pinned at 1d125a9; remote origin/main is at 4713d1e. That commit adds three new skills and substantially rewrites the existing motoko skill:
| Skill | Change |
|---|---|
motoko |
Major overhaul: --default-persistent-actors is now the standard; dot notation (M0236) and implicit comparators (M0237) required; mixins added; moc 1.7.0 pinned |
migrating-motoko |
New: (with migration = ...) inline syntax for one-shot state migrations |
migrating-motoko-enhanced |
New: multi-step migration with a migrations/ directory and mops-managed --enhanced-migration flag |
mops-cli |
New: full toolchain coverage (check, build, test, lint, migrate, toolchain) |
Scope
This is a single PR that bumps the submodule from 1d125a9 to 4713d1e and updates the docs to match. The two must ship together: bumping without updating the docs would leave persistent actor in every code example while the pinned skill recommends plain actor {} with --default-persistent-actors.
Required changes
Bump icskills submodule
- Pin
.sources/icskillsto4713d1e
Add --default-persistent-actors and drop persistent actor from code examples
With the flag in mops.toml, plain actor { } works and all state is persistent by default. Keeping persistent actor in code examples while recommending the flag is contradictory.
[moc]
args = ["--default-persistent-actors", "-W=M0236,M0237,M0223"]
- Add
--default-persistent-actorsto the recommendedmops.tomlsetup inguides/backends/data-persistence.mdx,concepts/orthogonal-persistence.md, andguides/canister-management/lifecycle.mdx - Replace
persistent actorwithactorin all Motoko code examples (approx. 50 occurrences in 30+ files — grep first to get the full list) - Keep
persistent actoronly in explanatory prose where the keyword itself is being discussed
Files known to contain persistent actor in code blocks:
guides/backends/data-persistence.mdx
guides/backends/timers.mdx
guides/backends/certified-variables.md
guides/chain-fusion/bitcoin.mdx
guides/chain-fusion/ethereum.mdx
guides/chain-fusion/solana.mdx
guides/chain-fusion/exchange-rates.mdx
guides/canister-management/lifecycle.mdx
guides/canister-management/cycles-management.mdx
guides/security/canister-upgrades.md
guides/security/access-management.mdx
guides/canister-calls/inter-canister-calls.mdx
guides/canister-calls/parallel-inter-canister-calls.mdx
guides/digital-assets/ledgers.mdx
guides/authentication/internet-identity.mdx
references/application-canisters.md
Document (with migration = ...) inline migration syntax
The canister upgrade guides recommend avoiding preupgrade/postupgrade but say nothing about what to do when a field type changes or a field is renamed. That answer is now the inline migration syntax.
- Add a "Changing persistent state" subsection to
guides/canister-management/lifecycle.mdxcovering(with migration = ...) - Update
guides/security/canister-upgrades.mdto reference the migration syntax for incompatible type changes
Update timer re-registration pattern
guides/backends/timers.mdx uses system func postupgrade to re-register timers. The new skill identifies timer IDs as the canonical transient var use case.
- Update
guides/backends/timers.mdxto presenttransient varas the preferred pattern and movepostupgradeto a note for legacy or complex cases
Document mops CLI commands in developer tools
references/developer-tools.md mentions mops but not its primary commands.
- Add coverage of
mops check,mops build,mops test,mops lint, andmops migratetoreferences/developer-tools.md
Out of scope
postupgradeincertified-variables.mdandcertification.md: legitimate use for re-establishing certifications after upgrade, not data migrationdocs/languages/motoko/: auto-synced from caffeinelabs/motoko, not manually edited
Prerequisite
Wait for PR #208 to merge before starting. Several affected files are modified by that PR.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Espera a que se fusione PR #208, luego inspecciona el submódulo .sources/icskills y busca persistent actor en los archivos de documentación enumerados. Actualiza las recomendaciones sobre Motoko, migración, temporizadores y mops descritas en la checklist, y verifica que el submódulo esté fijado en 4713d1e y que no se hayan modificado archivos fuera del alcance.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Área
- cli, documentation
- Tipo de issue
- Documentación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 52/100