taskwarrior/doc/devel/contrib/development.md
Dustin J. Mitchell 971b229a4b
Consolidate in-repo documentation (#3143)
* move doc/misc to top level, add READMEs

* Move docs -> doc/devel

This also consolidates the _three_ documents describing (differently)
how to build Taskwarrior into a signle document.
2023-08-09 21:30:01 -04:00

1.7 KiB

Developing Taskwarrior

Satisfy the Requirements:

  • CMake 3.0 or later
  • gcc 7.0 or later, clang 6.0 or later, or a compiler with full C++17 support
  • libuuid (if not on macOS)
  • python 3 (optional, for running the test suite)
  • Rust 1.64.0 or higher (hint: use https://rustup.rs/ instead of using your system's package manager)

Obtain and Build Code:

    $ git clone --recursive https://github.com/GothenburgBitFactory/taskwarrior taskwarrior.git
    $ cd taskwarrior.git
    $ git checkout develop               # Latest dev branch
    $ git submodule init                 # This is now done by cmake as a test
    $ git submodule update               # Update the libhsared.git submodule
    $ cmake -DCMAKE_BUILD_TYPE=debug .   # debug or release. Default: neither
    $ make VERBOSE=1 -j4                 # Shows details, builds using 4 jobs
                                         # Alternately 'export MAKEFLAGS=-j 4'

This will build several executables, but the one you want is probably src/task. When you make changes, just run the last line again.

Run the Test Suite:

First switch to the test directory:

    $ cd test

Then you can run all tests, showing details, with

    $ make VERBOSE=1

Alternately, run the tests with the details hidden in all.log:

    $ ./run_all

Either way, you can get a summary of any test failures with:

    $ ./problems

Note that any development should be performed using a git clone, and the current development branch. The source tarballs do not reflect HEAD, and do not contain the test suite. Follow the GitHub flow for creating a pull request.