Skip to content

Ver 3.2.0

Latest

Choose a tag to compare

@perNyfelt perNyfelt released this 24 Sep 22:13

gmd-core

  • Breaking: the print(GgChart, double) / println(GgChart, double) width-only
    overload that Groovy default arguments generated is removed. Pass explicit width and
    height, or omit both and let the chart's own dimensions apply.
  • Output from a Groovy code block that does not end in a newline now gains one, so
    out.print('x') no longer glues the next source line onto the output. Visible change:
    out.print('Hello ') followed by prose now yields Hello \nworld instead of
    Hello world in the Markdown (rendered identically by CommonMark).
  • Inline = expr is no longer expanded inside CommonMark indented code blocks (a line
    indented four or more spaces beyond the document's own base indent). Indent is measured
    relative to the indent of the document's first non-blank line, so a .gmd written inside an
    indented Groovy string is unaffected. Lazy paragraph continuations and list-item
    continuations still expand.
  • Indented ```{groovy} fences now execute with their body dedented by the fence's own
    indent, and the echoed fence and body line up. Visible change: a multi-line string
    literal whose continuation lines sit below the fence indent loses those spaces in the
    evaluated source as well as the echo.
  • render Chart/MatrixXChart output (and Html) as a raw <img> HTML tag instead of ![alt](data-uri){attrs}, since CommonMark's image syntax doesn't support Pandoc-style attribute suffixes. This means outputType=md output can now contain raw HTML for charts instead of portable Markdown image syntax; the tag is followed by a blank line so it doesn't swallow subsequent Markdown as an HTML block.
  • restore the HtmlDecorator.BOOTSTRAP_CSS and HIGHLIGHT_JS_CSS compatibility constants
  • upgrade the JUnit BOM from 6.1.2 to 6.1.3
  • upgrade OpenHTMLToPDF from 1.1.65 to 1.1.86
  • upgrade CommonMark from 0.29.0 to 0.30.0
  • remove obsolete JavaFX filtering from the fat jar assembly
  • upgrade groovy to 5.1.3
  • Upgrade matrix bom to 2.6.0
  • exclude xml-apis, which bundles pre-Java-5 javax.xml.parsers classes.
    On a child-first classloader (e.g. Groovy's RootLoader / @grab) its FactoryFinder shadows the JDK's JAXP and fails with FactoryConfigurationError looking for org.apache.xerces.jaxp.DocumentBuilderFactoryImpl. The JDK already provides these APIs.

highlightjs-jvm

  • upgrade the JUnit BOM used by module tests to 6.1.3
  • require Node 22 for bundle generation and verify the generated bundle in CI
  • add Maven publication metadata and attach source and Javadoc artifacts
  • configure the versions Maven plugin to use the shared repository version rules
  • add Javadocs to the public highlighter APIs
  • upgrade the Babel build dependencies

gmd-gradle-plugin

  • Breaking: GmdGradlePlugin.hasRepository(Project, MavenArtifactRepository) is removed.
    It was public static API on the plugin class; nothing in the repo called it. The plugin now
    checks for an existing Maven Central declaration itself before adding one, and also detects
    when repositories are settings-managed (PREFER_SETTINGS or FAIL_ON_PROJECT_REPOS) so it
    never adds a project-level repository Gradle would ignore or reject.
  • derive the default GMD core version from a generated plugin-version resource populated from the root Maven revision, failing clearly if metadata is unavailable
  • derive the development artifact version from the root Maven revision and require an explicit version when publishing
  • upgrade the Gradle Versions Plugin from 0.58.0 to 0.61.0
  • upgrade the JUnit BOM from 6.1.2 to 6.1.3
  • validate the Gradle Plugin Portal publication before uploading the plugin
  • upgrade groovy to 5.1.3
  • clean stale generated files only from the dedicated default build/gmd output directory; custom target directories retain pre-existing and orphaned GMD output when sources are deleted, renamed, or change output type, while Gradle tracks their expected generated files individually for up-to-date checks
  • track the actual GMD processor runtime classpath for up-to-date checks, including changed dynamic or transitive dependencies; avoid resolving it when no .gmd source exists so the no-op and stale-output cleanup paths remain dependency-free
  • expose that runtime through ProcessGmdTask.runtimeClasspath; the established classpath property remains as a deprecated compatibility alias for directly registered tasks

gmd-maven-plugin

  • make the default GMD core version follow the Maven plugin version to prevent release drift
  • validate Maven Central release artifacts before publishing
  • publish source and Javadoc artifacts as part of the release workflow
  • replace deprecated Maven @Component injection with JSR-330 @Inject
  • wait up to 30 seconds after forcibly stopping an interrupted GMD processor, while preserving a subsequent interrupt so Maven cancellation cannot hang indefinitely
  • upgrade groovy to 5.1.3