Release History
This page documents the evolution of Higher-Kinded-J from its initial release through to the current version. Each release builds on the foundations established by earlier versions, progressively adding type classes, monads, optics, and the Effect Path API.
- Detailed release notes for recent versions (0.3.0+) with links to documentation
- Summary release notes for earlier versions (pre-0.3.0)
- Links to GitHub release pages for full changelogs
Recent Releases
v0.3.5 -- 15 February 2026
Extended For-Comprehensions, VTask API Refinement, and Documentation Restructure
This release extends for-comprehension arity to 12, simplifies the VTask API, adds Maybe-to-Either conversions, upgrades to JUnit 6, and delivers a comprehensive documentation restructure with quickstart guides, cheat sheets, migration cookbooks, and railway diagrams.
- For-Comprehension Arity 12 --
ForandForPathnow support up to 12 monadic bindings (previously 5), with generatedTuple9–Tuple12andFunction9–Function12 - VTask API --
VTask.run()no longer declaresthrows Throwable; checked exceptions are wrapped inVTaskExecutionException - Maybe.toEither -- New
toEither(L)andtoEither(Supplier<L>)conversion methods for seamlessMaybe→Eithertransitions - Quickstart -- New getting-started guide with Gradle and Maven setup including
--enable-previewconfiguration - Cheat Sheet -- Quick-reference for Path types, operators, escape hatches, and type conversions
- Stack Archetypes -- 7 named transformer stack archetypes with colour-coded railway diagrams
- Migration Cookbook -- 6 recipes for migrating from try/catch, Optional chains, null checks, CompletableFuture, validation, and nested records
- Compiler Error Guide -- Solutions for the 5 most common Effect Path compiler errors
- Effects-Optics Capstone -- Combined effects and optics pipeline example
- Railway operator diagrams for all 8 Effect Path operators and for EitherT, MaybeT, OptionalT transformers
- JUnit 6.0.2 upgrade (from 5.14.1) across all test modules
- Golden file test infrastructure with automated sync verification and pitest mutation coverage improvements
v0.3.4 -- 31 January 2026
External Type Optics and Examples Gallery
This release introduces powerful optics generation for external types you cannot modify, plus a new Examples Gallery chapter documenting all runnable examples.
- @ImportOptics -- Generate optics for JDK classes and third-party library types via auto-detection of withers and accessors
- Spec Interfaces -- Fine-grained control over external type optics with
OpticsSpec<S>for complex types like Jackson'sJsonNode - @ThroughField Auto-Detection -- Automatic traversal type detection for
List,Set,Optional, arrays, andMapfields - Examples Gallery -- New chapter with categorised, runnable examples demonstrating core types, transformers, Effect Path API, and optics
- Comprehensive hkj-processor testing improvements with enhanced coverage
v0.3.3 -- 24 January 2026
Structured Concurrency, Atomic Optics, and Enhanced Examples
This release introduces structured concurrency primitives, atomic coupled-field updates, and a comprehensive Order Workflow example demonstrating these patterns.
- Structured Concurrency --
Scopefor parallel operations withallSucceed(),anySucceed(),firstComplete(), andaccumulating()joiners - Resource Management --
Resourcefor bracket-pattern cleanup with guaranteed release - Coupled Fields --
Lens.pairedfor atomic multi-field updates bypassing invalid intermediate states - Order Workflow Overview -- Reorganised documentation with focused sub-pages
- Concurrency and Scale -- Context, Scope, Resource, VTaskPath patterns in practice
EnhancedOrderWorkflow-- Full workflow demonstrating Context, Scope, Resource, VTaskPathOrderContext-- ScopedValue keys for trace ID, tenant isolation, and deadline enforcement- Scope & Resource Tutorials -- 18 exercises on concurrency patterns
- Release History -- New page documenting all releases
v0.3.2 -- 17 January 2026
Virtual Thread Concurrency with VTask
This release introduces VTask<A>, a lazy computation effect leveraging Java 25's virtual threads for lightweight concurrent programming.
- VTask -- Lazy computation effect for virtual thread execution
- Structured Concurrency --
Scopefor parallel operations withallSucceed(),anySucceed(), andaccumulating()patterns - Resource Management --
Resourcefor bracket-pattern cleanup guarantees - VTaskPath -- Integration with the Effect Path API
- Concurrency and Scale -- Practical patterns in the Order Workflow example
Parparallel combinators for concurrent execution- Comprehensive benchmarks comparing virtual vs. platform threads
v0.3.1 -- 15 January 2026
Static Analysis Utilities
This release adds utilities for statically analysing Free Applicative and Selective functors without execution.
- Choosing Abstraction Levels -- Guide to selecting Functor, Applicative, Selective, or Monad
- Free Applicative -- Static analysis with
FreeApAnalyzer - Selective -- Conditional effects with
SelectiveAnalyzer - Tutorial 11 on static analysis patterns
v0.3.0 -- 4 January 2026
Effect Path Focus Integration
Major release introducing the unified Effect Path API and Focus DSL integration. Requires Java 25 baseline.
- Effect Path Overview -- The railway model for composable effects
- Path Types -- 17+ composable Path types including
EitherPath,MaybePath,IOPath - Focus DSL -- Type-safe optics with annotation-driven generation
- Focus-Effect Integration -- Bridge between optics and effects
- ForPath Comprehension -- For-comprehension syntax for Path types
- Spring Boot Integration -- Spring Boot 4.0.1+ support
- Order Workflow -- Complete example demonstrating Effect Path patterns
Earlier Releases
v0.2.8 -- 26 December 2025
- Introduced
ForPathfor Path-native for-comprehension syntax - Complete Spring Boot 4.0.1 migration of
hkj-springfromEitherTto Effect Path API - New return value handlers for Spring integration
v0.2.7 -- 20 December 2025
- Effect Contexts:
ErrorContext,OptionalContext,ConfigContext,MutableContext - Bridge API enabling seamless transitions between optics and effects
v0.2.6 -- 19 December 2025
- New Effect Path API with 17+ Path types
- Retry policies and parallel execution utilities
- Kind field support in Focus DSL
v0.2.5 -- 9 December 2025
- Annotation-driven Focus DSL for fluent optics composition
- Free Applicative and Coyoneda functors
- Natural Transformation support
v0.2.4 -- 3 December 2025
- Affine optic for focusing on zero or one element
ForTraversal,ForState, andForIndexedcomprehension builders- For-comprehension and optics integration
v0.2.3 -- 1 December 2025
- Cross-optic composition (Lens + Prism → Traversal)
- Experimental Spring Boot starter
- Custom target package support for annotation processor
v0.2.2 -- 29 November 2025
- Java 25 baseline
- Experimental
hkj-springmodule - Validation helpers and ArchUnit architecture tests
- Thread-safety fix in Lazy memoisation
v0.2.1 -- 23 November 2025
- 7-part Core Types tutorial series
- 9-part Optics tutorial (~150 minutes total)
- Versioned documentation system
- Property-based testing infrastructure
- JMH benchmarking framework
v0.2.0 -- 21 November 2025
- Six new optic types: Fold, Getter, Setter, and indexed variants
- FreeMonad for DSL construction
- Trampoline for stack-safe recursion
- Const Functor
- Enhanced Monoid with new methods
- Alternative type class
v0.1.9 -- 14 November 2025
- Selective type class for conditional effects
- Enhanced optics with
modifyWhen()andmodifyBranch() - Bifunctor for Either, Tuple2, Validated, and Writer
- Higher-kinded Stream support
v0.1.8 -- 9 September 2025
- Profunctor type class
- Profunctor operations in universal Optic interface
v0.1.7 -- 29 August 2025
- Generated
with*helper methods for records via@GenerateLenses Traversals.forMap()for key-specific Map operations- Semigroup interface with Monoid extending it
- Validated Applicative with error accumulation
v0.1.6 -- 14 July 2025
- Optics introduction: Lens, Iso, Prism, and Traversals
- Annotation-based optics generation
- Plugin architecture for extending Traversal types
- Modular release structure
v0.1.5 -- 12 June 2025
- For comprehension with generators, bindings, guards, and yield
- Tuple1-5 and Function5 support
v0.1.4 -- 5 June 2025
- Validated Monad
- Standardised widen/narrow pattern for KindHelpers (breaking change)
v0.1.3 -- 31 May 2025
- First Maven Central publication
- 12 monads, 5 transformers
- Comprehensive documentation
v0.1.0 -- 3 May 2025
- Initial release
- Core types: Either, Try, CompletableFuture, IO, Lazy, Reader, State, Writer
- EitherT transformer
- GitHub Releases -- Full changelogs and assets
- Contributing -- How to contribute to Higher-Kinded-J