docs(motoko): update guides for new icskills — --default-persistent-actors, inline migration, mops-cli

Aberta
#232 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
52/100
Tipo de issue
Documentação
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Domínio
cli, documentation

Direção de pesquisa

Aguarde o merge de PR #208, depois inspecione o submódulo .sources/icskills e faça grep por persistent actor nos arquivos de documentação listados. Atualize as orientações recomendadas sobre Motoko, migração, timer e mops descritas na checklist e verifique se o submódulo está fixado em 4713d1e e se nenhum arquivo fora do escopo foi alterado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

documentation enhancement

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/icskills to 4713d1e
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-actors to the recommended mops.toml setup in guides/backends/data-persistence.mdx, concepts/orthogonal-persistence.md, and guides/canister-management/lifecycle.mdx
  • Replace persistent actor with actor in all Motoko code examples (approx. 50 occurrences in 30+ files — grep first to get the full list)
  • Keep persistent actor only 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.mdx covering (with migration = ...)
  • Update guides/security/canister-upgrades.md to 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.mdx to present transient var as the preferred pattern and move postupgrade to 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, and mops migrate to references/developer-tools.md

Out of scope

  • postupgrade in certified-variables.md and certification.md: legitimate use for re-establishing certifications after upgrade, not data migration
  • docs/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.

Linguagem predominante
JavaScript
Estrelas
4
Forks
5
Merge médio
1d 6h
PRs com merge (30d)
30

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de dfinity/developer-docs

Todas as issues de dfinity/developer-docs

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.