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.

What You'll Find

  • 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 -- For and ForPath now support up to 12 monadic bindings (previously 5), with generated Tuple9Tuple12 and Function9Function12
  • VTask API -- VTask.run() no longer declares throws Throwable; checked exceptions are wrapped in VTaskExecutionException
  • Maybe.toEither -- New toEither(L) and toEither(Supplier<L>) conversion methods for seamless MaybeEither transitions
  • Quickstart -- New getting-started guide with Gradle and Maven setup including --enable-preview configuration
  • 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's JsonNode
  • @ThroughField Auto-Detection -- Automatic traversal type detection for List, Set, Optional, arrays, and Map fields
  • 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 -- Scope for parallel operations with allSucceed(), anySucceed(), firstComplete(), and accumulating() joiners
  • Resource Management -- Resource for bracket-pattern cleanup with guaranteed release
  • Coupled Fields -- Lens.paired for 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, VTaskPath
  • OrderContext -- 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 -- Scope for parallel operations with allSucceed(), anySucceed(), and accumulating() patterns
  • Resource Management -- Resource for bracket-pattern cleanup guarantees
  • VTaskPath -- Integration with the Effect Path API
  • Concurrency and Scale -- Practical patterns in the Order Workflow example
  • Par parallel 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.


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.


Earlier Releases

v0.2.8 -- 26 December 2025

  • Introduced ForPath for Path-native for-comprehension syntax
  • Complete Spring Boot 4.0.1 migration of hkj-spring from EitherT to 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, and ForIndexed comprehension 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-spring module
  • 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() and modifyBranch()
  • 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

See Also