AsciidoctorJ 1.6.0 is a final, transitional release in preparation for the switch to Semantic Versioning (SemVer). Despite its version number, this is a major release and, as such, not binary compatible with the 1.5.x releases.
There are loads of changes that made it into this release, so it's difficult to enumerate them all. In fact, since the development of 1.6.0 ran in parallel with 1.5.x for so long, many changes from 1.6.0 may already be familiar to you as they got backported into the 1.5.x release line.
The most prominent changes in 1.6.0 are as follows:
- Rework Extension API. Please check the Integrator Guide for a documentation about how it looks now.
- Add ExtensionGroup API and fix registration of multiple extensions (#568)
- Reworked AST API, including renaming of classes.
- Split org.asciidoctor package into api and impl modules. (#603, @jmini)
- Added converter API
- Add support for capturing and routing log messages from Asciidoctor (#657)
- Add documentation for the AsciidoctorJ logger (#674, @abelsromero)
- Added annotation-based processor configuration (#341)
- Add support for creating tables structures to Extension API (#335)
- Add support for Lists and Definition Lists to AST (#408)
- Loads of cleanups and improvements across the API (#715, #717, @Mogztter)
- Added method to get and remove substitutions (#504)
- Rename isAttr(), setAttr() and getAttr() to more Java like names, isAttribute(), setAttribute() and getAttribute(). (#554)
- Allow for method chaining when registering extensions (#491)
- Upgrade to Gradle 4.4.1 (#611, @tisoft)
- Remove ContentPart and StructuredDocument API (#699)
There are a lot of bugs that were fixed regarding the extension API. Some of these may have already made it into 1.5.x as long as they did not require architectural changes. To list a few:
- Support for source_location (#351, @ysb33r)
- Numerous fixes for the build process (#474, #482, #469, @ancho)
- Numerous fixes around errors in extensions, as an example (@459 , @ahus1)
You can find more details about this release and its future at asciidoctor.org
Migrating extensions from 1.5.x to 1.6.0 requires some changes, that should in general not be too hard. As examples you might compare extensions from the test cases:
This release wouldn't have been possible without the help of all our awesome contributors:
If I left anyone off this list, I sincerely apologize. We're certainly thankful for each and every contribution!
Released on: 2019-01-01
Released by: @robertpanzer
Release beer: TBD