Skip to content

Latest commit

 

History

History
425 lines (256 loc) · 23.2 KB

File metadata and controls

425 lines (256 loc) · 23.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


6.5.0 (2026-03-20)

Features

  • core: introduce SiftExplainer for human-readable regex translation (51cf602)

6.4.0 (2026-03-18)

Features

  • graalvm: introduce safe execute API and EngineScope interface (31c5360)

6.3.2 (2026-03-18)

Bug Fixes

  • align JdkEngine null handling and optimize AST feature caching (de8be48)

6.3.1 (2026-03-17)

Bug Fixes

  • core: enforce feature propagation in AST container nodes (4f6c83d)

6.3.0 (2026-03-17)

Features

  • engine: enforce Template Method, OCP, and resource safety (f27553a)

6.2.0 (2026-03-16)

Features

  • graalvm: introduce GraalVM TRegex execution backend (9ebdf7c)

Bug Fixes

  • graalvm: remove platform dependency to fix CycloneDX BOM generation (a8c8d75)

6.1.0 (2026-03-16)

Features

  • re2j: implement RE2J engine (6c8dcfa)

6.0.0 (2026-03-15)

⚠ BREAKING CHANGES

  • core: The terminal method .sieve() now returns a SiftCompiledPattern abstraction instead of a java.util.regex.Pattern.

Code Refactoring

  • core: decouple regex compilation to support pluggable engines (25c9ff7)

5.6.0 (2026-03-13)

Features

  • core: add comprehensive execution and extraction API to SiftPattern (5815fc8)

5.5.0 (2026-03-12)

Features

  • core: implement advanced regex features and class intersections (8567faf)

5.4.0 (2026-03-12)

Features

  • core: add caseless letters and symbols Unicode support (bf769ff)

5.3.0 (2026-03-11)

Features

  • core: implement robust recursion engine for nested structures (113f598)

5.2.0 (2026-03-11)

Features

  • core: implement type-safe conditional (If-Then-Else) regex DSL (94927e2)

5.1.0 (2026-03-11)

Features

  • dsl: integrate Type-Safe lookaround assertions into builder chain (0419cd3)

5.0.0 (2026-03-09)

⚠ BREAKING CHANGES

  • streamline connector interfaces and extract phantom types
  • rename pattern() to of() for better DSL readability

Code Refactoring

  • rename pattern() to of() for better DSL readability (d65078c)
  • streamline connector interfaces and extract phantom types (33da874)

4.0.0 (2026-03-07)

⚠ BREAKING CHANGES

  • resolve semantic mismatch in SiftPattern matching

Features

  • resolve semantic mismatch in SiftPattern matching (7726030)

3.0.2 (2026-03-07)

Bug Fixes

  • resolve silent metadata loss in wrapped patterns (716ef68)

3.0.1 (2026-03-07)

Bug Fixes

  • rename casing methods to align with Java conventions (1b98c0d), closes #17

3.0.0 (2026-03-06)

⚠ BREAKING CHANGES

  • SiftPattern now requires a generic context . Invalid regex compositions (like applying modifiers to fixed quantifiers or nesting roots) will now fail at compile-time instead of runtime.

Code Refactoring

  • implement Type-Driven Design and Phantom Types for compile-time safety (dae1784)

2.4.4 (2026-03-06)

Bug Fixes

  • core: enforce absolute boundary validation in factories (1558848)

2.4.3 (2026-03-05)

Bug Fixes

  • core: prevent raw regex injection by sealing SiftPattern (23fdd06)

2.4.2 (2026-03-04)

Bug Fixes

  • core: implement lazy backreference validation (2853a9a)

2.4.1 (2026-03-04)

Performance Improvements

  • optimize UUID and MAC address patterns in SiftCatalog using native hexDigits class (bc8932c)

2.4.0 (2026-03-04)

Features

  • add control characters and utility classes to DSL (e406ecd)

2.3.2 (2026-03-03)

Bug Fixes

  • docs: remove extra space in javadoc to test pipeline (47038e3)

2.3.1 (2026-03-03)

Bug Fixes

  • docs: correct spacing in documentation (32229a2)

2.3.0 (2026-03-03)

Features

  • api: add global regex flags and enforce varargs safety (4b9c494)
  • core: add anti-ReDoS protection and achieve 100% test coverage (eaac349)
  • core: add email, webUrl and isoDate to SiftCatalog (d75cd63)
  • core: add lookahead and lookbehind support to SiftPatterns (58d0601)
  • core: add sieve() method to return cached compiled Pattern (e018b78)
  • core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)
  • core: enhance Developer Experience with fail-fast guards and convenience methods (31cc23f)
  • core: implement fail-fast validation for duplicate group names (80f66dc)
  • core: implement secure named captures and backreferences with strict validation (5106940)
  • core: implement type-safe pattern grouping and complete API documentation (1f45453)
  • core: introduce custom character range support and align JavaDoc (4d3e71b)
  • implement Unicode character classes, full ASCII/UTF symmetry, and architecture cleanup (d89756e)
  • migrate to multi-module architecture with Jakarta Validation support (1fd98fd)

Bug Fixes

  • annotations: narrow exception scope in SiftMatchValidator (1a365c1)
  • annotations: replace RuntimeException with ValidationException in SiftMatchValidator (2bcbda9)
  • CI failing when coverage is unmodified (625cfeb)
  • core: add fail-fast validation to SiftBuilder.shake() (e14faf0)
  • core: add volatile to SiftBuilder cache fields (e161674)
  • core: escape brackets and whitespace to prevent runtime regex crashes (8bee547)
  • core: memoize shake() and implement identity methods on SiftBuilder (8594222)
  • core: prevent meaningless zero-max quantifiers in builder (cffb73c)
  • core: prevent varargs null poisoning and empty string edge cases (4575231)
  • core: remove circular dependency in GroupName static init (f12bde6)
  • core: seal group collision loopholes and harden varargs validation (b6a9648)
  • core: support underscores in group names (22cd832)
  • maven badges (59a41ff)
  • resolve quantifier overwrite bug in withOptional syntactic sugar (b4c74a2)

Performance Improvements

  • core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
  • core: implement double-checked locking and concurrent coverage tests (c130136)
  • core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)
  • core: memoize SiftPatterns lambdas and add caching tests (401fece)
  • optimize anythingBut() to be zero-allocation (cd0115f)

2.2.0 (2026-03-03)

Features

  • api: add global regex flags and enforce varargs safety (4b9c494)
  • core: add anti-ReDoS protection and achieve 100% test coverage (eaac349)
  • core: add email, webUrl and isoDate to SiftCatalog (d75cd63)
  • core: add lookahead and lookbehind support to SiftPatterns (58d0601)
  • core: add sieve() method to return cached compiled Pattern (e018b78)
  • core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)
  • core: enhance Developer Experience with fail-fast guards and convenience methods (31cc23f)
  • core: implement fail-fast validation for duplicate group names (80f66dc)
  • core: implement secure named captures and backreferences with strict validation (5106940)
  • core: implement type-safe pattern grouping and complete API documentation (1f45453)
  • core: introduce custom character range support and align JavaDoc (4d3e71b)
  • implement Unicode character classes, full ASCII/UTF symmetry, and architecture cleanup (d89756e)
  • migrate to multi-module architecture with Jakarta Validation support (1fd98fd)

Bug Fixes

  • annotations: narrow exception scope in SiftMatchValidator (1a365c1)
  • annotations: replace RuntimeException with ValidationException in SiftMatchValidator (2bcbda9)
  • CI failing when coverage is unmodified (625cfeb)
  • core: add fail-fast validation to SiftBuilder.shake() (e14faf0)
  • core: add volatile to SiftBuilder cache fields (e161674)
  • core: escape brackets and whitespace to prevent runtime regex crashes (8bee547)
  • core: memoize shake() and implement identity methods on SiftBuilder (8594222)
  • core: prevent meaningless zero-max quantifiers in builder (cffb73c)
  • core: prevent varargs null poisoning and empty string edge cases (4575231)
  • core: remove circular dependency in GroupName static init (f12bde6)
  • core: seal group collision loopholes and harden varargs validation (b6a9648)
  • core: support underscores in group names (22cd832)
  • maven badges (59a41ff)
  • resolve quantifier overwrite bug in withOptional syntactic sugar (b4c74a2)

Performance Improvements

  • core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
  • core: implement double-checked locking and concurrent coverage tests (c130136)
  • core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)
  • core: memoize SiftPatterns lambdas and add caching tests (401fece)
  • optimize anythingBut() to be zero-allocation (cd0115f)

2.1.0 (2026-03-03)

Features

  • core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)

Performance Improvements

  • core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
  • core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)

[2.1.0] - Unreleased

Features

  • Core: Add support for COMMENTS (?x) and UNICODE_CASE (?u) global flags.
  • Core: Enhance Developer Experience with fail-fast guards and convenience methods.
  • Core: Add email, webUrl, and isoDate to SiftCatalog.

Refactoring

  • Core (Architecture): Dismantle SiftBuilder God Class into segregated, type-safe immutable nodes.
  • Core (Architecture): Rename AbstractTypeStep to BaseTypeStep for clearer semantics.
  • Core (API): Rename type methods to be more readable and discoverable via auto-complete.
  • Core: Encapsulate quantifier modifiers (?, +) into a stateful Enum to prevent bugs.

Performance

  • Core: Eager initialization of HEX_CHAR in SiftCatalog to avoid lock contention on boot.
  • Core: Memoize anyOf(List) pattern generation to prevent redundant allocations.
  • Core: Optimize hex allocations.

Documentation

  • Core: Document architectural decisions for "fat" connector classes and memory optimization.
  • Core: Clarify limitations of anonymous capturing groups in SiftPatterns.
  • Core: Clarify email validation documentation in SiftCatalog.
  • Core: Remove legacy banner-style comments for cleaner code.
  • Docs: Update README.md with recent architectural changes.

[2.0.0] - 2026-03-02

Features

  • Core: Support underscores in capturing group names.
  • Core: Add sieve() method to return cached compiled Pattern.
  • Core: Introduce custom character range support.

Refactoring

  • Core: Enforce strict encapsulation for PatternAssembler.
  • Core: Disambiguate regex modifier constants.
  • Core: Implement SOLID delegates for the State Machine.
  • Core: Remove public modifier from package-private constants.

Performance

  • Core: Memoize SiftPatterns lambdas.
  • Core: Implement double-checked locking for thread-safe regex compilation and caching.
  • Core: Optimize anythingBut() to be zero-allocation.

Bug Fixes

  • Core: Prevent meaningless zero-max quantifiers in the builder.
  • Core: Add volatile keyword to cache fields for thread-safety.
  • Core: Add fail-fast validation to SiftBuilder.shake().
  • Core: Memoize shake() and implement identity methods on SiftBuilder.
  • Core: Remove circular dependency in GroupName static initialization.
  • Annotations: Narrow exception scope in SiftMatchValidator and replace RuntimeException with ValidationException.

[1.6.0] - Previous Release

Features

  • Core: Implement fail-fast validation for duplicate group names.

Refactoring

  • Core: Enforce compile-time safety for character class modifiers.

Bug Fixes

  • Core: Seal group collision loopholes and harden varargs validation.
  • Core: Escape brackets and whitespace to prevent runtime regex crashes.

Documentation

  • Core: Add executable docs for literal null-concatenation anti-pattern.

[1.5.1] - Previous Release

Refactoring

  • Core: Centralize build automation and enforce global null-safety.
  • Core: Implement defensive null-safety and refine documentation.

Bug Fixes

  • Core: Prevent varargs null poisoning and empty string edge cases.

[1.5.0] - Universal Compatibility & O(1) Optimizations

Features

  • Core: Implement type-safe pattern grouping.
  • Core: Add lookahead and lookbehind support to SiftPatterns.
  • Core: Implement secure named captures and backreferences with strict validation.
  • Core: Add global regex flags and enforce varargs safety.
  • Core: Implement Unicode character classes and full ASCII/UTF symmetry.
  • Core: Add anti-ReDoS protections.

Refactoring

  • Core: Enforce compile-time safety for anti-backtracking operations.
  • Core: Extract PatternAssembler to decouple state machine from string assembly (SRP).

[1.2.0] - Initial Public Releases

Features

  • Project: Migrate to multi-module architecture.
  • Annotations: Add Jakarta Validation support (@SiftMatch).
  • Core: Initial core library structure.

Bug Fixes

  • Core: Resolve quantifier overwrite bug in withOptional syntactic sugar.

Maintenance

  • CI/CD: Add GitHub Actions pipeline for automated Maven Central publishing.
  • CI/CD: Setup JaCoCo coverage reporting.