cargo check— 改任何.rs文件后立刻运行,不通过不提交- 改了跨平台代码时加运行跨平台 check:
cargo check --target x86_64-unknown-linux-gnu cargo check --target x86_64-pc-windows-msvc
- 改了
Cargo.toml版本号时:cargo update --workspace
- 不能在
cargo check失败的情况下 commit - 不能只在 macOS 本地 check 就认为跨平台没问题
- 不能改完
Cargo.toml不更新Cargo.lock就打 tag
| 陷阱 | 正确做法 |
|---|---|
libc::__error() 在 #[cfg(unix)] 里 |
用 std::io::Error::last_os_error() |
把通用 dep 放到 [target.cfg(windows).dependencies] 后面 |
TOML section 是贪婪的,通用 dep 必须在 target section 之前 |
| 改版本号忘更新 Cargo.lock | cargo update --workspace |
| Windows 代码用 trait method 忘 import trait | use std::os::windows::process::CommandExt 等 |
#[cfg(windows)] 里引用了未定义的函数 |
跨平台 check 会发现 |
main保持和原版jackwener/wx-cli一致,只从origin/mainfast-forward 更新,不承载 DeepMem 定制改动。deepmem-main是 DeepMem 定制主分支,所有 DeepMem 功能和修复最终合入这里。- feature / fix 分支从
deepmem-main切出,完成后合回deepmem-main。 deepmem-main需要定期合入main,用于吸收原版上游改动;不要 rebase 已发布的deepmem-main。- remote 名称:
origin= 原版jackwener/wx-clideepmem= DeepMemLabs fork,使用 SSH,push 目标
- 每次 commit 后立刻 push 到
deepmem。 - DeepMem release tag 用
git tag deepmem-<upstream_version>-<deepmem_version> && git push deepmem deepmem-<upstream_version>-<deepmem_version>。 上游vX.Y.Ztag 只用于区分原版上游 release。