Skip to content

Releases: GothenburgBitFactory/taskchampion

v3.0.0

03 Jan 18:42
d751a7f

Choose a tag to compare

What's Changed

BREAKING CHANGES

General

  • All Replica methods are now async.
  • All Storage and StorageTxn methods are now async.
  • Minimum Supported Rust Version (MSRV) is now 1.88.0

Storage

  • The Storage trait now requires Send. This makes the type usable in common async contexts.
  • The StorageConfig type has been removed. Storage instances are now to be created directly. This is necessary because the Storage trait is no longer object-compatible, so Replica is generic over the storage type, and must be created with a value of a type that implements Storage.
  • Replica now takes a type parameter S implementing Storage

Server

  • ServerConfig::Aws has two new fields, and the type of region has changed. These changes allow using AWS storage with non-AWS implementations of S3 such as Minio and Ceph. The new fields can be omitted for users of the "real" S3.
  • The AWS implementation no longer uses IMDS (instance metadata) to fetch credentials.

Non-Breaking Changes

  • WASM support - TaskChampion can now be built for WASM, and features an IndexedDB storage implementation and support for the server-sync protocol via the Fetch API.
  • Performance generating snapshots in debug builds has been improved dramatically (#593)
  • server-aws, server-gcp, and server-sync all use the same HTTP backend, unifying behavior and moderately reducing binary size (this necessitated dropping IMDS support, as mentioned above)
  • The set of allowed tags is now expanded to include non-alphanumeric characters (#659)

New Contributors

Full Changelog: v2.0.3...v3.0.0

v2.0.3

25 Feb 13:08
e3104c9

Choose a tag to compare

What's Changed

The "namespaced" UDAs originally developed when TaskChampion was not a part of Taskwarrior have been deprecated in favor of Taskwarrior-style UDAs:

  • Deprecated namespaced UDAs; promote legacy UDAs to be default (#540) by @grasegger in #545

Performance of working-set maintenance and operation application has been improved:

  • Improve performance of taskdb::apply_operations by @djmitche in #533
  • Make inmemory and on-disk storage 'set_working_set_item' match by @djmitche in #556
  • Modify the working set in-place rather than clearing and rewriting by @djmitche in #557

Documentation has been updated and improved:

  • Reference taskchampion-py in docs by @djmitche in #531
  • Include examples of operations handling in docs by @djmitche in #542
  • Update storage docs to match storage of sync'd operations by @djmitche in #559

And as always, @dependabot has been hard at work keeping dependencies up to date.

New Contributors

Full Changelog: v2.0.2...v2.0.3

v2.0.2

06 Jan 18:05
5a33e7d

Choose a tag to compare

What's Changed

v2.0.1 contained a bug which caused expiration to affect tasks regardless of their status. This version fixes the functionality to apply only to deleted tasks, as expected, by @djmitche in #528

Full Changelog: v2.0.1...v2.0.2

v2.0.1

06 Jan 02:29
7c9cfe7

Choose a tag to compare

What's Changed

This is a patch release to 2.0.0 to make the storage::AccessMode type public, without which it was impossible to create on-disk replicas.

Full Changelog: v2.0.0...v2.0.1

v2.0.0

04 Jan 20:25
1c3f161

Choose a tag to compare

What's Changed

This release aimed to bundle a number of semver-breaking changes into a single release. Many were inspired by work on taskchampion-py. Among these are:

Notable non-breaking improvements:

  • Refactor Expire Tasks by @aricursion in #510

New Contributors

  • @aricursion made their first contribution in #510

Full Changelog: v1.0.2...v2.0.0

v1.0.2

15 Dec 13:54
bc78e82

Choose a tag to compare

This patch version makes the AwsCredentials type public.

What's Changed

Full Changelog: v1.0.1...v1.0.2

v1.0.1

15 Dec 13:45
87cef39

Choose a tag to compare

This is a patch release to make the AwsCredentials type public (unsuccessfully, it turns out).

What's Changed

Full Changelog: v1.0.0...v1.0.1

v1.0.0

10 Dec 01:41
f584e62

Choose a tag to compare

What's Changed

This version adds an AWS sync backend to complement the existing GCP backend. The new backend functions almost identically to the GCP backend.

The change from 0.9.x to 1.0.x merely signifies that the package is mature; semver specifies that 0.x is for initial development.

In terms of compatibility

  • The new MSRV is 1.78.0.
  • The StorageConfig enum has a new variant in this version and was not non_exhaustive, a semver-breaking change unlikely to affect any users of the crate.

Other changes:

  • Record the DB version in the DB itself. by @djmitche in #485
  • Give better context for error when storage dir can't be created by @djmitche in #486
  • Use a common set of tests for cloud services by @djmitche in #496
  • Use strings for cloud service object names by @djmitche in #497
  • Move the main crate to the top level of the repo by @djmitche in #498

New Contributors

Full Changelog: v0.9.0...v1.0.0

v0.9.0

31 Oct 12:43
9e5097e

Choose a tag to compare

Breaking Changes

  • The StorageTxn trait has added and changed some methods. Users implementing this trait should examine the changes and update their implementations. Users who do not implement this trait will experience no breakage.
  • The database schema is updated in 0.9.0, and 0.9.0 now keeps more rows in the operations table than in previous versions. Downgrading to 0.8.0 may result in surprising behavior from sync as those operations are treated as new and sent to the server.

What's Changed

Expose operations, including "historical" operations by @djmitche in #474. This add Replica::get_task_operations to fetch the operations performed on a task, for purposes of display to users. For example, this will be used to provide the data for task info in Taskwarrior.

Other changes:

Full Changelog: v0.8.0...v0.9.0

v0.8.0

13 Oct 23:03
ea487f8

Choose a tag to compare

With this version, the new Replica::pending_tasks method returns all pending tasks efficiently, avoiding the need to individually fetch each task in the working set.

This version introduces a few new Cargo features:

  • sync - enables all of the sync features above
  • bundled - activates bundling system libraries like sqlite
  • tls-native-roots - use native (system) TLS roots, instead of those bundled with rustls, by
    (indirectly) enabling the rustls feature rustls-tls-native-roots.

The MSRV is now rust-1.73.0.