Skip to main content
https://img.shields.io/hexpm/l/plug.svg

JIRA to TaskJuggler Convertor

Tool for converting a set of JIRA tasks to TaskJuggler (TJ3) syntax, with support for hierarchical task structures including Epics, Stories, and Sub-tasks.

Goal

When using JIRA to track your project, and tasks/issues are estimated using the time-tracking plugin, this python module can convert the JIRA tasks to a gantt chart using the TaskJuggler tool.

The tool supports both flat task lists and hierarchical task structures. With the hierarchical mode enabled, Epics become parent tasks containing their child Stories and Sub-tasks, creating properly nested TaskJuggler task structures with automatic effort rollup from children to parents.

Installation

Installation from PyPI:

pip install mlx.jira-juggler

Usage

See help from python module:

jira-juggler -h

By default, the following endpoint for the JIRA API is used: https://melexis.atlassian.net. The script will ask you to input your email address (or username) and API token (or password). These three variables can be configured by setting them in a .env file. This .env file shall be located in the directory where pip has installed the package. You can find an example configuration in .env.example. JIRA Cloud requires the combination of email address and API token, while JIRA Server might accept a username and password.

Basic Usage:

jira-juggler -q "project = MYPROJECT" -o output.tjp

Hierarchical Epic Support:

To enable hierarchical task structures with Epics, Stories, and Sub-tasks, use the -E or --enable-epics flag:

jira-juggler -q "project = MYPROJECT" -E -o hierarchical_output.tjp

This will create nested TaskJuggler tasks where:

  • Epics become parent tasks containing their child Stories

  • Stories become parent tasks containing their child Sub-tasks

  • Effort is automatically rolled up from children to parents

  • Proper indentation is used for nested task structures

Example Hierarchical Output:

task EPIC_123 "User Management" {
    Jira "EPIC-123"
    allocate product_owner
    effort 5.0d

    task STORY_456 "User Authentication" {
        Jira "STORY-456"
        allocate backend_dev
        effort 3.0d

        task SUB_789 "Login API" {
            Jira "SUB-789"
            allocate backend_dev
            effort 1.0d
        }
    }
}

Command-line Options

Key command-line options include:

  • -q, --query: Required. JQL query to fetch issues from JIRA

  • -o, --output: Output .tjp file (default: jira_export.tjp)

  • -E, --enable-epics: NEW. Enable hierarchical Epic/Story/Sub-task support

  • -D, --depend-on-preceding: Make tasks depend on preceding task with same assignee

  • -s, --sort-on-sprint: Sort tasks by sprint field (e.g., customfield_10851)

  • -w, --weeklymax: Workdays per week for time calculations (default: 5.0)

  • -L, --links: Specify issue link types for dependencies

  • -l, --loglevel: Logging level (default: warning)

Run jira-juggler -h for complete help.

Comparison Example:

Without -E (flat output):

task EPIC_123 "User Management" { ... }
task STORY_456 "User Authentication" { ... }
task SUB_789 "Login API" { ... }

With -E (hierarchical output):

task EPIC_123 "User Management" {
    task STORY_456 "User Authentication" {
        task SUB_789 "Login API" { ... }
    }
}

Limitations

  • When two tasks end on the same date and time, TaskJuggler won’t necessarily preserve the order in which the tasks appear in jira-juggler’s output.

  • Hierarchical mode: Epic hierarchy is only enabled with the -E flag. By default, all tasks are output as a flat list to maintain backward compatibility.

  • Effort rollup: When using hierarchical mode, parent task efforts are automatically calculated from their children. Manual effort estimates on parent tasks (Epics/Stories with children) may be overridden by the rollup calculation.

Metadata

Release files for mlx.jira-juggler 3.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for mlx.jira-juggler 3.5.0
File Interpreter ABI Platform
mlx_jira_juggler-3.5.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / mlx_jira_juggler-3.5.0-py2.py3-none-any.whl

Download URL mlx_jira_juggler-3.5.0-py2.py3-none-any.whl
Size 20.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
22c333e2c1ef48f57a9c20e4acb6fbbfd2b419d84fb10547fd526445f4f9e060
BLAKE2b-256 checksum
How to use checksums
ecfd2eb33898a07d74e69f80b9af4ed7382e5443328f1ff343b2ae1ba18c34f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

3.5.0 This release

1 release file

3.4.1

1 release file

3.3.0

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page