All notable changes to this project are documented in this file, based on Keep a Changelog.
0.21.0 - 2022-05-11
IOException
s not being reported to the deserialize failure handler inSerializingStore
.
resource
requirement to0.14.1
.common
requirement to0.11.0
.
0.20.0 - 2022-04-04
common
requirement to0.10.3
.resource
requirement to0.14.0
.
- Fix inconsistent store state in very specific task cancellation scenario, which would result in
RuntimeException
s when deleting unobserved tasks, and added a regression test for it. - Fix same task being deleted multiple times by garbage collection (
deleteUnobservedTasks
), resulting in a runtime exception, and added regression tests for it. This happened due to a task depending on another task multiple times with different output stampers.
- Generics in the PIE DSL (#16)
0.19.8 - 2022-03-09
- Moved graph code into a separate project
pie.graph
. common
requirement to0.10.2
.
- Calling
Pie.close
causing theStore
to be closed multiple times. - Unnecessary
throws Exception
inSerializingStoreInMemoryBuffer.close
method definition. - Don't log observability changes if both top-down and bottom-up are disabled.
0.19.7 - 2021-12-13
- Do not schedule deferred task if it is not affected.
MetricsTracer
to have a mode where it automatically resets itself when a new build starts.LoggingTracer
to accept aMetricsTracer
which it uses to log task execution durations.
0.19.6 - 2021-11-23
common
requirement to0.10.1
.
0.19.5 - 2021-11-11
common
requirement to0.10.0
.
0.19.4 - 2021-11-10
- Make it possible to implement a different Java compiler for the
CompileJava
task with theJavaCompiler
interface. resource
requirement to0.13.2
.
0.19.3 - 2021-11-04
common
requirement to0.9.9
.
requireMapping
overloads toExecContext
which require a task and then transform the output with a mapping function, which is also used as a function output stamper (FuncEqualsOutputStamper
). These overloads make it convenient to depend on a subset of the output of a task.
0.19.2 - 2021-10-22
null
being set as the output of a new task that failed (due to an exception) or was interrupted, which was then subsequently returned as the output of that task.
0.19.1 - 2021-10-19
- Tasks data for new tasks (i.e., tasks that have not been executed before) not being reset on cancel or failure.
- Task data not being restored when task throws a
Throwable
. UncheckedInterruptedException
andCanceledException
not being handled as an interrupt/cancel.
0.19.0 - 2021-10-18
Pie#isObserved
, useSession#isObserved
instead.Pie#isExplicitlyObserved
, useSession#isExplicitlyObserved
instead.Pie#setImplicitToExplicitlyObserved
, useSession#setImplicitToExplicitlyObserved
instead.Pie#setCallback
, useSession#setCallback
instead.Pie#removeCallback
, useSession#removeCallback
instead.Pie#dropCallbacks
, useSession#dropCallbacks
instead.
resource
requirement to0.13.0
.
Pie#hasBeenExecuted
, useSession#hasBeenExecuted
instead.Pie#dropStore
, useSession#dropStore
instead.
Session#setSerializableCallback
for setting a callback that is serializable, so it can be stored in theStore
to survive recreating of thePie
instance.
0.18.1 - 2021-10-12
- Incorrect task data after task execution fails (due to an exception) or is interrupted. The previous data of the task is now restored.
0.18.0 - 2021-10-11
- The void resource dependency methods in
ExecContext
now return a boolean indicating whether the resource is changed or whether the dependency is new compared to the last execution of the task. resource
requirement to0.12.0
.common
requirement to0.9.8
.
- Tasks can get/set/clear an internal object with
getInternalObject
,setInternalObject
, andclearInternalObject
onExecContext
. Internal objects are stored and serialized along with the PIE store. - Tasks can inspect their previous input, output, and dependencies with
getPreviousInput
,getPreviousOutput
,getPreviousTaskRequireDeps
,getPreviousResourceRequireDeps
, andgetPreviousResourceProvideDeps
inExecContext
.
0.17.0 - 2021-10-01
Serde
and implementations allow passing inClassLoader
s for all deserialization methods.SerializingStore
to be instantiated with aSerializingStoreBuilder
to reduce the number of its constructors, easing its creation.SerializingStore
can now serialize/deserialize fromBufferedOutputStream
/BufferedInputStream
instead of just resources.common
requirement to0.9.7
.
- In-memory buffer convenience to
SerializingStoreBuilder
. MockExecContext
to test methods that require anExecContext
, which just executes tasks and ignores dependencies.
0.16.8 - 2021-09-20
common
requirement to0.9.5
.Pie
to only allow a single session to guarantee thread-safety.
tryNewSession
method toPie
that creates a new session if no session exist yet, or returnsOptional.empty()
if a session already exists. This is useful for actions that require a session but can be skipped, such as the reference resolution and hover tooltip editor services.
0.16.7 - 2021-09-10
- Validation is now performed immediately after creating a resource dependency, instead of performing this after task execution. This catches a couple of hidden dependencies which were not caught before. For example, requiring a resource before requiring the task that provides it in the same task now causes a hidden dependency error.
- Dependencies are now immediately stored when created. This fixes several issues where a hidden dependency was detected even though at that exact moment, it was not a hidden dependency.
0.16.6 - 2021-09-01
resource
requirement to0.11.5
.common
requirement to0.9.3
.