-
Mergiraf 0.15.0
released this
2025-09-17 20:30:41 +02:00 | 8 commits to main since this release🚀 Features
- Recover from commutative merging failures (#568) by @wetneb
- Install via
cargo binstall
(#583) by @wetneb - Bundle comments into nodes they annotate (#576) by @ada4a
- Support for
pyproject.toml
(#582) by @wetneb - (Python) Enable commutation of class attributes, with docstrings (#590) by @wetneb
🐛 Bug Fixes
- Reject parse trees with missing nodes (#587) by @wetneb
- (typescript) Bad handling of semicolons in commutative merging of class bodies (#585) by @wetneb
- (AstNode::bundle_comments) Don't bundle at
A, // comment \n B
(#588) by @ada4a
📚 Documentation
🧪 Testing
⚙️ Miscellaneous Tasks
- Update to Rust 1.89 (#579) by @wetneb
- Update crate dependencies (#580) by @wetneb
- Update dependencies (#592) by @wetneb
- Simplify pyproject language profile (#591) by @wetneb
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
154 downloads
-
mergiraf_aarch64-apple-darwin.tar.gz
161 downloads · 6.5 MiB
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
21 downloads · 6.1 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
4 downloads · 6.1 MiB
-
mergiraf_x86_64-apple-darwin.tar.gz
118 downloads · 6.2 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
522 downloads · 6.1 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
153 downloads · 6.3 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
198 downloads · 6.3 MiB
-
Mergiraf 0.14.0
released this
2025-09-02 08:34:52 +02:00 | 23 commits to main since this release🚀 Features
- (TypeScript) Commutative merging for union and intersection types (#531) by @wetneb
- Add support for starlark. (#509) by @amartani
- Switch to the
tree-sitter-dart-orchard
dart parser (#557) by @wetneb - Add some signatures for children of commutative parents (#567) by @ada4a
- Minimal CMake support (#572) by @OvidiusCicero
🐛 Bug Fixes
- (postprocess/merge_same_sigs) Use the revisions that the node is actually known to be in (#533) by @ada4a
- (ast) Correct byte_range for empty injections (#543) by @wetneb
- (
AstNode::parse
) Respect char boundaries ofsource
when informing about a parse error (#558) by @ada4a - (Rust) Mark comments as atomic (#560) by @wetneb
- Prevent the commutative merging of all
extra
elements (#562) by @wetneb - Switch from
grammar_name
tokind
(#561) by @wetneb - Panic in unicode boundary checking code (#578) by @wetneb
💼 Other
🚜 Refactor
- (tests) Inline all language-specific parse methods (#530) by @wetneb
- (MultiMap) Clean-up trait bounds (#538) by @ada4a
- Get rid of some
Option/Result::and_then
s (#549) by @ada4a - (merge)
leak
in fewer places (#555) by @ada4a - Return exactly a
Conflict
fromTreeBuilder::build_conflict
(#569) by @ada4a - (AstNode) Replace
UnsafeCell
s withCell
s (#574) by @ada4a
⚡ Performance
- Distinguish between exact and inexact initial matchings (#523) by @wetneb
- (mgf_dev) Speed up commutative isomorphism via hashing (#536) by @wetneb
🛕Governance
🧪 Testing
- (ast) Improve legibility of
source
strings (#550) by @ada4a - (parse) Add an option to limit tree depth (#535) by @ada4a
- (ParentType) Make
Display
less verbose in the common case (#542) by @ada4a - Add a Cargo feature for
mgf_dev
-specific functionality (#541) by @ada4a - (merge,solve) Create the debug dir if not present (#575) by @ada4a
⚙️ Miscellaneous Tasks
- Highlight new contributors in release notes (#528) by @wetneb
- Print line numbers when reporting a syntax error (#529) by @wetneb
- (cargo/aliases) Run
mgf_dev compare
in release mode (#539) by @ada4a - Update dependencies (#548) by @wetneb
- (changelog) Add commit ids to log entries without names (#547) by @wetneb
- Fix
cargo install git-cliff
with--locked
(#544) by @wetneb - Switch to
tree-sitter-java-orchard
(#546) by @wetneb - Improve log output (#553) by @wetneb
- Add
AstNode::succeeding_whitespace()
(#571) by @wetneb
🎉 New contributors
- @OvidiusCicero made their first contribution in #572
- @amartani made their first contribution in #509
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
165 downloads
-
mergiraf_aarch64-apple-darwin.tar.gz
135 downloads · 6.4 MiB
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
6 downloads · 6 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
6 downloads · 6 MiB
-
mergiraf_x86_64-apple-darwin.tar.gz
101 downloads · 6.2 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
593 downloads · 6 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
98 downloads · 6.3 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
166 downloads · 6.3 MiB
-
Mergiraf 0.13.0
released this
2025-07-23 20:03:49 +02:00 | 60 commits to main since this release🚀 Features
- (verilog) Switch to tree-sitter-systemverilog (#514) by @come_744
- (Python) Merge decorated methods and inner classes (#522) by @wetneb
- (Haskell) More commutative parents and signatures (#488) by @maralorn
- Add support for GNU Make (#510) by @twz123
🐛 Bug Fixes
- (rust) Add signature to
self
inuse_declaration
(#505) by @ada4a - Improve detection of Jujutsu usage (#513) by @senekor
- (tests) Correct python/working/all case (#524) by @wetneb
💼 Other
🚜 Refactor
- Add submodules to
merged_tree.rs
(#497) by @ada4a - (MergedTree) Take
&Leader
in methods to avoid derefs (#498) by @ada4a - (RevisionNESet) Use
impl Deref<Target=RevisionSet>
instead of forwarding methods (#501) by @ada4a - (RevisionSet) Misc changes to
iter
andany
(#502) by @ada4a - (mgf_dev) Only match on
args.command
once (#517) by @ada4a - (fallback_to_git_merge_file) Some minor clean-up (#518) by @ada4a
- Simplify ParsedMerge::rev_range_to_merged_range (#525) by @wetneb
📚 Documentation
- Update rotten link (#504) by @ada4a
- Use XDG paths for git directories (#508) by @jadeprime
⚡ Performance
🧪 Testing
- (lang_profile) Introduce helper to reduce (some) boilerplate (#506) by @ada4a
- Minimal environment when invoking git (#512) by @twz123
⚙️ Miscellaneous Tasks
🎉 New contributors
- @twz123 made their first contribution in #510
- @jadeprime made their first contribution in #508
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
25 downloads
-
Source code (TAR.GZ)
206 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
28 downloads · 5.9 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
9 downloads · 5.9 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
795 downloads · 6 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
168 downloads · 6.2 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
349 downloads · 6.2 MiB
-
Mergiraf 0.12.1
released this
2025-07-10 18:33:46 +02:00 | 84 commits to main since this release🐛 Bug Fixes
- Language detection by full filenames (#490) by @wetneb
- Include full filenames in languages list (#493) by @wetneb
🚜 Refactor
⚙️ Miscellaneous Tasks
- Update testing helpers to support test cases without extensions (#486) by @wetneb
- Update dependencies (#483) by @wetneb
- Fix crates.io upload (#494) by @wetneb
- (cli/solve) Make
--keep
a hidden alias of--stdout
(#496) by @ada4a
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
20 downloads
-
Source code (TAR.GZ)
160 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
9 downloads · 5.9 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
9 downloads · 5.9 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
170 downloads · 5.9 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
99 downloads · 6.1 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
132 downloads · 6.2 MiB
-
Mergiraf 0.12.0
Some checks failed/ release (push) Failing after 2m51sreleased this
2025-07-09 07:27:21 +02:00 | 92 commits to main since this release🚀 Features
- (Python) Let elements of
__all__ = [ … ]
statements commute (#453) by @wetneb - (Haskell) Let type classes commute in
deriving
tuples (#454) by @wetneb - Support specifying full file names in language profiles (#465) by @wetneb
- Support for
go.mod
files (#474) by @wetneb - Support for
go.sum
files (#476) by @wetneb
🐛 Bug Fixes
- Add missing string signature to avoid duplicate elements in Python's
__all__
(#455) by @wetneb - Check for Jujutsu repo at conflict location (#462) by @senekor
- (PHP) Don't commutatively merge comments in declaration_lists (#459) by @wetneb
- Ignore empty nodes in
AstNode::isomorphic_to_source
(#480) by @wetneb - Escape newlines in ascii art representation of trees (#481) by @wetneb
🚜 Refactor
📚 Documentation
🧪 Testing
- Specify the language via a dedicated file (#464) by @wetneb
- Update helpers to support explicit language setting (#475) by @wetneb
- Reorganize
parsed_merge
tests (#472) by @ada4a - Add missing tests for
go.mod
support (#477) by @wetneb
⚙️ Miscellaneous Tasks
- Remove extra newlines between changelog items (#457) by @wetneb
- Move mgf_dev to a separate package (#458) by @senekor
- Add CONTRIBUTING.md (#438) by @wetneb
- Warn of
default_trait_access
(#471) by @ada4a - (go.mod) Update parser to 0.4.0 (#478) by @wetneb
- Use Docker image with Rust already installed (#468) by @wetneb
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
18 downloads
-
Source code (TAR.GZ)
112 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
0 downloads · 5.9 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
1 download · 5.9 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
82 downloads · 5.9 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
41 downloads · 6.1 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
32 downloads · 6.2 MiB
- (Python) Let elements of
-
Mergiraf 0.11.0
released this
2025-06-29 15:41:58 +02:00 | 117 commits to main since this release🚀 Features
- OCaml support (#426) by @thufschmitt
- Elixir support (#427) by @noaccOS
- Haskell support (#429) by @maralorn
- (Haskell) Make record updates commutative and add signatures (#431) by @maralorn
- (Rust) Support reordering declarations with attributes (#428) by @wetneb
- Resolve file revisions from git commits (#434) by @xmo
🐛 Bug Fixes
💼 Other
📚 Documentation
⚡ Performance
⚙️ Miscellaneous Tasks
- Update Rust grammar to 0.7 (#435) by @wetneb
- Fix formatting for CI to pass again (#444) by @wetneb
- Make sure tests pass independently from the environment (#445) by @wetneb
- Update tree-sitter-rust-orchard to 0.10.0 (#447) by @wetneb
- Automate the release process (#433) by @wetneb
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
24 downloads
-
Source code (TAR.GZ)
138 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
1 download · 5.9 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
1 download · 5.9 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
122 downloads · 5.9 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
113 downloads · 6.1 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
95 downloads · 6.1 MiB
-
Mergiraf 0.10.0
All checks were successful/ test (push) Successful in 1m36sreleased this
2025-06-02 10:28:39 +02:00 | 134 commits to main since this releaseNew languages
- INI files (
.ini
) by @wetneb (#404) - HashiCorp Language (
.hcl
,.tf
,.tfvars
) by @maunzCache (#210)
Bug fixes
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
27 downloads
-
Source code (TAR.GZ)
192 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
5 downloads · 4.5 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
1 download · 4.5 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
993 downloads · 4.5 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
92 downloads · 4.6 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
216 downloads · 4.7 MiB
- INI files (
-
Mergiraf 0.9.0
All checks were successful/ test (push) Successful in 1m53sreleased this
2025-05-27 09:57:51 +02:00 | 138 commits to main since this releaseNew features
- Support for nested languages (#403 by @wetneb). This makes it possible to solve conflicts in different languages than the file's source, when they are embedded through code blocks (for instance in Markdown). This feature was sponsored by Stainless.
New languages
Documentation
Performance
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
34 downloads
-
Source code (TAR.GZ)
119 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
0 downloads · 4.4 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
0 downloads · 4.5 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
101 downloads · 4.5 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
25 downloads · 4.6 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
11 downloads · 4.7 MiB
-
Mergiraf 0.8.1
All checks were successful/ test (push) Successful in 1m38sreleased this
2025-05-16 07:16:35 +02:00 | 153 commits to main since this releaseMaintenance release to update out of a yanked dependency.
Changes
- fix: Update zip to v3.0.0 (#391 by @voidedgin)
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
31 downloads
-
Source code (TAR.GZ)
112 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
1 download · 4.3 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
0 downloads · 4.4 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
127 downloads · 4.4 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
38 downloads · 4.5 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
9 downloads · 4.6 MiB
-
Mergiraf 0.8.0
All checks were successful/ test (push) Successful in 1m50sreleased this
2025-05-13 17:06:48 +02:00 | 157 commits to main since this releaseGeneral improvements
- feat: Specify different separators for each children group of a commutative parent (#374 by @wetneb)
- fix: Avoid displaying spurious conflicts (#371 by @wetneb and @ada4a)
- fix: Check that the merged text is syntactically valid and consistent with the merged tree (#368 by @wetneb)
- fix: Handling of duplicate signatures in base revision (#362 by @wetneb)
- fix: Don't match nodes of different types (#367 by @wetneb)
- fix: Writing changeset to debug dir (#376 by @wetneb)
Language-specific improvements
- C/C++: Restrict commutativity of initializer_list (#377 by @wetneb)
- C/C++: even more C++ file extensions (#365 by @hexointed)
- C#: Restrict commutativity (#375 by @wetneb)
- YAML: Fix handling of quoted strings (#380 by @wetneb)
Download
Consider installing Mergiraf via a package manager to benefit from automatic updates. Otherwise, binaries are available for your convenience below. Binaries for MacOS can be obtained from Homebrew.
Downloads
-
Source code (ZIP)
23 downloads
-
Source code (TAR.GZ)
98 downloads
-
mergiraf_aarch64-unknown-linux-gnu.tar.gz
0 downloads · 4.3 MiB
-
mergiraf_aarch64-unknown-linux-musl.tar.gz
2 downloads · 4.3 MiB
-
mergiraf_x86_64-pc-windows-gnu.zip
60 downloads · 4.4 MiB
-
mergiraf_x86_64-unknown-linux-gnu.tar.gz
26 downloads · 4.5 MiB
-
mergiraf_x86_64-unknown-linux-musl.tar.gz
4 downloads · 4.5 MiB