In v1.8.0 the curated Google font binaries that used to ship inside the
graph-compose jar moved into a separate, independently-versioned artifact:
| Artifact | Coordinate | Version line |
|---|---|---|
| Engine (lean) | io.github.demchaav:graph-compose |
1.8.x |
| Bundled fonts | io.github.demchaav:graph-compose-fonts |
own line, from 1.0.0 |
| Batteries-included aggregate | io.github.demchaav:graph-compose-bundle |
tracks the engine |
The fonts were ~18 MB and were re-shipped on every engine release (and
duplicated again inside the -sources.jar), even though the font set changes
very rarely. Splitting them out keeps the engine artifact small, stops an engine
upgrade from re-downloading fonts, and lets the fonts release on their own
cadence.
- The public
FontNameconstants (FontName.LATO,FontName.POPPINS, …) and theDefaultFontscatalog are unchanged — your code compiles and links without edits (source- and binary-compatible). - The classpath resource layout (
fonts/google/{family}/{file}.ttf) is preserved byte-for-byte, so oncegraph-compose-fontsis on the classpath the bundled families resolve exactly as before. - Standard-14 PDF fonts (Helvetica, Times, Courier) are built into PDF and need no artifact at all.
Pick one:
Add the fonts artifact next to the engine:
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose-fonts</artifactId>
<version>1.0.0</version>
</dependency>dependencies {
implementation("io.github.demchaav:graph-compose:1.8.0")
implementation("io.github.demchaav:graph-compose-fonts:1.0.0")
}You now pin the two independently: bumping the engine does not change your fonts version, and vice-versa.
Depend on the bundle, which pulls a compatible batteries-included set — the default PDF engine, the built-in templates, the fonts, and the colour emoji:
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose-bundle</artifactId>
<version>1.8.0</version>
</dependency>If you only render with the standard-14 families or register your own fonts via
FontFamilyDefinition, you need neither extra artifact. Requesting a bundled
Google family without graph-compose-fonts on the classpath fails fast with an
IllegalArgumentException that names the missing dependency.
graph-compose-fontscarries its own version line and ships on afonts-v*git tag, separate from the engine'sv*releases.- The font binaries remain under the SIL Open Font License (each family bundles
its
OFL.txt).