update-template
Update copier template version. Use when checking for template updates, running copier update, or applying template changes to the project structure.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Update copier template version. Use when checking for template updates, running copier update, or applying template changes to the project structure.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | update-template |
| description | Update copier template version. Use when checking for template updates, running copier update, or applying template changes to the project structure. |
Guide for updating the copier template (copier-dart-frb-wrapper) used to generate this project's structure.
When the CI creates a notification PR for a template update, follow these steps:
The automated PR contains:
Review the changelog to understand what changed in the template.
# Install/update copier (if not installed)
pip install copier jinja2-strcase
# Run copier update to the new version
copier update --trust --defaults --vcs-ref=vX.Y.Z
Flags:
--trust — required because the template has _tasks (post-generation commands). Without it, copier refuses to run or prompts for confirmation.--defaults — uses default values from .copier-answers.yml without prompting. Required in non-interactive environments (e.g., Claude Code), and recommended in general to avoid re-answering questions.--vcs-ref=vX.Y.Z — pins the exact version to update to.Copier will:
.copier-answers.yml (no interactive prompts)_tasks (post-generation commands like dart format).copier-answers.yml with the new _commit value# Check what copier changed
git diff
# Check for conflict markers
grep -r "<<<<<<" . --include="*.dart" --include="*.yml" --include="*.yaml" --include="*.md" --include="Makefile"
Common things to review:
.github/workflows/) — new steps, updated actionsscripts/) — new or updated scriptspubspec.yaml, analysis_options.yaml, etc.Copier creates .rej files for conflicts it couldn't resolve automatically:
# Find rejection files
find . -name "*.rej"
# Review and manually apply each one, then delete the .rej file
make analyze
make test
make format-check
Copier should update _commit automatically, but may fail to do so when:
Always check that _commit matches the target version, and update manually if needed:
_commit: vX.Y.Z # Must match the version you updated to
git add -A
git commit -m "feat: adopt copier template for version vX.Y.Z"
copier update --trust --defaults --vcs-ref=vX.Y.Z — apply template changes.rej files (if any)make analyze — no issuesmake test — all tests pass.copier-answers.yml — verify _commit updated automatically# Check if a template update is available
make check-template-updates
# JSON output for scripting
make check-template-updates ARGS="--json"
# Check against specific version
make check-template-updates ARGS="--version v1.7.0"
Check .copier-answers.yml:
_commit: v1.6.0
_src_path: https://github.com/djx-y-z/copier-dart-frb-wrapper.git
make check-template-updates
copier update --trust --defaults --vcs-ref=vX.Y.Z
make analyze
make test
git add -A
git commit -m "feat: adopt copier template for version vX.Y.Z"
Copier compares the template at _commit (old version) with the target version and applies the diff to your project. It:
.rej files for conflicts it can't auto-resolve_tasks (with --trust) — post-generation commands defined in the template.copier-answers.yml — sets _commit to the new version| Category | Examples |
|---|---|
| Workflows | New CI steps, updated action versions, new workflows |
| Makefile | New targets, changed commands, new setup steps |
| Scripts | New utility scripts, updated check scripts |
| Config | Analysis options, pubspec changes, gitignore updates |
| Documentation | CLAUDE.md, CONTRIBUTING.md, README template |
pip install copier jinja2-strcase
Copier creates .rej files — review each one and apply manually:
find . -name "*.rej"
# After resolving, delete the .rej files
find . -name "*.rej" -delete
Use --defaults to skip prompts. Without it, press Enter to keep current values from .copier-answers.yml. Only change values if you need to.
This is expected. Copier does a 3-way merge. If your customizations conflict with template changes, you'll get .rej files to resolve manually.
Release a new libsignal_frb native crate version (stage 1 of the two-stage release). Use when the user wants to build/publish new native binaries after libsignal dependency updates, bump the libsignal_frb crate, or push a libsignal_frb-* tag. NOT for the Dart pub.dev release (that is release-package).
Prepare a new version of libsignal for publication to pub.dev. Use when user wants to release, publish, or tag a new version of the package.
Update libsignal native library version. Use when checking for updates, upgrading libsignal, bumping version, or updating native dependencies.
Implement Signal Protocol stores for libsignal_dart. Use when implementing SessionStore, IdentityKeyStore, PreKeyStore, SignedPreKeyStore, KyberPreKeyStore, or SenderKeyStore for production use.
Build libsignal native libraries for different platforms. Use when user asks about building, compiling, or creating native libraries for iOS, Android, macOS, Linux, or Windows.
Flutter Rust Bridge patterns and best practices for libsignal. Use when writing Rust API code, adding new bindings, implementing DartFn callbacks, or troubleshooting FRB issues.