Commit graph

193 commits

Author SHA1 Message Date
Tobias Predel
6c60a8db84
Move timegm implementation to libshared (#3875)
Move `timegm` implementation to libshared
2025-05-09 20:26:21 -04:00
Dustin J. Mitchell
1f6e7de569
Release 3.4.1 (#3818) 2025-03-14 10:20:52 +01:00
Dustin J. Mitchell
063325b052
Release 3.4.0 (#3811) 2025-03-12 17:58:49 -04:00
Dustin J. Mitchell
3bb71390a9
Ignore "target" in creating source_package (#3799)
Cargo creates this directory if run directly, but it shouldn't be in the
release tarball.
2025-03-03 17:43:20 +01:00
Karl
630585d7b4
Update git log in CMakeLists.txt to not include potential signatures (#3742) 2024-12-31 13:51:35 -05:00
Dustin J. Mitchell
1ee69ea214
Release 3.3.0 (#3729)
* Release 3.3.0

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-19 16:57:43 +01:00
Dustin J. Mitchell
7a092bea03
Release v3.2.0 (#3679) 2024-11-12 14:52:22 -05:00
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
Dustin J. Mitchell
5c6cc3e522
Release 3.1.0 (#3574) 2024-08-04 16:51:11 +00:00
Felix Schurk
85f52e3630
Update performance scripts (#3532)
* update performance script to work with out-of-source build
* update displayed messages and remove perf.rc file
* remove .gitignore in performance folder
2024-07-04 08:45:42 +02:00
Felix Schurk
236a5f0bf1
remove custom commands and custom scripts (#3468)
Fixes #3462.
2024-05-28 18:27:09 -04:00
Felix Schurk
82e0d53cdf
add ctest as test driver (#3446) 2024-05-10 01:20:54 +00:00
Dustin J. Mitchell
bc86a1e53f
Release 3.0.2 (#3394) 2024-04-23 00:18:38 +00:00
Dustin J. Mitchell
a9995808ec
Update cmake support for git submodules (#3383) 2024-04-21 08:55:38 -04:00
Dustin J. Mitchell
0627447a6a
Update for 3.0.1 (#3382)
update for 3.0.1
2024-04-20 23:18:57 +00:00
ryneeverett
0944c73716
Recommend LSP's in development docs (#3370)
* Recommend LSP's in development docs

Per conversation in #3338.

There are already a lot of documented compile options so I think we're
better off suggesting that everybody create a compile_commands.json
whether or not they're using an LSP because it doesn't cost much.

While I was at it it seemed reasonable to mention rust LSP too. Now that
rls is deprecated I'm not sure there is any competitor to rust-analyzer
worth mentioning.

* Export compile commands by default.

Thanks to @felixschurk for the idea and telling me how to do it.

It took me a minute to figure out that this places the
compile_commands.json in the build directory rather than the root of the
project. But clangd still finds it there and that's a better place for
it anyway.
2024-04-16 08:19:58 -04:00
Dustin J. Mitchell
c90eb8f71d
remove reference to NEWS (#3357) 2024-04-12 22:46:09 -04:00
Felix Schurk
8c2c629a4d
use CMake project settings (#3315)
This adds a description as well as the homepage to the CMake settings.
Further it would also now use the numbering cheme as supposed to in
CMake, this way other people could now pin a specific version if
taskwarrior is included in another project.
Documentation from CMake is https://cmake.org/cmake/help/latest/command/project.html
2024-03-30 10:33:49 -04:00
Dustin J. Mitchell
3e41fb604c
Prepare for 3.0.0 release (#3287) 2024-03-24 16:13:06 -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
Felix Schurk
8dd29e0a8a
Change to out-of source build, Update build instructions (#3271)
* update build instructions

Usage of "modern" CMake syntax and using specific out of source build.
Further add example on how to build in parallel, build a specific target
and how to change the compiler.

This closes #3236.
2024-02-25 12:27:52 -05:00
Dustin J. Mitchell
80047ad5e7
Disable Clang's return-type-c-linkage warning (#3227)
* Disable return-type-c-linkage warning on Clang.

This is emitted by the compiler when it can't tell if the incomplete
type being returned is a C++ type, which might not have a C-compatible
layout. In `taskchampion.h`, the types are not C++ types so this is not
an issue and the warning is unnecessary.

* Use an if instead

Fancy generator expressions appear to not work.

* Try some different CMake syntax
2024-01-20 16:41:38 -05: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
dbeee0640a Add a hint to 'make test' see test problems 2022-12-18 12:01:12 -05: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
Tomas Babej
93394e7054 meta: Update CMake version reference for 2.6.2 2022-03-16 01:52:16 -04:00
Tomas Babej
a696b6b155
cmake: Bump project version to 2.6.1 2021-10-19 00:23:40 -04:00
Tomas Babej
0ad1b681de
CMakeLists: Use presence of src, not .git dir to determine libshared presence
This way the mechanism to determine the presence of libshared works for
tarball builds as well.
2021-10-02 17:57:38 -04:00
Tomas Babej
35794a57b5
CMakeLists: Ensure cmake.h.in is not excluded in the source build 2021-10-02 17:45:28 -04:00
Tomas Babej
7d5c82e3e7 meta: Expand review build target to allow specifying PR reference for libshared
This allows us to conveniently review PRs for libshared using

    make LIBPR=62 review

and taskwarrior PRs that require libshared PRs as well using

    make PR=2189 LIBPR=63 review
2021-09-04 12:13:25 -04:00
begasus
cd06d937a5 Search for libnetwork on Haiku 2021-05-25 18:26:04 -04:00
Tomas Babej
d9c4621e33
cmake: Limit containers to 1GB of memory
This helps debugging issues when task ends up OOMKilled, without having
to exhaust memory of the host machine.
2021-01-16 18:49:12 -05:00
Tomas Babej
71f477e013
cmake: Make builds of make review/reproduce quiet
Reduce noise on the output. The build process still outputs the build
log in case it fails.
2021-01-16 12:43:23 -05:00
Tomas Babej
c72e1ea379
cmake: Do not send local context when for make review/reproduce
The Dockerfiles for make review and make reproduce targets do not use
any information from the local taskwarrior git repository. Use
STDIN-based syntax to ensure local context is not sent to the daemon.

See: https://docs.docker.com/engine/reference/commandline/build/#build-with--
2021-01-16 12:40:56 -05:00
Tomas Babej
94a06ed38a
cmake: Add a custom target for reproducing issue reports
Use by issuing command "make RELEASE=v2.5.2 reproduce" where v2.5.2 can
be substituted by other (tagged) release.
2021-01-16 12:29:35 -05:00
Tomas Babej
3b978ce265
cmake: Update list of ignored source files
Update after removal of the Travis CI.
2020-12-28 19:35:50 -05:00
Tomas Babej
b64e754000
cmake: Bring back commit.h.in and cmake.h.in 2020-12-10 22:14:04 -05:00
Tomas Babej
8013654577
cmake: Add additional ignored files for make_package
Closes #2369.

- Thanks to Heiko Becker.
2020-12-10 21:52:56 -05:00
Tomas Babej
a186d9f73f
CMake: Also ignore .travis for the tarball build 2020-12-05 18:24:31 -05:00
Tomas Babej
7402f00981
CMake: Exclude .github directory 2020-12-05 18:24:30 -05:00
Tomas Babej
ab12e3fafd
CMake: Add custom review target
Use with Github PR ids as follows:
make PR=2358 review
2020-12-04 00:20:30 -05:00
Paul Beckingham
4a929197ae Build: C++14 support added 2018-02-16 22:04:29 -05:00
Paul Beckingham
eca40844ad Docs: Updated URLs 2018-02-08 22:08:59 -05:00
Mark Scannell
7af6db4c17 Portability: Updated to make main re-entrant()
- New INSTALL instructions to emscripten, and AUTHORS for contribution.
2018-01-31 19:45:07 -05:00
Paul Beckingham
6374246d02 I18N: Removed language build settings 2018-01-21 23:36:00 -05:00
Paul Beckingham
58ec6735dd TI-91: Timewarrior does not compile on DragonFly
- Thanks to Michael Neumann.
2017-12-10 00:20:50 -05:00
Federico Hernandez
de4cf7edda Handling of git submodule in cmake 2017-02-12 22:18:26 +01:00
Antonio Huete Jimenez
7c0375e506 task: Fix build in SunOS-like environments.
Tested in:
 - OpenIndiana 2816291
 - OmniOS bed3013
 - SmartOS 20161129T003638Z
2017-01-15 20:02:31 -05:00
Paul Beckingham
7232d79e67 cmake: Use the CXXSniffer 2016-04-09 16:18:07 -04:00
Federico Hernandez
ef5551f3ec Bumped version number to 2.6.0 2016-02-24 23:49:51 +01:00