Gantt Diagram
The Gantt is described in natural language, using very simple sentences (subject-verb-complement).
Declaring tasks
Tasks defined using square bracket.
Duration
Their durations are defined using the last
verb:
@startgantt
[Prototype design] lasts 15 days
[Test prototype] lasts 10 days
-- All example --
[Task 1 (1 day)] lasts 1 day
[T2 (5 days)] lasts 5 days
[T3 (1 week)] lasts 1 week
[T4 (1 week and 4 days)] lasts 1 week and 4 days
[T5 (2 weeks)] lasts 2 weeks
@endgantt
A week is a synonym for how many non-closed days are in a week. So if you specify Saturday and Sunday as closed, a week will be equivalent to 5 days
Start
Their beginning are defined using the start
verb:
@startgantt
[Prototype design] lasts 15 days
[Test prototype] lasts 10 days
Project starts 2020-07-01
[Prototype design] starts 2020-07-01
[Test prototype] starts 2020-07-16
@endgantt
@startgantt
[Prototype design] lasts 15 days
[Test prototype] lasts 10 days
[Prototype design] starts D+0
[Test prototype] starts D+15
@endgantt
[Ref. for D+nn
form: QA-14494]
End
Their ending are defined using the end
verb:
Adding constraints
Completion status
Adding completion depending percentage
You can set the completion status of a task, by the command:
* is xx% completed
* is xx% complete
Change colour of completion (by style)
@startgantt
[Prototype design] lasts 7 days
[Test prototype 0] lasts 4 days
[Test prototype 10] lasts 4 days
[Test prototype 20] lasts 4 days
[Test prototype 30] lasts 4 days
[Test prototype 40] lasts 4 days
[Test prototype 50] lasts 4 days
[Test prototype 60] lasts 4 days
[Test prototype 70] lasts 4 days
[Test prototype 80] lasts 4 days
[Test prototype 90] lasts 4 days
[Test prototype 100] lasts 4 days
[Test prototype 0] starts at [Prototype design]'s end
[Test prototype 10] starts at [Prototype design]'s end
[Test prototype 20] starts at [Prototype design]'s end
[Test prototype 30] starts at [Prototype design]'s end
[Test prototype 40] starts at [Prototype design]'s end
[Test prototype 50] starts at [Prototype design]'s end
[Test prototype 60] starts at [Prototype design]'s end
[Test prototype 70] starts at [Prototype design]'s end
[Test prototype 80] starts at [Prototype design]'s end
[Test prototype 90] starts at [Prototype design]'s end
[Test prototype 100] starts at [Prototype design]'s end
[Test prototype 0] is 0% complete
[Test prototype 10] is 10% complete
[Test prototype 20] is 20% complete
[Test prototype 30] is 30% complete
[Test prototype 40] is 40% complete
[Test prototype 50] is 50% complete
[Test prototype 60] is 60% complete
[Test prototype 70] is 70% complete
[Test prototype 80] is 80% complete
[Test prototype 90] is 90% complete
[Test prototype 100] is 100% complete
@endgantt
[Ref. QA-8297]
Milestone
You can define Milestones using the happen
verb.
Milestone of maximum end of tasks
@startgantt
[Task1] lasts 4 days
then [Task1.1] lasts 4 days
[Task1.2] starts at [Task1]'s end and lasts 7 days
[Task2] lasts 5 days
then [Task2.1] lasts 4 days
[MaxTaskEnd] happens at [Task1.1]'s end
[MaxTaskEnd] happens at [Task1.2]'s end
[MaxTaskEnd] happens at [Task2.1]'s end
@endgantt
[Ref. QA-10764]
Changing scale
You can change scale for very long project, with one of those parameters: * printscale * ganttscale * projectscale and one of the values: * daily (by default) * weekly * monthly * quarterly * yearly
Daily (by default)
@startgantt
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Weekly
@startgantt
printscale weekly
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
@startgantt
printscale weekly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Monthly
@startgantt
projectscale monthly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Quarterly
@startgantt
projectscale quarterly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Zoom (example for all scale)
You can change zoom, with the parameter:
* zoom <integer>
Zoom on weekly scale
Without zoom
@startgantt
printscale daily
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
With zoom
@startgantt
printscale daily zoom 2
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
[Ref. QA-13725]
Zoom on weekly scale
Without zoom
@startgantt
printscale weekly
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
With zoom
@startgantt
printscale weekly zoom 4
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] lasts 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Zoom on monthly scale
Without zoom
@startgantt
projectscale monthly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
With zoom
@startgantt
projectscale monthly zoom 3
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Zoom on quarterly scale
Without zoom
@startgantt
projectscale quarterly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
With zoom
@startgantt
projectscale quarterly zoom 7
Project starts the 20th of september 2020
[Prototype design] as [TASK1] lasts 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] lasts 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
Close day
It is possible to close some day.
@startgantt
project starts the 2018/04/09
saturday are closed
sunday are closed
2018/05/01 is closed
2018/04/17 to 2018/04/19 is closed
[Prototype design] lasts 14 days
[Test prototype] lasts 4 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Fuchsia/FireBrick
[Test prototype] is colored in GreenYellow/Green
@endgantt
Then it is possible to open some closed day.
Definition of a week depending of closed days
A week is a synonym for how many non-closed days are in a week, as:
@startgantt
Project starts 2021-03-29
[Review 01] happens at 2021-03-29
[Review 02 - 3 weeks] happens on 3 weeks after [Review 01]'s end
[Review 02 - 21 days] happens on 21 days after [Review 01]'s end
@endgantt
So if you specify Saturday and Sunday as closed, a week will be equivalent to 5 days, as:
@startgantt
Project starts 2021-03-29
saturday are closed
sunday are closed
[Review 01] happens at 2021-03-29
[Review 02 - 3 weeks] happens on 3 weeks after [Review 01]'s end
[Review 02 - 21 days] happens on 21 days after [Review 01]'s end
@endgantt
[Ref. QA-13434]
Simplified task succession
Working with resources
You can affect tasks on resources using the on
keyword and brackets for resource name.
@startgantt
[Task1] on {Alice} lasts 10 days
[Task2] on {Bob:50%} lasts 2 days
then [Task3] on {Alice:25%} lasts 1 days
@endgantt
Multiple resources can be assigned to a task:
Resources can be marked as off on specific days:
Hide resources
Hide resources names
You can hide ressources names and percentage, on tasks, using the hide ressources names
keywords.
Hide resources footbox
You can also hide ressources names on bottom of the diagram using the + hide ressources footbox+
keywords.
Complex example
It also possible to use the and
conjunction.
You can also add delays in constraints.
@startgantt
[Prototype design] lasts 13 days and is colored in Lavender/LightBlue
[Test prototype] lasts 9 days and is colored in Coral/Green and starts 3 days after [Prototype design]'s end
[Write tests] lasts 5 days and ends at [Prototype design]'s end
[Hire tests writers] lasts 6 days and ends at [Write tests]'s start
[Init and write tests report] is colored in Coral/Green
[Init and write tests report] starts 1 day before [Test prototype]'s start and ends at [Test prototype]'s end
@endgantt
Comments
As is mentioned on link::commons#560kta2oz3a2k362kjbm[Common Commands page]:
> Everything that starts with simple quote '
is a comment.
>
> You can also put comments on several lines using /'
to start and '/
to end.
(i.e.: the first character (except space character) of a comment line must be a simple quote '
)
Using style
With style
You can use link::style-evolution[style] to change rendering of elements.
With style (full example)
@startgantt
Project starts the 2020-12-01
[Task1] lasts 10 days
sunday are closed
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[Task2] lasts 20 days
[Task2] starts 10 days after [Task1]'s end
-- Separator title --
[M1] happens on 5 days after [Task1]'s end
-- end --
@endgantt
[[#00D700#DONE]] Thanks for style for Separator and all style for Arrow (thickness…)
Clean style
With style, you can also clean a Gantt diagram (showing tasks, dependencies and relative durations only - but no actual start date and no actual scale):
@startgantt
hide footbox
[Test prototype] lasts 7 days
[Prototype completed] happens at [Test prototype]'s end
[Setup assembly line] lasts 9 days
[Setup assembly line] starts at [Test prototype]'s end
then [Setup] lasts 5 days
[T2] lasts 2 days and starts at [Test prototype]'s end
then [T3] lasts 3 days
-- end task --
then [T4] lasts 2 days
@endgantt
[Ref. QA-13971]
Or:
@startgantt
hide footbox
project starts the 2018/04/09
saturday are closed
sunday are closed
2018/05/01 is closed
2018/04/17 to 2018/04/19 is closed
[Prototype design] lasts 9 days
[Test prototype] lasts 5 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Fuchsia/FireBrick
[Test prototype] is colored in GreenYellow/Green
@endgantt
[Ref. QA-13464]
Add notes
@startgantt
[task01] lasts 15 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task01] -> [task02]
@endgantt
Example with overlap.
@startgantt
[task01] lasts 15 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task01] -> [task02]
[task03] lasts 5 days
@endgantt
@startgantt
-- test01 --
[task01] lasts 4 days
note bottom
'note left
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task02] lasts 8 days
[task01] -> [task02]
note bottom
'note left
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
-- test02 --
[task03] as [t3] lasts 7 days
[t3] -> [t4]
@endgantt
[[#c0ffc0#DONE]] Thanks for correction (of #386 on v1.2020.18) when overlapping
@startgantt
Project starts 2020-09-01
[taskA] starts 2020-09-01 and lasts 3 days
[taskB] starts 2020-09-10 and lasts 3 days
[taskB] displays on same row as [taskA]
[task01] starts 2020-09-05 and lasts 4 days
then [task02] lasts 8 days
note bottom
note for task02
more notes
end note
then [task03] lasts 7 days
note bottom
note for task03
more notes
end note
-- separator --
[taskC] starts 2020-09-02 and lasts 5 days
[taskD] starts 2020-09-09 and lasts 5 days
[taskD] displays on same row as [taskC]
[task 10] starts 2020-09-05 and lasts 5 days
then [task 11] lasts 5 days
note bottom
note for task11
more notes
end note
@endgantt
Pause tasks
@startgantt
Project starts the 5th of december 2018
saturday are closed
sunday are closed
2018/12/29 is opened
[Prototype design] lasts 17 days
[Prototype design] pauses on 2018/12/13
[Prototype design] pauses on 2018/12/14
[Prototype design] pauses on monday
[Test prototype] starts at [Prototype design]'s end and lasts 2 weeks
@endgantt
Change link colors
You can change link colors:
* with this syntax: with <color> <style> link
@startgantt
[T1] lasts 4 days
[T2] lasts 4 days and starts 3 days after [T1]'s end with blue dotted link
[T3] lasts 4 days and starts 3 days after [T2]'s end with green bold link
[T4] lasts 4 days and starts 3 days after [T3]'s end with green dashed link
@endgantt
-
or directly by using arrow style
@startgantt
[Prototype design] lasts 7 days
[Build prototype] lasts 4 days
[Prepare test] lasts 6 days
[Prototype design] -[#FF00FF]-> [Build prototype]
[Prototype design] -[dotted]-> [Prepare test]
Then [Run test] lasts 4 days
@endgantt
[Ref. QA-13693]
Tasks or Milestones on the same line
You can put Tasks or Milestones on the same line, with this syntax:
* [T|M] displays on same row as [T|M]
@startgantt
[Prototype design] lasts 13 days
[Test prototype] lasts 4 days and 1 week
[Test prototype] starts 1 week and 2 days after [Prototype design]'s end
[Test prototype] displays on same row as [Prototype design]
[r1] happens on 5 days after [Prototype design]'s end
[r2] happens on 5 days after [r1]'s end
[r3] happens on 5 days after [r2]'s end
[r2] displays on same row as [r1]
[r3] displays on same row as [r1]
@endgantt
Highlight today
@startgantt
Project starts the 20th of september 2018
sunday are close
2018/09/21 to 2018/09/23 are colored in salmon
2018/09/21 to 2018/09/30 are named [Vacation in the Bahamas]
today is 30 days after start and is colored in #AAF
[Foo] happens 40 days after start
[Dummy] lasts 10 days and starts 10 days after start
@endgantt
Removing Foot Boxes (example for all scale)
You can use the hide footbox
keywords to remove the foot boxes
of the gantt diagram (as for link::sequence-diagram[sequence diagram]).
Examples on:
-
daily scale (without project start)
@startgantt hide footbox title Foot Box removed [Prototype design] lasts 15 days [Test prototype] lasts 10 days @endgantt
-
daily scale
@startgantt Project starts the 20th of september 2017 [Prototype design] as [TASK1] lasts 13 days [TASK1] is colored in Lavender/LightBlue hide footbox @endgantt
-
weekly scale
@startgantt hide footbox printscale weekly saturday are closed sunday are closed Project starts the 1st of january 2021 [Prototype design end] as [TASK1] lasts 19 days [TASK1] is colored in Lavender/LightBlue [Testing] lasts 14 days [TASK1]->[Testing] 2021-01-18 to 2021-01-22 are named [End's committee] 2021-01-18 to 2021-01-22 are colored in salmon @endgantt
-
monthly scale
@startgantt hide footbox projectscale monthly Project starts the 20th of september 2020 [Prototype design] as [TASK1] lasts 130 days [TASK1] is colored in Lavender/LightBlue [Testing] lasts 20 days [TASK1]->[Testing] 2021-01-18 to 2021-01-22 are named [End's committee] 2021-01-18 to 2021-01-22 are colored in salmon @endgantt
-
quarterly scale
@startgantt hide footbox projectscale quarterly Project starts the 1st of october 2020 [Prototype design] as [TASK1] lasts 700 days [TASK1] is colored in Lavender/LightBlue [Testing] lasts 200 days [TASK1]->[Testing] 2021-01-18 to 2021-03-22 are colored in salmon @endgantt
-
yearly scale
@startgantt hide footbox projectscale yearly Project starts the 1st of october 2020 [Prototype design] as [TASK1] lasts 700 days [TASK1] is colored in Lavender/LightBlue [Testing] lasts 200 days [TASK1]->[Testing] 2021-01-18 to 2021-03-22 are colored in salmon @endgantt
Language of the calendar
You can choose the language of the Gantt calendar, with the language <xx>
command where <xx>
is the ISO 639 code of the language.
Delete Tasks or Milestones
You can mark some Tasks or Milestones as deleted
instead of normally completed to distinguish tasks that may possibly have been discarded, postponed or whatever.
@startgantt
[Prototype design] lasts 1 weeks
then [Prototype completed] lasts 4 days
[End Prototype completed] happens at [Prototype completed]'s end
then [Test prototype] lasts 5 days
[End Test prototype] happens at [Test prototype]'s end
[Prototype completed] is deleted
[End Prototype completed] is deleted
@endgantt
[Ref. QA-9129]