Copy this outline when drafting a GitHub Release for a new tag. Project overview and install summary: README.md. Git driver setup: git-integration.md.
v0.1.6 (matches Cargo.toml version and astvcs --version)
- MSRV: Rust 1.96+ (edition 2024)
- Build: A working C toolchain for tree-sitter native dependencies (same as CI and local
cargo build --release)
Download the platform archive from GitHub Releases:
| Platform | Asset |
|---|---|
| Linux x86_64 | astvcs-linux-x86_64.tar.gz |
| Windows x86_64 | astvcs-windows-x86_64.zip |
Each archive contains three binaries: astvcs, astvcs-merge-driver, and astvcs-diff-driver (.exe on Windows). The v0.1.0 archives shipped only the main astvcs binary.
Verify: astvcs --version should print 0.1.6.
- Add Dependabot for Cargo and GitHub Actions (grouped tree-sitter, cargo-dev, and Actions updates)
- Bump direct crates: clap, base64, ignore, similar, regex, serde, serde_json, tree-sitter
- Bump GitHub Actions used by CI and release workflows
- Serialize identity tests that touch
ASTVCS_AUTHOR_*so parallel cargo test no longer races env overrides into repo-local identity checks
- Fix wide-list alignment: uniquely pair content-addressed NodeIds before structural LCS so several empty-payload Function siblings plus an EOF append no longer invent false overlaps
- Add
examples/go-eof-insert-demo/and language-merge coverage for that case
- Fix same-site insert unparse: apply shared anchor
SetTriviaonce and synthesize separator trivia between multiple inserts at one site (avoids Python@a@b@xmatmul corruption) - Strengthen decorator/attribute/annotation merge tests to assert separators and reparsed node counts/names
- Narrow same-site insert overlap: distinct substantive sibling inserts (EOF functions, Python decorators, Rust attributes, Java annotations on an already-wrapped target) merge in ours-then-theirs order
- First-time wrapper inserts (Python
decorated_definition, Javamodifiers) and competing literal/punctuation inserts at one site still conflict - Docs and skills updated to match the content-aware overlap rule
- On structural merge-driver conflict, write standard
<<<<<<</=======/>>>>>>>markers into%Afor text/AST paths (optional%Lmarker size) - Document the conflict-marker contract accurately in git-integration.md
- Binary conflicts still leave
%Aunchanged and exit nonzero
- Add
astvcs-merge-driverandastvcs-diff-driverfor optional Git merge and external-diff wiring (see git-integration.md) - Release archives now include all three binaries (Linux x86_64 and Windows x86_64)
- Drivers call the existing
merge_files/diff_graphspaths; they do not read or write.astvcs/ - Note:
v0.1.1left%Aunchanged on structural conflict and claimed Git had already written markers; usev0.1.2for marker files in the working tree