Repository navigation
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 loggingparser— print versionitemstore— introduced locked-connection lifecycle strategycore— minor exception handling etcengine— minor exception handling etcapi— minor exception handling etctasktide— 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
tasktideartifact 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.