开发者指南 · Zikaron
参与贡献
欢迎修复缺陷、补充测试、改进界面与文档。动手之前,请先确认改动所在的层。
改动的去向
| 改动内容 | 途径 |
|---|---|
| 界面、文案、交互 | 合并请求,修改 crates/app 与 crates/zikaron-ui。 |
| 命令行 | 合并请求。输出格式或参数变化时,同步修改 CLI-SCHEMA.md。 |
| 核的实现(缺陷、性能) | 合并请求,附一致性比对零分歧的结果。 |
| 新的条目读法 | 先在讨论区确定约定,再实现。 |
| 法文措辞 | 议题。散文可以修订,核的摘要保持不变。 |
| 法的规则 | 议题,其归宿是下一版法。 |
| 冻结核与登记合约 | 议题。它们由摘要与代码哈希钉住。base/ 里其余的工装可以直接提合并请求。 |
流程
- 先开议题,说明要改什么、为什么;小的修正可直接提交合并请求。
- 从主干创建分支,一个请求只做一件事。
- 在本地跑通全部测试。
- 提交说明写清改动内容,以及用户能看到的变化。
提交前检查
cargo test --workspace全部通过。cargo build --release --locked通过;依赖有增减时,一并提交Cargo.lock。- 修改了
zikaron或zikaron-kit:比对器在至少三个种子的语料上零分歧,语料在仓库之外的副本中生成。 - 修改了
zikaron-anchor:全部链面录制回放一致。 - 两部法的摘要与合约代码哈希重算相符。
- 界面新增的每句文字都有中英两个版本。
- 新增的每个控件都接通真实操作,失败时有明确提示。
- 手册中对应段落同步更新,中英文逐句对应。
判断放在核中
编写界面代码时,遇到「这个条目是否合法」「这份授权此刻是否有效」一类问题,请调用核、采用其结论。在界面中另写一遍判断,日后两处必然出现偏差。命令行同理,原样传出核的输出。
测试规范
- 使用临时目录
- 每个测试在自己的临时目录中创建机器目录与数据文件夹,结束时清理。
- 使用测试密钥
- 密钥在测试中现场生成,或取自语料;真实的助记词与私钥留在仓库之外。
- 使用本地链
- 涉及上链的测试针对本地 anvil 或录制运行;公共节点留作手动试用。
- 正反两面都测
- 每条拒绝规则都配一个应被拒绝的输入和一个应被接受的输入。
- 时间由注入给出
- 需要「当前时刻」的测试,把时刻作为参数传入。
界面约定
- 写账本、写链的动作先弹出确认卡,列明写到哪里、写什么、花费多少;真正写入的红色实心键只出现在确认卡上。
- 每屏至多一个蓝色主按钮。
- 前台使用日常用语;地址、哈希、类型名、判定词收在「详细信息」中。
- 每次失败都说明两件事:发生了什么,下一步怎么做。
- 页面即时响应,耗时操作放到后台,完成时提示一次。
- 界面上的「已生效」「已确认」,背后须有可读取的事实。
文字
界面用语采用成熟应用的简洁写法。手册、Wiki 与本指南只写现行内容,历史留在版本记录中。代码注释用英文,引用法条时写明条号。
保持仓库干净
提交中只放产品源码与文档;本机路径、邮箱、密钥、节点访问令牌、个人测试数据都留在仓库之外。提交前请检查差异。