Convert user manual to be generated by Asciidoctor onlyThis change replaces all embedded Docbook syntax from the user manual.Asciidoctor files are now converted directly to HTML and PDF.It not only greatly simplifies the user manual generation pipeline, but also it makes it faster.I did the following for all user manual pages: - [x] Adjusted links to other manual pages, DSL docs, and Javadocs where necessary. Fixed a couple dozen broken links at least. - [x] Convert samples XML from docbook to asciidoctor syntax - [x] Converted wide tables to a more flexible list-based displayImportant contributor differences from now on: - Users must use a `<file>.adoc#` prefix for all cross-reference links. This is _required_ to achieve working links in all 3 outputs: multi-page user manual, single-page user manual, and PDF. - The manual PDF is no longer themed, and no longer has the list of examples links in the TOC. - File names were changed from camelCased to snake_case to have a crystal clear 1-1 mapping between source to output. - Section reference verification is now handled by Asciidoctor verbose mode. - The single-page user manual has the same navigation as the multi-page manual for now. - [Common Asciidoctor extensions](https://github.com/gradle/dotorg-docs/tree/master/docs-asciidoctor-extensions) are now used by Gradle Guides and the User Manual, however, the the web assets (CSS, JS, etc) are not yet merged. These extensions are responsible for injecting the navigation and styles. The header/footer/navigation HTML can now be found under `subprojects/docs/src/main/resources`.
Externalize samples testing infrastructureThis change replaces UserGuideSamplesRunner with an external librarycalled sample-check. Sample discovery, execution, and normalizationis delegated to this library, with some custom normalizers remainingin the Gradle codebase.Samples output has become co-located with the sample code. Samples testsmust be run with Java 8+.
Put deferred configurable change behind a feature flagSimply removing deferred configurable can silently break builds.Instead we now add a feature flag and nag users to opt into thenew behavior. The flag will be the new default in Gradle 5.0.
Document how to publish distributions using Maven/Ivy Publish PluginsPrior to this commit the User Guide chapter on the Distribution Plugin included a section on how to publish a distribution archive using the uploadArchives task. Now, the way more flexible publishing of distribution archives using the Ivy/Maven Publish Plugins is documented as well.Resolves #5244.