Skip to content

Releases: cdsap/Talaiot

v2.1.0

15 Nov 16:30
10efc18

Choose a tag to compare

2.1.0

  • [NEW] Support for multiple metric value types
  • [NEW] Experimental Provider Metrics

Support for different value types in metrics

Version 2.1.0 adds support for different value types in metrics (e.g., strings and numbers).

Example: Define Metrics with Mixed Type:

customBuildMetrics(
    "a" to "b",
    "c" to 2
)

Resulting Output:

{
  "customProperties": {
    "buildProperties": {
      "a": "b",
      "c": 2
    },
    "taskProperties": {}
  }
}

This change also enables defining your own custom metrics extending Metrics, with support for different value types:

class MyMetric : io.github.cdsap.talaiot.metrics.base.GradleMetric<Long>(
    provider = { 42L },
    assigner = { report, value ->
        report.customProperties.buildProperties["mymetric"] = value
    }
)

Experimental Provider Metrics

Since version 2.1.0, Talaiot includes an experimental mechanism to define metrics using a provider-based system compatible with Configuration Cache.
This approach allows you to lazily evaluate metric values, ensuring that they are resolved only when needed during the build lifecycle.
Two entry points are available for executing these providers:

  • Initialization phase – executed at the start of the execution phase.
  • Finalization phase – executed once the build has finished.

These APIs (initialProviderMetrics and finalProviderMetrics) are marked as experimental and may change in future versions.
You can suppress the compiler warning by explicitly opting in with @OptIn(ExperimentalMetricsApi::class).

Example:

metrics {
    initialProviderMetrics(
        "init_memory_metric" to providers.of(GetMemory::class) {}
    )
    finalProviderMetrics(
        "end_memory_metric" to providers.of(GetMemory::class) {}
    )
}

v2.0.9

03 Nov 16:19
aaccd8d

Choose a tag to compare

  • Fixed: BuildIdMetric behaves incorrectly (#454)

v2.0.8

10 Oct 02:53
d9ab366

Choose a tag to compare

  • Fix: 2.0.7 is incompatible with Java 17 #446

v2.0.7

04 Oct 19:06
b198e63

Choose a tag to compare

  • Lazily evaluate TalaiotBuildService parameters when recording finished tasks (#419) by @jamiesanson

v2.0.6

07 Nov 15:42
2b70da3

Choose a tag to compare

  • Partial support for Gradle Isolated projects.
  • Metrics using ValueSources are retrieved during the publishing phase. Fixes #408

v2.0.5

28 Aug 07:33
4ee5bd8

Choose a tag to compare

  • Removed usage of Provider.forUseAtConfigurationTime method org.gradle.util.NameMatcher #392

v.2.0.4

02 Mar 15:57
a09a2d3

Choose a tag to compare

  • [Talaiot Core] Added type in TaskLength representing the task type [#393]
  • [Talaiot Core] New metrics: processMetrics, enabled by default. [#393]
  • [Talaiot Core] If processMetrics is enabled, it will include: [#393]
    • gradleJvmArgs: jvm arguments for Gradle processes
    • kotlinJvmArgs: jvm arguments for Kotlin processes
    • processesStats: stats collected at the end of the build for java and kotlin processes. Includes meetrics like Usage, Uptime and GC Time.
  • [Talaiot Core]: Remove unused TalaiotBuildService code [#391] thanks wzieba

v.2.0.3

30 Sep 15:33
8d481bf

Choose a tag to compare

  • [NEW] Differentiate build execution from build duration. New property executionDurationMs in ExecutionReport #383

  • [FIX] Parsing module name from path #382

  • [FIX] Identify skipped tasks in Build Service #384

  • [INFRA] Merge assemble and lint due to strange concurrency limit errors in Circle CI #385

v.2.0.2

23 Sep 16:49
ecc8bcb

Choose a tag to compare

Core Library:

  • Remove unused dependencies #375
  • Adding Configuration cache hit info #378

Standard/Legacy Plugin:

  • Adding InfluxDb2Publisher #377

Internal:

  • Fix CI Snapshot publication and move Gradle plugin extension in the plugins 483304e

v.2.0.1

16 Sep 18:17
fd327ca

Choose a tag to compare

  • Fix wrong initialization of Metrics
  • Adding back custom publishers as now are compatible with configuration cache