开发者指南 · Zikaron

参与贡献

欢迎修复缺陷、补充测试、改进界面与文档。动手之前,请先确认改动所在的层。

改动的去向

改动内容途径
界面、文案、交互合并请求,修改 crates/app 与 crates/zikaron-ui。
命令行合并请求。输出格式或参数变化时,同步修改 CLI-SCHEMA.md。
核的实现(缺陷、性能)合并请求,附一致性比对零分歧的结果。
新的条目读法先在讨论区确定约定,再实现。
法文措辞议题。散文可以修订,核的摘要保持不变。
法的规则议题,其归宿是下一版法。
冻结核与登记合约议题。它们由摘要与代码哈希钉住。base/ 里其余的工装可以直接提合并请求。

流程

  1. 先开议题,说明要改什么、为什么;小的修正可直接提交合并请求。
  2. 从主干创建分支,一个请求只做一件事。
  3. 在本地跑通全部测试。
  4. 提交说明写清改动内容,以及用户能看到的变化。

提交前检查

  • cargo test --workspace 全部通过。
  • cargo build --release --locked 通过;依赖有增减时,一并提交 Cargo.lock。
  • 修改了 zikaron 或 zikaron-kit:比对器在至少三个种子的语料上零分歧,语料在仓库之外的副本中生成。
  • 修改了 zikaron-anchor:全部链面录制回放一致。
  • 两部法的摘要与合约代码哈希重算相符。
  • 界面新增的每句文字都有中英两个版本。
  • 新增的每个控件都接通真实操作,失败时有明确提示。
  • 手册中对应段落同步更新,中英文逐句对应。

判断放在核中

编写界面代码时,遇到「这个条目是否合法」「这份授权此刻是否有效」一类问题,请调用核、采用其结论。在界面中另写一遍判断,日后两处必然出现偏差。命令行同理,原样传出核的输出。

测试规范

使用临时目录
每个测试在自己的临时目录中创建机器目录与数据文件夹,结束时清理。
使用测试密钥
密钥在测试中现场生成,或取自语料;真实的助记词与私钥留在仓库之外。
使用本地链
涉及上链的测试针对本地 anvil 或录制运行;公共节点留作手动试用。
正反两面都测
每条拒绝规则都配一个应被拒绝的输入和一个应被接受的输入。
时间由注入给出
需要「当前时刻」的测试,把时刻作为参数传入。

界面约定

  • 写账本、写链的动作先弹出确认卡,列明写到哪里、写什么、花费多少;真正写入的红色实心键只出现在确认卡上。
  • 每屏至多一个蓝色主按钮。
  • 前台使用日常用语;地址、哈希、类型名、判定词收在「详细信息」中。
  • 每次失败都说明两件事:发生了什么,下一步怎么做。
  • 页面即时响应,耗时操作放到后台,完成时提示一次。
  • 界面上的「已生效」「已确认」,背后须有可读取的事实。

文字

界面用语采用成熟应用的简洁写法。手册、Wiki 与本指南只写现行内容,历史留在版本记录中。代码注释用英文,引用法条时写明条号。

保持仓库干净

提交中只放产品源码与文档;本机路径、邮箱、密钥、节点访问令牌、个人测试数据都留在仓库之外。提交前请检查差异。