comline (this repo) is the CLI. It depends on comline-core
(ComlineProject/core), which is currently consumed as a git dependency
pinned to an exact commit in Cargo.toml:
comline-core = { git = "https://github.com/ComlineProject/core", rev = "<sha>" }Branching model is GitHub Flow: short-lived feature branches → PR → CI → main.
Releases are tags cut from main, not long-lived branches. There is no
develop/staging branch.
Per-developer config lives in a gitignored .cargo/config.toml:
[build] target-dir— required here (the checkout is on anoexecmount, so cargo can't run build scripts from./target).- An optional
[patch."https://github.com/ComlineProject/core"]pointing at a localcorecheckout. Uncomment it to testcomline-corechanges before they are pushed; re-comment it to build against the pinnedrev(what CI and releases use). The committedCargo.tomlnever carries a patch.
Cargo.lock is committed (this is a binary): CI and cargo install build
the exact versions that ship.
- core: feature branch → PR against
ComlineProject/core→ CI green → merge tomaster. Note the merge commit SHA. - cli: bump the
revinCargo.tomlto that SHA, thencargo update -p comline-core. - cli:
cargo test,cargo clippy --all-targets -- -D warnings,cargo fmt --check. - cli: commit
Cargo.tomlandCargo.locktogether → PR → merge.
(While iterating, step 2–3 happen against the local [patch] first; the rev
bump is the last step once the core PR has merged.)
- core: bump
versionincore/core/Cargo.toml,cargo publish -p comline-core, tagcore-vX.Y.Z. - cli: change the dependency from git to a version —
comline-core = "X.Y"— and drop the git NOTE comment.cargo update, re-run the full check suite. - cli: bump
versioninCargo.toml, commitCargo.toml+Cargo.lock. - cli:
cargo publish(a cleancargo packagefirst to sanity-check the file list), then tagvX.Y.Zon the release commit and push the tag.
Until then, "release" just means main is green and
cargo install --path . works.
-
comline-coreis published to crates.io (blocks everything below). -
Cargo.toml: dependency is a version, not a git URL. -
Cargo.toml:version,description,repository,license-file,keywords,categories,readmeall correct. -
cargo package --listcontains no stray files (fixtures, local configs). -
cargo test/clippy -D warnings/fmt --checkgreen onmain. - Tag
vX.Y.Zpushed.