Dustin J. Mitchell 4ff63a7960 Use TaskChampion 0.7.0, now via cxx instead of hand-rolled FFI (#3588)
TC 0.7.0 introduces a new `TaskData` type that maps to Taskwarrior's
`Task` type more cleanly. It also introduces the idea of gathering lists
of operations and "committing" them to a replica.

A consequence of this change is that TaskChampion no longer
automatically maintains dependency information, so Taskwarrior must do
so, with its `TDB2::dependency_sync` method. This method does a very
similar thing to what TaskChampion had been doing, so this is a shift of
responsibility but not a major performance difference.

Cxx is .. not great. It is missing a lot of useful things that make a
general-purpose bridge impractical:

 - no support for trait objects
 - no support for `Option<T>` (https://github.com/dtolnay/cxx/issues/87)
 - no support for `Vec<Box<..>>`

As a result, some creativity is required in writing the bridge, for
example returning a `Vec<OptionTaskData>` from `all_task_data` to allow
individual `TaskData` values to be "taken" from the vector.

That said, Cxx is the current state-of-the-art, and does a good job of
ensuring memory safety, at the cost of some slightly awkward APIs.

Subsequent work can remove the "TDB2" layer and allow commands and other
parts of Taskwarrior to interface directly with the `Replica`.
2024-08-11 02:06:00 +00:00
2024-07-29 22:33:16 +02:00
2021-08-21 10:09:59 -04:00
2024-08-04 16:51:11 +00:00
2013-04-07 23:50:51 -04:00
2021-09-05 12:02:07 -04:00
2018-11-21 12:14:15 -05:00


GitHub Actions build status Coverage Status Release Release date GitHub Sponsors

Taskwarrior

OS-X downloads Github downloads Linux downloads

Taskwarrior is a command line task list management utility with a multitude of features, developed as a portable open source project with an active and quite vast ecosystem of tools, hooks and extensions.

Install

Arch Debian Fedora Homebrew Ubuntu

Taskwarrior is packaged on a wide range of Linux/Unix systems, Mac OS and Windows. Check out the latest available packages in repositories of your OS distribution of choice on Repology.

Alternatively, you can build Taskwarrior from source.

Documentation

The online documentation, downloads, news and more are available on our website, taskwarrior.org.

Community

Discord Github discussions Reddit

Taskwarrior has a lively community on many places on the internet.

Best place to ask questions is our discussions forum on Github. For other support options, take a look at taskwarrior.org/support

For code contributions, please use pull requests. See Contributing to Taskwarrior for more details.

Contributing

Contributors Milestone progress Good first issus

Your contributions are especially welcome. Whether it comes in the form of code patches, ideas, discussion, bug reports, encouragement or criticism, your input is needed. See further development documentation in doc/devel.

Sponsoring

GitHub Sponsors

Taskwarrior is a result of work of mostly small group of volunteers, and has been in development since 2006.

If you are a happy Taskwarrior user, please consider sponsoring us through Github Sponsors.

Every sponsorship matters, as it directly increases the number of hours core developers can contribute to the project and makes the project more sustainable.

License

Taskwarrior is released under the MIT license. For details check the LICENSE file.

Description
No description provided
Readme MIT 40 MiB
2.6-dev Latest
2026-01-28 20:05:37 +01:00
Languages
C++ 62.8%
Python 33.3%
Shell 2.2%
CMake 0.8%
Vim Script 0.5%
Other 0.4%