Skip to content

prism-merge v1.1.0

Choose a tag to compare

@pboling pboling released this 04 Dec 12:21
· 6625 commits to main since this release
v1.1.0
f588745

1.1.0 - 2025-12-04

  • TAG: v1.1.0
  • COVERAGE: 95.65% -- 770/805 lines in 9 files
  • BRANCH COVERAGE: 81.13% -- 245/302 branches in 9 files
  • 100.00% documented

Added

  • Recursive merge support for class and module bodies - nested structures are now merged intelligently
  • Conditional signature matching for if/unless blocks based on condition expression
  • Freeze block validation for partial/incomplete nodes and freeze blocks inside non-class/module contexts
  • Freeze blocks now match by position/order when both files have multiple freeze blocks
  • add_template_only_nodes option now properly respected in recursive merges and boundary processing
  • DebugLogger, controlled by ENV["PRISM_MERGE_DEBUG"] set to true or false
  • more specs

Changed

  • Migrated to Prism v1.6.0 native comment attachment (removed custom comment association logic)
  • Simplified FileAnalysis implementation using Prism's built-in features
  • Improved node lookup to handle anchors with leading comments (e.g., magic comments)

Fixed

  • Template-only nodes are now correctly excluded in all contexts when add_template_only_nodes: false
  • Freeze blocks inside methods now properly raise InvalidStructureError (only class/module-level freeze blocks allowed)
  • Freeze block matching now works correctly with multiple consecutive freeze blocks (matches by index/order)
  • Duplicate freeze blocks from template no longer appear when destination has matching freeze blocks
  • Magic comments at file top no longer prevent node lookup in recursive merges

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon