Skip to content

TaskTide - v1.0.0

Latest

Choose a tag to compare

@BrenKenna BrenKenna released this 07 Oct 13:43
· 32 commits to main since this release
79b1396

TaskTide Release

Overview

Release: version 1 release
Date: 2026-10-05
Release type: launch


Summary

Release acts as the milestone for TaskTide as its official launch 🌊🎉🎊. These exciting times close out the refactoring of TaskTide from production scale-outs of our use-cases.tasktide.org. Which lead to an array of architectural, operational, and security improvements.

Insights from the use-cases.tasktide.org production use-cases lead to refinements such as ManagerCommand interface for providing the TUI and WebUI with an expressive and approachable CQRS interface structure for interacting with TaskTide backend. De-centralized leader election driven mutex to enqueue the read/write requests of distributed compute resources to shared storage resource. Lets TaskTide to support database services (Postgres, Microsoft, MongoDB), and embedded databases (RocksDB, SQLite) , enabling it's heterogeneous deployments.

A much more intuitive division of labour for parallellism of the TaskTide-Engine. Which uses an EngineWorker entrypoint to expose parallel/serial processing capabilities, Traverser as the intermediary unit that dispatches work acquired by EngineWorker into clean use of EngineObserver lifecycle points and transitions. Further explores the concepts of WorkloadAcquisitions using a simple policy driven approach, allowing users to simply "punch-card" their requirements, and take full advantage of how Engine instances can ride along sets of workload collections (Sequential, Round Robin), and how it consumes the elements of that work (Exhaustive, Scanner). Integrating these features with additional WorkItem lifecycle phases of Hault, and Hold to provide additional operational parameters to how production workloads are processed. As well as providing workload introspection capabilities to the execution environments by passing down job & task identitifiers to them. Along with an array of other system updates, these elements act harmoniously to make a stable release, from an expansive CI that relies on an expressive test taxonomy.

Specific to this release is a broad structural refactoring and clean architectural refinements to the ItemStore and code cleans around expception handling and representation. Where a LockStrategy, and ConnectionStrategy are introduced to own their respective ItemStore mutex and connection lifecycle. So that the AbstractItemStore can orchestrate ItemStore operations through this interface, through a "single place".

Much needed TUI refinements were also brought in for data representation & build-release operational hygiene. Where the TaskTide splash text is compiled into the app, adds version to the client app through its build jar manifest configuration, and tidies up the TUI help text.


Highlights

  • Accepts version bumps for Jakarta-NoSQL (v1.18), DaniloPianni Maven Publishing Lib.
  • Broad code clean on exception handling particuarly for the mutex lid. Which were useful at the time for developing algorithm, but maturity requires exception clarity.
  • Normalizes use of common mutex helper methods to utils, improving use of TimeUnit and appropriate interrupted exception.
  • Clears ex.printStackTrace()/System.out.println from production src/main branches, test is fine.
  • Refactors ItemStore packaging structure, and introduces Strategies to better organize responsibilities.
  • Separate ItemStore strategies each now own lock and connection, allowing the AbstractItemStore to simply orchestrate operations through a central locked-connection lifecycle. Greatly improved clarity of the package, and testability for future versions.
  • Normalizes concrete ItemStoreExceptions to ItemStoreChecked/Unchecked exceptions.
  • Cleans and organizes ItemStore directory through the AbstractItemStore construction, deprecating old method.
  • Makes the master/protoDB path fields accessible to children, incombination with clean directory use resolved infinite loop detected in GH-actions tests. As lock fails to create on non-existent thing.
  • SQLiteStore open/close connections define database file under master/protoDB path fields.
  • Organizes use of ItemStoreSession through AbstractItemStore locked-connection lifecycle for further exploration in v2. Which may introduce an intmediary abstract class between AIS and concrete stores, so that the concrete stores are solely a wrapper for reading/writing Items to their DB (which will likely bring a third concrete store for verification/refinement).
  • CoreLib ItemStoreRepository fetch store map uses new refactored, greatly improved ItemStore config and helped debug use of refactored ItemStore design released here for v1.
  • Compiles the splash text into terminal UI.
  • Adds version and client info into jar manifest configuration.
  • Cleans the TUI help message

Notes for next version

  • ItemStoreSession
  • Further explore ManagerCommand interface for simpler REST endpoints
  • WebUI + Authentication scheme
  • Hateoas test code

Release Versions

Module Version From Version To Released?
mutex v0.9.5 l v1.0.0 ✅
parser v0.9.5 l v1.0.0 ✅
itemstore v0.9.5 l v1.0.0 ✅
core v0.9.5 l `v1.0.0`` ✅
engine v0.9.5 l v1.0.0 ✅
api v0.9.5 l v1.0.0 ✅
tasktide v0.9.5 l v1.0.0 ✅

Only modules whose versions change need to be released. Unchanged modules should retain their existing versions.


Relevant Modules

List the modules affected by this release and briefly explain their involvement.

  • mutex — cleaner use of exceptions and logging
  • parser — print version
  • itemstore — introduced locked-connection lifecycle strategy
  • core — minor exception handling etc
  • engine — minor exception handling etc
  • api — minor exception handling etc
  • tasktide — embeds version+splash text, cleans TUI help test

Module Releases

mutex

Version: 1.0.0
Previous version: v0.9.5

Changes

  • Cleaner use of exceptions and logging

Breaking Changes

NA

Migration Notes

NA


parser

Version: v1.0.0 **Previous version:** v0.9.5`

Changes

  • Adds version scan

Breaking Changes

NA

Migration Notes

NA


itemstore

Version: v1.0.0
Previous version: v0.9.5

Changes

  • Introduces locked connection strategy (ItemStoreLockStrategy & ItemStoreConnectionStrategy).
  • Refines AbstractItemStore to orchestrate passing ItemStore operations through this managed locked-connection lifecycle.
  • Organizes ItemStoreSession through AbstractItemStore locked-connection lifecycle.
  • Uses dedicated ItemStoreOperation and ThrowableItemStoreOperation to note these methods.
  • Structural refactoring moves DbTarget and ItemStoreType to types,

Breaking Changes

  • Structural refactoring moves DbTarget and ItemStoreType to types.

Migration Notes

  • Minor and picked up by IDE

core

Version: v1.0.0
Previous version: v0.9.5

Changes

  • Cleaner use of exceptions and logging.
  • ItemStore map initialized through single locked-connection lifecycle to optimize configuration.

Breaking Changes

  • NA

Migration Notes

NA


engine

Version: v1.0.0
Previous version: v0.9.5

Changes

  • Cleaner use of exceptions and logging

Breaking Changes

  • NA

Migration Notes

NA


api

Version: v1.0.0
Previous version: v0.9.5

Changes

  • Cleaner use of exceptions and logging

Breaking Changes

  • NA

Migration Notes

NA


tasktide

Version: v1.0.0
Previous version: v0.9.5

Changes

  • Cleaner use of exceptions and logging.
  • Embeds TaskTide splash text into app.
  • Adds project version to manifest JAR through build.
  • Cleans the help text display.
  • Adds version argument.

Breaking Changes

  • NA

Migration Notes

NA


Compatibility / Dependencies

Document important version relationships between components.

Component Depends On Required Version

Compatibility Notes

NA


Breaking Changes

  • MetricData, and MetricProfile class field changed to metricType

Migration Notes

  • Not with this version, future versions past v1 will include a full announcement suite.

Publication

Pre-release

  • [ ✅ ] Clean build completed.
  • [ ✅ ] All tests pass.
  • [ ✅ ] Javadocs generated successfully.
  • [ ✅ ] No unexpected dependency resolution changes.
  • [ ✅ ] Published artifacts verified locally.

Module Verification

  • [ ✅ ] mutex.
  • [ ✅ ] parser.
  • [ ✅ ] itemstore.
  • [ ✅ ] core.
  • [ ✅ ] engine.
  • [ ✅ ] api.
  • [ ✅ ] tasktide.

Runtime / Integration Verification

  • [ ✅ ] CLI/application starts successfully.
  • [ ✅ ] Core workflows verified.
  • [ ✅ ] API verified.

Publication

Pre-release

  • [ ✅ ] Versions updated in gradle.properties.
  • [ ✅ ] Release notes completed.

Publish

  • [ ✅ ] Component artifacts published.
  • [ ✅ ] Aggregate tasktide artifact published.
  • [ ✅ ] OM dependencies verified.
  • [ ✅ ] Signatures verified.
  • [ NA ] This version is not published to Maven Central, because v1.0.0 is next week.
  • [ ✅ ] Published artifacts available from docker hub.

Post-release

  • [ ✅ ] Git tag pushed.
  • [ ✅ ] GitHub release created.
  • [ ✅ ] Documentation updated.
  • [ ✅ ] Next development versions/configuration prepared.

Release Notes

  • Accepts version bumps for Jakarta-NoSQL (v1.18), DaniloPianni Maven Publishing Lib.
  • Broad code clean on exception handling particuarly for the mutex lid. Which were useful at the time for developing algorithm, but maturity requires exception clarity.
  • Normalizes use of common mutex helper methods to utils, improving use of TimeUnit and appropriate interrupted exception.
  • Clears ex.printStackTrace()/System.out.println from production src/main branches, test is fine.
  • Refactors ItemStore packaging structure, and introduces Strategies to better organize responsibilities.
  • Separate ItemStore strategies each now own lock and connection, allowing the AbstractItemStore to simply orchestrate operations through a central locked-connection lifecycle. Greatly improved clarity of the package, and testability for future versions.
  • Normalizes concrete ItemStoreExceptions to ItemStoreChecked/Unchecked exceptions.
  • Cleans and organizes ItemStore directory through the AbstractItemStore construction, deprecating old method.
  • Makes the master/protoDB path fields accessible to children, incombination with clean directory use resolved infinite loop detected in GH-actions tests. As lock fails to create on non-existent thing.
  • SQLiteStore open/close connections define database file under master/protoDB path fields.
  • Organizes use of ItemStoreSession through AbstractItemStore locked-connection lifecycle for further exploration in v2. Which may introduce an intmediary abstract class between AIS and concrete stores, so that the concrete stores are solely a wrapper for reading/writing Items to their DB (which will likely bring a third concrete store for verification/refinement).
  • CoreLib ItemStoreRepository fetch store map uses new refactored, greatly improved ItemStore config and helped debug use of refactored ItemStore design released here for v1.
  • Compiles the splash text into terminal UI.
  • Adds version and client info into jar manifest configuration.
  • Cleans the TUI help message.
  • ItemStore now constructed with name and directory.

Added

  • ItemStoreLockStrategy.
  • ItemStoreConnectionStrategy.
  • Function ItemStoreOperation interface (checked & unchecked).
  • Splash class.
  • Manifest JAR configuration to tasktide/tasktide/gradle.build.

Breaking Changes

  • NA

Removed

  • NA

Deprecating

  • Deprecating old methods (mostly ItemStoreUtils) that do not use the locked-connection lifecycle.
  • Expansive ItemStore construction.