From 063325b0525ed523a32fd0b670f0de0aa65d40ac Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Wed, 12 Mar 2025 17:58:49 -0400 Subject: [PATCH] Release 3.4.0 (#3811) --- CMakeLists.txt | 2 +- ChangeLog | 27 +++++++++++++++++++++++---- doc/man/taskrc.5.in | 3 +++ src/commands/CmdNews.cpp | 16 ++++++++++++++++ src/commands/CmdNews.h | 1 + 5 files changed, 44 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e34703f8..4509430b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ enable_testing() set (CMAKE_EXPORT_COMPILE_COMMANDS ON) project (task - VERSION 3.3.0 + VERSION 3.4.0 DESCRIPTION "Taskwarrior - a command-line TODO list manager" HOMEPAGE_URL https://taskwarrior.org/) diff --git a/ChangeLog b/ChangeLog index 7e7540fc9..13c037a7b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,32 @@ ------ current release --------------------------- +3.4.0 - + +- Where possible, the task DB is now opened in read-only mode, which improves + performance. This is the case for reports (task lists) only when the `gc` + config is false. +- An updated version of corrosion fixes build errors trying to find the Rust + toolchain. + +Thanks to the following people for contributions to this release: + + - Dustin J. Mitchell + - Kalle Kietäväinen + - Karl + - Matthew + - Tejada-Omar + - Tobias Predel + - Yong Li + - jrmarino + +------ old releases ------------------------------ + +3.3.0 - + - Sync now supports AWS S3 as a backend. - A new `task import-v2` command allows importing Taskwarrior-2.x data files directly. -3.3.0 - - Thanks to the following people for contributions to this release: - Chongyun Lee @@ -18,8 +39,6 @@ Thanks to the following people for contributions to this release: - Scott Mcdermott - Thomas Lauf ------- old releases ------------------------------ - 3.2.0 - - Support for the journal in `task info` has been restored (#3671) and the diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 7ad152ab6..6f60a6439 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -212,6 +212,9 @@ This is a path to the hook scripts directory. By default it is ~/.task/hooks. .TP .B gc=1 Can be used to temporarily suspend rebuilding, so that task IDs don't change. +Rebuilding requires read/write access to the database, so disabling `gc` may +result in better performance. + Note that this should be used in the form of a command line override (task rc.gc=0 ...), and not permanently used in the .taskrc file, as this significantly affects performance in the long term. diff --git a/src/commands/CmdNews.cpp b/src/commands/CmdNews.cpp index e94ea07f9..cce5f079c 100644 --- a/src/commands/CmdNews.cpp +++ b/src/commands/CmdNews.cpp @@ -160,6 +160,7 @@ std::vector NewsItem::all() { version3_1_0(items); version3_2_0(items); version3_3_0(items); + version3_4_0(items); return items; } @@ -530,6 +531,21 @@ void NewsItem::version3_3_0(std::vector& items) { items.push_back(info); } +void NewsItem::version3_4_0(std::vector& items) { + Version version("3.4.0"); + NewsItem info{version, + /*title=*/"Read-Only Access", + /*bg_title=*/"", + /*background=*/"", + /*punchline=*/"Some Taskwarrior commands operate faster in read-only mode", + /*update=*/ + "Some commands do not need to write to the DB, so can open it in read-only\n" + "mode and thus more quickly. This does not include reports (task lists),\n" + "unless the `gc` config is false. Use `rc.gc=0` in command-lines to allow\n" + "read-only access.\n\n"}; + items.push_back(info); +} + //////////////////////////////////////////////////////////////////////////////// int CmdNews::execute(std::string& output) { auto words = Context::getContext().cli2.getWords(); diff --git a/src/commands/CmdNews.h b/src/commands/CmdNews.h index 6b70c0132..294c0f862 100644 --- a/src/commands/CmdNews.h +++ b/src/commands/CmdNews.h @@ -53,6 +53,7 @@ class NewsItem { static void version3_1_0(std::vector&); static void version3_2_0(std::vector&); static void version3_3_0(std::vector&); + static void version3_4_0(std::vector&); private: NewsItem(Version, const std::string&, const std::string& = "", const std::string& = "",