This list is not intended to be all-encompassing - it will document major and breaking API changes with their rationale when appropriate:
- ropes4k: [New Library] rope implementation for kotlin
- all : Upgrade of dependencies including Kotlin to v2.0.10, and gradle to 8.9
- result4k-strikt : [New module] Assertions for Strikt. H/T @potfur
-
all : Upgrade of dependencies including Kotlin to v2 and gradle.
-
result4k : Add fold and bidimap functions
-
data4k [Fix] Problem with deserialisation of numeric value types (due to int/long coercion by Jackson
- data4k [Fix] Problem with deserialisation of numeric value types (due to int/long coercion by Jackson
- data4k Make DataContainer contents mutable as chaining does not work otherwise.
- data4k Added updateWith() method to DataContainer to allow making a update of objects with an updated field
- data4k [Possible Break] DataContainers make a copy of their content data on construction.
- data4k Added copy() method to DataContainer to allow making a copy of objects with an updated field
- data4k Finalise methods (should have been non-open)
- data4k Fix serialisation of booleans.
- data4k [Unlikely Break] : Better support for values4k tiny types - we use the correct representation as per the show method if there is a non-primitive datatype underneath the covers.
- all : Upgrade of dependencies and gradle. Convert build to kotlin.
- data4k : Rename methods for consistency. Old methods have been deprecated.
- state4k : Remove errant system out
- all : Upgrade of dependencies and gradle.
- state4k : [Breaking change] Migrated to new construction mechanic. We now define sent commands with
onEnter(commands)
and these are defined on the state itself. This allows for a more consistent way of defining state transitions.
- result4k : Add
resultFromCatching
to catch some (but not all!) exceptions and turn them into aResult4k
H/T @MarcusDunn
- all : Upgrade of dependencies, including Kotlin to 1.9.23
- data4k : Add ability to declare child data-type fields (eg. JsonNode or submap) with data() and optionalData()
- data4k : [Breaking] Renamed content() to unwrap().
- all : Upgrade of dependencies
- state4k : [New module] Simple state machine modelling
- data4k : Tidying up of Metadatum interfaces
- data4k : Support for Property metadata being stored against properties
- data4k : Fix conversion of BigIntegers to int/long/bigdecimal
- all : Upgrade of dependencies
- values4k : Add CharValueFactory
- data4k : Add missing node types
- data4k : Fix problem with Jackson not replacing node
- data4k : Encapsulate data in
content()
function.
- data4k : Add support for Value classes and removed inner class structures to tidy up.
- data4k : [New module] data4k: Typesafe data-oriented programming.
- all : Upgrade of dependencies
- values4k : Added extension functions
- all : Upgrade of dependencies, including Kotlin to 1.9.20
- values4k : [Fix] InstantValue now uses format
- values4k : InstantValue value can now take a format
- mock4k : Rename mode argument.
- result4k-kotest : Made
shouldBeSuccess()
return value andshouldBeFailure()
return reason.
- mock4k : mock4k: Added relaxed and strict modes (pass these to
mock(MockMode.Relaxed)
)
- all : Upgrade of dependencies
- mock4k : [New module] mock4k: The very cheapest mocking framework platform.
- all : Upgrade of dependencies
- fabrikate4k : [Breaking] Changes to API to allow for recursive scenarios. See readme for details.
- all : Upgrade of dependencies, including Kotlin to 1.8.21 and Gradle to 8.1.1
- values4k : [Fix] Bug in Maskers.substring and added Maskers.reveal
- values4k : Add base 16, 32, 36, and 64 value factories H/T @oharaandrew314
- all : Upgrade of dependencies, including Kotlin to 1.8.10 and Gradle to 8.0.2
- result4k-kotest : Added Kotest matchers for result4k
- result4k-hamkrest : Added HamKrest matchers for result4k
- all : Upgrade of dependencies, including Kotlin to 1.7.20
- all : [Unlikely break] Remove dependency on kotlin stdlib JDK 8 as we don't need it to compile. If this causes a
problem, simply re-add
api(Kotlin.stdlib.jdk8)
to your project dependency list. - all-* : Fix provided dependencies included as runtime.
- values4k : Open up
of()
andparse()
so that custom implementations can be supplied.
- values4k : [Fix] Accidental removal of
InstantValue
typealias.
- values4k : [Possible break] More utility methods for construction. Moved to extension functions so may require import.
- all : Upgrade of dependencies, including Kotlin to 1.6.20
- values4k : Adding utility methods to get
ZERO
andrandom()
values
- all : Upgrade of dependencies, including Kotlin to 1.6.10
- all : Removal of deprecated methods.
- values4k : [Breaking] Deprecation of ValueFactory
invoke()
method. This enforces the usage of the of() method which will NOT bypass the validation.
- time4k : [Breaking] Merge DeterministicScheduler and TaskScheduler. One is a drop-in replacement for the other. H/T @time4tea
- time4k : Added TaskScheduler classes.
- all : Downgrade to Java 8 target - as not needed really.
- all : Upgrade to Java 11 target, gradle to v7.
- all : Upgrade of dependencies, including Kotlin to 1.6.0
- fabrikate4k : Revert change to provide more info on InstanceFabrikator as was blowing up on first try.
- fabrikate4k : Provide more information when InstanceFabricator cannot create an instance H/T @huanlui
- fabrikate4k : Fix Random generation of UUIDs so it is deterministic
- all : Upgrade of dependencies
- fabrikate4k Make Nullable creation behaviour configurable. H/T @huanlui
- fabrikate4k Fix #26 - added Boolean fabricator.
- all : Upgrade of dependencies, including Kotlin to 1.5.30.
- fabrikate4k Allow registered Fabricators to override defaults. H/T @LeoJohannsson-imtf
- fabrikate4k Use deprecated hidden constructors as last option only. H/T @saibot
- all : Upgrade of dependencies, including Kotlin to 1.5.21.
- tuples4k : support the
in
and!in
operators for tuples with all elements of the same type - values4k : interface and abstract base class for comparable values
- values4k : ValueFactory implements (PRIMITIVE)->DOMAIN
- values4k : Added support for Kotlin Result type using naming of style..
ofResult()
- all : Upgrade to Kotlin 1.5.0.
- values4k : Improved messages on error.
- partial4k : Reduce scope of functions to arity 5 with 3 placeholders. Massively reduces JAR size.
- fabrikate4k : Add random test data generator module. H/T @toastshaman
- partial4k : Add partial application module.
- result4k : Add convenience typealias for
Result4k
(to avoid clashes with Kotlin StdLib)
- values4k : Add unwrap() and fix validations.
- values4k : Add
NonBlankStringValueFactory
.
- release from MC
- values4k : Add
NonEmptyStringValueFactory
.
- result4k : Add flatZip(). h/t @razvn
- test release process (remove jcenter)
- values4k : [Deprecation]: Rename
print()
toshow()
as less confusing.
- values4k : [Breaking] Add proper support for inline classes through an interface. Rename
Value
toAbstractValue
, reintroduceValue
as an interface - values4k : Add print() to value factory, so we have a nice symmetric interface for String <-> Value conversions.
- values4k : [Breaking] Undo-rename
of
toinvoke
for construction of values. This was considered to be a bad move.
- values4k : [Breaking] Rename
of
toinvoke
for construction of values.
- values4k : New module!
- forkhandles-bom : Existing module!
- bunting4k : Existing module!
- parser4k : Existing module!
- result4k : Existing module!
- time4k : Existing module!