So my random Linux-related inspiration for the week has been to try out TaskJuggler.
My husband and I will be launching our older child into the world later this year, and there are a few convoluted tasks involved in making this happen. It’s doing my head in. So I went hunting for a Linux-based project management tool that I would find relatively clean and useful to work with.
TaskJuggler is an open source project management tool. I came across it in UbuntuPIT’s post “The 20 Best Project Management Tools for Linux Desktop” from February this year. So I’m hoping all its recommendations are up to date, though TaskJuggler itself doesn’t seem to have been updated since 2020.
TaskJuggler’s latest version doesn’t have a graphical user interface. Apparently version 2.x did, but the GUI hasn’t been ported across to 3.x. You can use a command shell, a plaintext editor (no fancy word processing software allowed) and a web browser. This might therefore only appeal to command-line nerds like me.
Installation
To install, I followed the documentation at https://taskjuggler.org. Basically one installs Ruby Gems (if not already done), then installs the Ruby Gems package TaskJuggler. If you like reading transcripts, here’s mine. Note that I didn’t install taskjuggler system-wide, just for my user account.
$ sudo dnf install rubygems
Last metadata expiration check: 1:09:23 ago on Fri 01 Apr 2022 14:39:29.
Dependencies resolved.
==============================================================================
Package Arch Version Repository Size
==============================================================================
Installing:
rubygems noarch 3.2.22-149.fc34 updates 247 k
Installing dependencies:
ruby x86_64 3.0.2-149.fc34 updates 41 k
ruby-libs x86_64 3.0.2-149.fc34 updates 3.2 M
rubygem-json x86_64 2.5.1-201.fc34 fedora 64 k
rubygem-psych x86_64 3.3.0-149.fc34 updates 51 k
rubypick noarch 1.1.1-14.fc34 fedora 9.9 k
Installing weak dependencies:
ruby-default-gems noarch 3.0.2-149.fc34 updates 32 k
rubygem-bigdecimal x86_64 3.0.0-149.fc34 updates 54 k
rubygem-bundler noarch 2.2.22-149.fc34 updates 367 k
rubygem-io-console x86_64 0.5.7-149.fc34 updates 25 k
rubygem-rdoc noarch 6.3.1-149.fc34 updates 400 k
Transaction Summary
==============================================================================
Install 11 Packages
Total size: 4.4 M
Total download size: 4.3 M
Installed size: 16 M
Is this ok [y/N]: y
Downloading Packages:
:
:
Installed:
ruby-3.0.2-149.fc34.x86_64
ruby-default-gems-3.0.2-149.fc34.noarch
ruby-libs-3.0.2-149.fc34.x86_64
rubygem-bigdecimal-3.0.0-149.fc34.x86_64
rubygem-bundler-2.2.22-149.fc34.noarch
rubygem-io-console-0.5.7-149.fc34.x86_64
rubygem-json-2.5.1-201.fc34.x86_64
rubygem-psych-3.3.0-149.fc34.x86_64
rubygem-rdoc-6.3.1-149.fc34.noarch
rubygems-3.2.22-149.fc34.noarch
rubypick-1.1.1-14.fc34.noarch
Complete!
$
$ gem install taskjuggler
Successfully installed taskjuggler-3.7.1
Parsing documentation for taskjuggler-3.7.1
Done installing documentation for taskjuggler after 3 seconds
1 gem installed
$ which tj3
~/bin/tj3
$ ruby -e "puts Gem::Specification.find_by_name('taskjuggler').gem_dir"
/home/<obscured>/.local/share/gem/ruby/gems/taskjuggler-3.7.1
$ tj3 --version
tj3 (TaskJuggler) 3.7.1
$ sudo find / -name taskjuggler
/home/<obscured>/.local/share/gem/ruby/gems/taskjuggler-3.7.1/lib/taskjuggler
$
Using it
TaskJuggler 3.x basically works like a compiler. The user sets up the project details in a source file and then passes them to the Task Juggler tj3 binary.
Taking TaskJuggler for a small test drive, I first created a test project using a plaintext editor. I used vi, but you could use anything – except a word processor.
$ cat test-project.tjp
### Test project
project test_project "My Test Project 2022" 2022-01-01 +12m {
timezone "Australia/Melbourne"
currency "AUD"
timeformat "%Y-%m-%d"
numberformat "-" "" "," "." 1
currencyformat "-" "" "," "." 0
}
### Define resources
resource parent1 "Parent1" {
email "blah@blahs.com"
}
resource parent2 "Parent2" {
email "blahmore@blahs.com"
}
### Tasks and subtasks
task uni_app "University application" {
}
task travel_oz "Travel to Oz" {
task accom_transport "Oz accommodation and transport" {
}
task flights "Flights to Oz" {
}
}
### Reporting and exports. Taken from https://taskjuggler.org example.
taskreport breakdown "ProjectBreakdown" {
formats html
caption "This is the project breakdown"
headline "Project Breakdown"
columns name, start, end, daily
# Don't hide any resource, meaning show them all.
hideresource 0
}
# Export the project as fully scheduled project. Taken from https://taskjuggler.org example.
export "FullProject" {
definitions *
taskattributes *
hideresource 0
}
$
The next step is to compile the source code file using TaskJuggler:
$ ~/bin/tj3 test-project.tjp
TaskJuggler v3.7.1 - A Project Management Software
Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020
by Chris Schlaeger <cs@taskjuggler.org>
This program is free software; you can redistribute it and/or modify it under
the terms of version 2 of the GNU General Public License as published by the
Free Software Foundation.
Reading file test-project.tjp [ Done ]
Preparing scenario Plan Scenario [ Done ]
Scheduling scenario Plan Scenario [ Done ]
Checking scenario Plan Scenario [ Done ]
Report ProjectBreakdown [ Done ]
Report FullProject [ Done ]
$
$ ls -la
total 52
drwxrwxr-x. 1 <obscured> <obscured> 186 Apr 1 17:47 .
drwxrwxr-x. 1 <obscured> <obscured> 62 Apr 1 17:41 ..
drwxrwxr-x. 1 <obscured> <obscured> 48 Apr 1 17:45 css
-rw-rw-r--. 1 <obscured> <obscured> 1515 Apr 1 17:47 FullProject.tjp
drwxrwxr-x. 1 <obscured> <obscured> 284 Apr 1 17:45 icons
-rw-rw-r--. 1 <obscured> <obscured> 17200 Apr 1 17:47 ProjectBreakdown.html
drwxrwxr-x. 1 <obscured> <obscured> 26 Apr 1 17:45 scripts
-rw-rw-r--. 1 <obscured> <obscured> 1102 Apr 1 17:47 test-project.tjp
$
Opening the file ProjectBreakdown.html in a browser shows this:

And that’s it.
The blurb from TaskJuggler’s home page says:
TaskJuggler is project management software for serious project managers. It covers the complete spectrum of project management tasks from the first idea to the completion of the project. It assists you during project scoping, resource assignment, cost and revenue planning, risk and communication management.
https://taskjuggler.org/index.html
It’s usefulness as a collaborative resource would be limited. There are far fancier and WYSIWYG tools around. But it has potential for someone like me who is looking for a reasonably simple text-based personal project management solution without all the overhead that a WYSIWYG solution brings.
Image credits TaskJuggler.org.
Geez…some “inspiration!?” 😉 Great pics (??) on the installation ‘n using ‘n compiling.
LikeLiked by 1 person
Thanks! 😊
LikeLike