Releases: GothenburgBitFactory/taskchampion
v3.0.0
What's Changed
BREAKING CHANGES
General
- All
Replicamethods are now async. - All
StorageandStorageTxnmethods are now async. - Minimum Supported Rust Version (MSRV) is now 1.88.0
Storage
- The
Storagetrait now requiresSend. This makes the type usable in common async contexts. - The
StorageConfigtype has been removed. Storage instances are now to be created directly. This is necessary because theStoragetrait is no longer object-compatible, soReplicais generic over the storage type, and must be created with a value of a type that implementsStorage. Replicanow takes a type parameter S implementingStorage
Server
ServerConfig::Awshas two new fields, and the type ofregionhas 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
- @taliaferro made their first contribution in #582
- @travisby made their first contribution in #602
- @geofflittle made their first contribution in #600
- @martiege made their first contribution in #614
- @miguelpduarte made their first contribution in #625
- @smemsh made their first contribution in #659
Full Changelog: v2.0.3...v3.0.0
v2.0.3
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_operationsby @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
- @grasegger made their first contribution in #545
Full Changelog: v2.0.2...v2.0.3
v2.0.2
v2.0.1
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
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:
- Introduce an access mode for SQLite storage by @djmitche in #511
- Remove unnecessary public items by @djmitche in #512
- Use an Arc for DependencyMap by @djmitche in #514
- Add a Clone impl for Annotation by @djmitche in #517
- Derive Debug for WorkingSet by @djmitche in #520
- Update MSRV to 1.81.0 by @djmitche in #523
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
This patch version makes the AwsCredentials type public.
What's Changed
Full Changelog: v1.0.1...v1.0.2
v1.0.1
This is a patch release to make the AwsCredentials type public (unsuccessfully, it turns out).
What's Changed
- Bump aws-sdk-s3 from 1.64.0 to 1.65.0 by @dependabot in #504
- Bump google-cloud-storage from 0.15.0 to 0.23.0 by @dependabot in #505
- Make AwsCredentials type public by @djmitche in #506
Full Changelog: v1.0.0...v1.0.1
v1.0.0
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
StorageConfigenum has a new variant in this version and was notnon_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
Breaking Changes
- The
StorageTxntrait 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
operationstable than in previous versions. Downgrading to 0.8.0 may result in surprising behavior fromsyncas 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:
- Bump uuid from 1.10.0 to 1.11.0 by @dependabot in #471
- Use lib docstring as crates.io README by @djmitche in #470
- Bump tokio from 1.40.0 to 1.41.0 by @dependabot in #473
- Test that pending tasks arriving via sync are in working set by @djmitche in #475
- Update sync protocol docs by @djmitche in #476
Full Changelog: v0.8.0...v0.9.0
v0.8.0
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 abovebundled- activates bundling system libraries like sqlitetls-native-roots- use native (system) TLS roots, instead of those bundled with rustls, by
(indirectly) enabling therustlsfeaturerustls-tls-native-roots.
The MSRV is now rust-1.73.0.