Commit Graph

6140 Commits

Author SHA1 Message Date
Dustin J. Mitchell
4d9bb20bdd Update task news to support 3.0.0 (#3342)
* Introduce Version, use it to check current version in custom reports
* Support multiple versions in 'task news'
2024-04-15 22:04:16 -04:00
Dustin J. Mitchell
9040a7eb79 Throw std::strings on sync server errors (#3362) 2024-04-15 21:49:17 -04:00
Dustin J. Mitchell
0a491f36ad Store all modified tasks for use by on-exit hook (#3352)
The on-exit hook gets all modified tasks as input, but this was omitted
in the previous release. This adds a test for the desired behavior, and
updates TDB2 to correctly store the required information.
2024-04-15 21:14:25 -04:00
Dustin J. Mitchell
a6b721853b Remove 'sync' from default verbose flags (#3319)
Do not give sync feedback when not doing remote sync
2024-04-08 01:02:07 +00:00
ryneeverett
fd306712b8 Install corrosion as submodule. (#3348)
This will enable nixpkgs -- and any other distribution that builds in a
network sandbox and/or wants to use their own corrosion package rather
than building another one -- to do so without patching taskwarrior.

Since we're already using submodules for libshared I don't think this
should make the build process any more complicated for anyone else.

See
https://github.com/NixOS/nixpkgs/issues/300679#issuecomment-2041252688
for context.
2024-04-07 12:10:54 -04:00
Felix Schurk
b5aa7c6ae2 change order of hook invocation and setting task id (#3339)
this prevents that the task id is always returned as zero after a hook
is run on it
closes #3312
2024-04-05 19:45:55 -04:00
ryneeverett
587f8910ef sync: Point to manpage if unconfigured
See #3340.
2024-04-05 10:35:15 -04:00
Dustin J. Mitchell
8a0a98d3ef Issue a warning if .data files remain (#3321)
This will help users realize that they have updated to an incompatible
version and must export and import their tasks.
2024-03-31 18:55:30 -04:00
Dustin J. Mitchell
18a8bd2997 Use corrosion instead of CMakeRust (#3273)
* Use corrosion instead of CMakeRust
* use OpenSUSE tumbleweed (latest) to get newer CMake
2024-03-02 16:21:34 -05:00
ryneeverett
34c0e67469 show undo diff (#3213)
Exposes undo operations via the C API, and uses those to show a (new, differently formatted) diff before committing the undo.
2024-02-09 22:11:14 -05:00
Akash Shanmugaraj
aeb6acf640 added BYOS (Bring Your Own SERVICE_ACCOUNT) for GCS authentication (#3262) 2024-01-27 07:57:12 -05:00
Dustin J. Mitchell
83bbe4ec37 Fix invalid imports in [{..}] form (#3241)
* Fix invalid imports in `[{..}]` form

Before this change, if an import of data that takes the form of a JSON
array of JSON objects results in an error, the import would be re-tried
assuming that each line of the file is a JSON object (the old format).
However, no check was made that the value actually was an object before
casting it to `json::object`, resulting in a segfault.

This adds the check, and handles the failure with a useful error message
(from the first attempt to parse the file).
2024-01-25 08:01:20 -05:00
Dustin J. Mitchell
5b5a7a37c0 Use the correct formatting for tag_ properties (#3261)
This resolves a discrepancy between Taskwarrior and Taskchampion as to
how tags should be represented.
2024-01-24 18:11:51 -05:00
Dustin J. Mitchell
daca37806e Rename sync.server.encryption_secret to sync.encryption_secret. (#3249)
* Rename `sync.server.encryption_secret` to `sync.encryption_secret`.

* move pwgen
2024-01-21 19:11:24 -05:00
Dustin J. Mitchell
9566c929e2 Add support for cloud sync, specifically GCP (#3223)
* Add support for cloud sync, specifically GCP

This adds generic support for sync to cloud services, with specific
spuport for GCP. Adding others -- so long as they support a
compare-and-set operation -- should be comparatively straightforward.

The cloud support includes cleanup of unnecessary data, and should keep
total space usage roughly proportional to the number of tasks.

Co-authored-by: ryneeverett <ryneeverett@gmail.com>
2024-01-21 12:36:37 -05:00
Isaac Wyatt
8f327db5b9 Add cargo xtask msrv (#3189)
* added cargo xtask msrv X.Y placeholder function

* add placeholder function cargo xtask msrv (X.Y)

* implement CLI arg vec, graceful errors, formatting

* impl. xtask msrv insert,upsert,graceful failures

* misc fixes - still need to update write method

* interim commit before removing comments

* updated per @djmitche suggestions. 2 fixes todo

* impl unwrap error checks, file truncating, etc

* removed test paths

* updated toml with specific regex version

* updated cargo toml and lock for regex version

* updated cargo toml and lock for regex version

* fixed clippy complaints

* impl replace file content, not comments

* accept djmitche suggestion to change comment documentation

Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>

* refactored, need to fix Cow return

* removed debug prints, unncessary if, etc.

* fix non-idiomatic rust, arg.len error handling

* add #MSRV to config files and test

---------

Co-authored-by: iwyatt <sayhello+git@isaacwyatt.com>
Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>
2023-11-11 17:54:38 -05:00
dependabot[bot]
9fc40c5949 Bump ureq from 2.7.0 to 2.8.0 (#3180)
* Bump ureq from 2.7.0 to 2.8.0

Bumps [ureq](https://github.com/algesten/ureq) from 2.7.0 to 2.8.0.
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md)
- [Commits](https://github.com/algesten/ureq/compare/2.7.0...2.8.0)

---
updated-dependencies:
- dependency-name: ureq
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update rustls too

* more Cargo.lock updates

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2023-10-07 17:23:47 -04:00
Bernhard M. Wiedemann
603bf075f1 Fix issues with year 2038 (#3052)
* Fix annotations in year 2038

Fixes #3050

* Ensure 32-bit systems work better after 2038

Without this patch, their 32-bit signed long int could overflow.

This patch was done while working on reproducible builds for openSUSE.
2023-08-30 22:08:31 -04:00
Dathan Bennett
a7bb0c9ba0 Link executables using system frameworks on Darwin (#3075)
* Link test executables using system frameworks on Darwin

On an M1 MBP, running `cmake . && make test` yields the error

```
[ 69%] Linking CXX executable tc.t
Undefined symbols for architecture arm64:
  "_CFRelease", referenced from:
      _$LT$iana_time_zone..platform..system_time_zone..SystemTimeZone$u20$as$u20$core..ops..drop..Drop$GT$::drop::hcd3964de9573de30 in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.15.rcgu.o)
  "_CFStringGetBytes", referenced from:
      iana_time_zone::platform::string_ref::StringRef$LT$T$GT$::to_utf8::h39971b546d587152 in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.13.rcgu.o)
  "_CFStringGetCStringPtr", referenced from:
      iana_time_zone::platform::string_ref::StringRef$LT$T$GT$::as_utf8::h8bb5c2c0d091ded1 in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.13.rcgu.o)
  "_CFStringGetLength", referenced from:
      iana_time_zone::platform::string_ref::StringRef$LT$T$GT$::to_utf8::h39971b546d587152 in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.13.rcgu.o)
  "_CFTimeZoneCopySystem", referenced from:
      iana_time_zone::platform::system_time_zone::SystemTimeZone::new::hc42d30609914d79d in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.15.rcgu.o)
  "_CFTimeZoneGetName", referenced from:
      iana_time_zone::platform::system_time_zone::SystemTimeZone::name::h44947ee6deb3339a in libtc_rust.a(iana_time_zone-0e2714c6ff24f5bb.iana_time_zone.4cacef0c-cgu.15.rcgu.o)
  "_SecRandomCopyBytes", referenced from:
      ring::rand::darwin::fill::h0ad94d66d4e1a222 in libtc_rust.a(ring-e5f87a2e334d4c6a.ring.a21bac31-cgu.4.rcgu.o)
  "_kSecRandomDefault", referenced from:
      ring::rand::darwin::fill::h0ad94d66d4e1a222 in libtc_rust.a(ring-e5f87a2e334d4c6a.ring.a21bac31-cgu.4.rcgu.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [test/tc.t] Error 1
make[2]: *** [test/CMakeFiles/tc.t.dir/all] Error 2
make[1]: *** [test/CMakeFiles/test.dir/rule] Error 2
```

This change resolves the error by updating the targets in
test/CMakeLists.txt to link against the CoreFoundation and Security
frameworks when building under Mac OS.

* Link executables against CoreFoundation and Security frameworks on Mac OS

* Rename test_osx.sh to test_macos.sh

---------

Co-authored-by: Dathan Bennett <dathanb@netflix.com>
2023-07-20 17:23:12 -04:00
Dustin J. Mitchell
7f68441916 Change "client key" to "client id" (#3130)
In #3118 @ryneeverett mentioned that "key" suggests that this is a
secret, when in truth it's just a user identifier. So "ID" is a better
word for it than "key".
2023-07-11 22:13:53 -04:00
Dustin J. Mitchell
31105c2ba3 Sync against taskchampion-sync-server (#3118)
This removes use of gnutls and the TLS implementation, which is no
longer needed (task synchronization is handled via Taskchampion, which
uses `reqwest`, which handles TLS via other Rust dependencies). This
incidentally removes the following config options:
 * `debug.tls`
 * `taskd.ca`
 * `taskd.certificate`
 * `taskd.ciphers`
 * `taskd.credentials`
 * `taskd.key`
 * `taskd.server`
 * `taskd.trust`
2023-07-08 10:27:33 -04:00
Dustin J. Mitchell
771977aa69 Restore check for missing config 2023-07-04 14:08:51 -04:00
Dustin J. Mitchell
75e10676ce Use ffizz_header to generate taskchampion.h 2023-06-19 13:36:17 -04:00
Dustin J. Mitchell
a69b0c8032 Remove properties when set to an empty string
Fixes #3109.
2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
6cd5bf1237 Update "modified" on modification 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
a1b64a05ba add more information to 'task purge' footnote 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
3b4113c61a Update comments for TDB2::modify 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
18d60719e4 update comment for TDB2::get_changes 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
9df4c8156e remove TDB::commit 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
0882a08d18 Remove unnecessary TDB2::{modify,add} argument 2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
5bb9857984 Use Taskchampion to store Taskwarrior data
This replaces the TF2 task files with a TaskChampion replica.
2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
4b814bc602 [BREAKING] remove diff display from 'task undo'
TaskChampion does not make the necessary information available to
accomplish this, but see #2928.
2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
87467f72c7 [BREAKING] remove 'task purge' support
TaskChampion removes deleted tasks automatically when they expire, so
this subcommand is no longer required.
2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
d47c70579f [BREAKING] Disable the 'sync' command
This will require support from TaskChampion.
2023-06-11 17:37:03 -04:00
Dustin J. Mitchell
ddd367232e [BREAKING] Remove journal.info support
This support will require access to all of the operations ever performed
on a task, which is not currently exposed by TaskChampion (but see #2928)
2023-04-16 19:21:14 -04:00
Dathan Bennett
33366e2f05 Ignore the aarch64-apple-darwin directory
This directory is generated instead of the x86_64-unknown-linux-gnu
directory when building on an ARM64/AArch64 Mac, so this change adds
that directory to the gitignore config.
2023-04-09 15:29:29 -04:00
dependabot[bot]
84fb2f0d2f Bump bumpalo from 3.9.1 to 3.12.0 in /src/tc/rust
Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.9.1 to 3.12.0.
- [Release notes](https://github.com/fitzgen/bumpalo/releases)
- [Changelog](https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fitzgen/bumpalo/compare/3.9.1...3.12.0)

---
updated-dependencies:
- dependency-name: bumpalo
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-22 21:27:07 -05:00
DBV
627dc79a7e Update CmdNews.cpp
typo
2023-01-11 00:09:28 -05:00
Dustin J. Mitchell
88333ac785 Expose is_* methods on tasks. 2022-12-21 16:36:23 -05:00
Dustin J. Mitchell
9add31104b Add a Recurring status to TaskChampion 2022-12-18 14:56:00 -05:00
Dustin J. Mitchell
015e8eac25 pass create_if_missing in Replica constructor 2022-12-18 13:01:32 -05:00
Dustin J. Mitchell
6981aaccf2 Add a <vector> include in Replica.h
Replica.h refers to std::vector, so this header file must be included.
2022-12-18 12:58:38 -05:00
John Nguyen
591d6ccffb Bump libshared submodule 2022-12-18 12:33:36 -05:00
Dustin J. Mitchell
a93a3aa4f9 Update Cargo.lock (see #2994) 2022-11-12 17:49:42 -05:00
Dustin J. Mitchell
f5e976ae73 remove leftover src/taskchampion submodule 2022-07-29 21:41:41 -04:00
Dustin J. Mitchell
12ecfa2b1e rename rust/ to taskchampion/ 2022-07-29 21:41:41 -04:00
Dustin J. Mitchell
8c30400af3 Add a C++ wrapper around TC FFI
This uses CMake to build a simple Rust library (in `src/tc/rust`) that
just re-exports everything from the `taskchampion-lib` crate.

The C++ wrappers then wrap this into C++ objects with proper lifecycle
maintenance, in the `tc` namespace.

The C++ wrappers are incomplete, and missing methods are tagged with
"TODO".  These will be added as needed.
2022-07-29 21:41:41 -04:00
Dustin J. Mitchell
35c8ce2ccb Remove references to TDB2::read_only
A TC replica is always read-write.
2022-07-24 14:18:21 -04:00
Dustin J. Mitchell
f452100588 Remove references to TDB2::data_size
This value will is not relevant for TaskChampion.
2022-07-24 14:18:21 -04:00
Dustin J. Mitchell
e3ef6c504a remove TBD2::clear, only used in tests 2022-07-24 14:18:21 -04:00