为 Transity 贡献代码:从 make 构建、快照测试到提交 PR 的开发者指南
为 Transity 贡献代码从 make 构建、快照测试到提交 PR 的开发者指南【免费下载链接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 项目地址: https://gitcode.com/gh_mirrors/tr/TransityTransity 是一款面向未来的纯文本记账工具让你在命令行里轻松记录和追踪你的 金钱、 时间与各类资产全部数据以人类可读的 YAML 纯文本保存。如果你想把代码贡献给这个开源项目却不知道从哪一步开始这份面向新手的完整指南会带你走通全流程克隆仓库、用 make 完成构建、跑单元测试与快照测试、更新快照最后顺利提交你的第一个 Pull RequestPR。全程无需复杂配置跟着做就能上手。快速了解项目纯文本记账工具的仓库结构在动手之前先花两分钟看清 Transity 的代码仓库布局这会让你后续的贡献事半功倍src/核心 Rust 源码入口为 main.rs工具库逻辑在 lib.rspurescript/历史版本中用于 CLI 解析的 PureScript 源码Parser.purs 等文件仍具参考价值tests/测试目录最重要的 cli_snapshots.rs 存放着所有命令行快照测试examples/示例账簿文件如 journal.yaml是测试与演示的黄金素材docs_src/mdBook 格式的官方文档源码10_Contributing.md 就是贡献者文档makefile项目所有开发任务的控制台本文的核心贡献前准备克隆仓库与环境要求贡献的第一步是获取代码并准备开发环境。使用以下命令克隆 Transity 仓库git clone https://gitcode.com/gh_mirrors/tr/Transity cd Transity你需要在本机安装Rust 工具链含 cargoTransity 是 Rust 项目安装方式可参考官方 rustup 引导脚本make多数 Linux/macOS 系统自带Windows 可借助 Git Bash 或 WSL可选但推荐cargo-insta用于快照测试的交互式审查安装命令为cargo install cargo-insta装好后在项目根目录运行make它会自动打印出全部可用任务清单这就是你的开发地图。使用 make 构建 Transity一条命令完成编译Transity 把常用操作全部封装进了 makefile新手不需要记忆冗长的 cargo 参数。以下是几个最高频的目标make 目标作用make build编译整个项目先构建服务器端再编译二进制make test依次运行单元测试与 CLI 快照测试make test-unit仅运行单元测试对应cargo test --bin transitymake test-cli仅运行命令行快照测试make update-snapshots交互式审查并更新快照make format自动修复代码风格并格式化make dev启动开发服务器实时预览效果make install安装 transity 到系统 PATHmake docs构建 Web 版与官方文档第一次运行make build可能需要几分钟下载依赖请耐心等待。编译成功后你就拥有了一个可运行的 transity 二进制。想立刻体验纯文本记账工具的核心功能执行make dev即可启动带热重载的开发服务器或直接运行cargo run -- balance examples/journal.yaml你将看到类似上面截图那样的彩色余额报表。单元测试与快照测试保证代码质量的关键为 Transity 贡献代码了解它的测试体系是必修课。项目测试分两层单元测试单元测试直接写在源码中。以 src/main.rs 为例其中包含大量针对金额解析、有理数运算、日期格式化的测试例如digits_to_rational_137验证数字转有理数parse_amount_valid验证15 €的解析结果。运行命令make test-unitCLI 快照测试快照测试是 Transity 的重头戏。它位于 tests/cli_snapshots.rs原理非常直观测试会实际执行 transity 二进制并捕获其标准输出然后与预先存储的快照文本逐字节比对。比如test_balance运行balance examples/journal.yaml后调用insta::assert_snapshot!(balance, output)与快照文件 cli_snapshots__balance.snap 比对。运行全部测试只需一条命令make test如果你新增或修改了某个命令的输出格式快照测试会立刻报警这正是它存在的意义——防止你无意中破坏已有行为。更新快照make update-snapshots 的正确用法当你有意地改变了命令行输出比如新增一列、调整对齐、修复了一个格式 bug旧快照自然不再匹配。此时不要慌按以下流程更新运行make test-cli确认只有预期中的快照失败运行make update-snapshots即cargo insta review在交互界面中逐个检查差异y接受新快照n拒绝r查看详情提交时连同.snap快照文件一起推送⚠️ 重要原则快照更新必须与代码改动一一对应。如果某个不相关的快照也失败了说明改动有副作用请先修复代码而不是盲目接受快照。代码风格与格式检查让提交更规范Transity 有一套严格且简洁的代码风格——缩进为两个空格这在 rustfmt.toml 中定义。好在这些全自动make format该命令会先执行cargo clippy --fix --allow-dirty自动修复 lint 警告再运行cargo fmt统一格式。提交 PR 前务必执行一次确保通过 CI 的格式检查。动手实践从示例账簿理解记账数据想快速理解纯文本记账工具的数据模型看 examples/journal.yaml 就够了。它定义了所有者owner、实体entities与交易transactions每笔交易包含 UTC 时间、转账双方与金额。项目还提供了损坏账簿样本 journal-broken-transaction.yaml用于测试错误处理逻辑——如果你对健壮性改进感兴趣这里就是绝佳的练手点。提交 Pull Request完整流程指南代码写好、测试通过之后就可以走完整的 PR 流程了创建分支为你的改动起一个语义化分支名如feat/add-new-command提交改动写清晰的中文或英文提交信息说明做了什么、为什么做推送并创建 PR描述中建议包含背景、改动内容、测试结果与截图等待 Review维护者会给出反馈根据建议修改后重新推送即可常见问题与排错技巧cargo命令找不到确认 Rust 工具链已加入 PATH重开终端试试构建报依赖错误先执行cargo update再重试make build快照大量失败多半是环境差异如终端宽度先确认改动意图再决定是否更新快照想了解更多命令细节直接看 docs_src/ 下的文档源码或运行transity --help贡献开源项目没有想象中那么难从一次小的文档修正、一个测试补充开始你也能成为 Transity 纯文本记账工具的贡献者之一。现在就 clone 仓库跑一次make test开启你的第一个 PR 之旅吧【免费下载链接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 项目地址: https://gitcode.com/gh_mirrors/tr/Transity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考