prism-merge v2.0.0 released!
2.0.0 - 2026-02-19
- TAG: v2.0.0
- COVERAGE: 97.26% – 780/802 lines in 12 files
- BRANCH COVERAGE: 82.07% – 412/502 branches in 12 files
- 93.59% documented
Added
- Many new features inherited from
ast-merge, and updated behaviors. - FileAnalysis: Added
#errorsmethod for compatibility with SmartMergerBase- Returns
@parse_result.errorsfor consistency with other FileAnalysis classes - Enables SmartMergerBase to properly create parse errors when
valid?is false
- Returns
- AGENTS.md
Changed
- appraisal2 v3.0.6
- kettle-test v1.0.10
- stone_checksums v1.0.3
- ast-merge v4.0.6
- tree_haver v5.0.5
- tree_stump v0.2.0
- fork no longer required, updates all applied upstream
- SmartMerger: Added
**optionsfor forward compatibility- Now passes
node_typingexplicitly toSmartMergerBaseinstead of storing locally - Accepts additional options that may be added to base class in future
- Now passes
- FileAnalysis: Added
**optionsfor forward compatibility- Accepts additional options that may be added in future
- Consistent with other
*-mergegems’ FileAnalysis classes
- MergeResult: Added
**optionsfor forward compatibility - ParseError: Updated constructor to accept base class signature
- Now accepts optional
message,errors:,content:, andparse_result:keywords - Compatible with
Ast::Merge::ParseErrorsignature while preservingparse_resultattribute - Enables SmartMergerBase to create parse errors without Prism-specific knowledge
- Now accepts optional
- Updated documentation on hostile takeover of RubyGems
- https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
- BREAKING: Error classes now inherit from
Ast::Mergebase classes:Prism::Merge::Errornow inherits fromAst::Merge::Error(wasStandardError)Prism::Merge::ParseErrornow inherits fromAst::Merge::ParseError(wasPrism::Merge::Error)ParseError#errorsattribute added (array of error objects fromparse_result.errors)- Code using
e.parse_result.errorsshould now usee.errorsdirectly parse_resultattribute is still available for Prism-specific access
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?