# Building the documentation

This describes how to build the documentation found in the
org.eclipse.tracecompass.incubator.*.doc.* plugins.

Your Eclipse environment first needs to have the "Mylyn Wikitext" plugin
installed. It can be found in the default Eclipse repository, under
"Collaboration".

Once that is installed, you should be able to use the manual Eclipse builder to
generate the doc : select the and individual doc plugin and choose, in the
top-menu, "Project -> Build Project".

It uses the build.xml Ant script, but it's recommended to run it from within
Eclipse, since the builder will pass some environment variables that the script
needs.

You might get a warning from build.properties because of a missing file. This
file gets generated with the rest of the doc, so once you have run these steps
(and refreshed the project if needed), the warning should disappear.

## About ADRs

ADRs are Architectural Decision Records.

Please refer to [the reference documentation for ADRs][about-ADRS].

[about-ADRS]: https://github.com/eclipse-cdt-cloud/theia-trace-extension#about-adrs
