Learn what's new across releases, with details of features, enhancements, and resolved issues.
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
GroupDocs.Assembly for Java V26.8Major versionSep 1, 2026
Features
New project layout - The product is now one Maven module. src/main/java holds the product itself, src/test/java the tests, and res/f the sources shared with other Aspose products (Aspose.Foundation, Aspose.Reporting, the MS layer, Dynabic.Metered and, for tests, Aspose.TestFx with the NUnit shim); they are attached with build-helper-maven-plugin and are documented in res/f/README.md. Build configuration lives in config (JARJAR rules, ProGuard configuration, assembly descriptors, install script templates), redistributable files in res/distribution, non-public third-party JARs in dependencies.
Package renaming: JARJAR instead of the double ProGuard pass - The ANT build ran ProGuard twice - the first pass collected the class name mapping, the mapping was rewritten so that everything outside com.groupdocs.assembly moved under com.groupdocs.assembly.internal, and the second pass applied it. The same result is now produced by JARJAR rules, and ProGuard only obfuscates names. As a side effect the rearrangeJarResources tool is no longer needed: JARJAR moves resources together with their package and rewrites resource path literals inside the class files.
ProGuard specifics that the new pipeline requires - Because renaming now happens before ProGuard, three things had to be adjusted: keep rules must use single-level wildcards (com.groupdocs.assembly.*, not **), string constants holding class names must be adapted (-adaptclassstrings), and the keep rule for reflectively called methods must reference the renamed annotations (@com.groupdocs.assembly.internal.**, since @**aspose** no longer matches anything). In addition, the names of com.groupdocs.assembly.internal.c.a.w.internal.** are preserved: Aspose.Words links its own internal copy of the MS layer against the com.aspose.words.net.System.* wrappers that this project builds from sources, and ProGuard leaves the old class names inside the descriptors of references it cannot resolve.
Aspose.Words without the patched JAR - com.aspose.words.net.System.* is still built from sources, because the classes shipped in the Aspose.Words JAR are obfuscated and miss members used by GroupDocs.Assembly, for example DataSet.readXml(Stream). Instead of un-JARring and patching the artifact, maven-shade-plugin now excludes com/aspose/words/net/** from it, so UpdateAsposeWordsClasses.bat and the Aspose.Words.Classes folder are gone.
Distribution package and manifest - mvn clean install -Prelease (or -Pfinal -Dfinal.skip.packaging=false) produces target/GroupDocs.Assembly_<version>-Java.zip with lib/groupdocs-assembly-<version>.jar, version-substituted lib/install.bat and lib/install.sh, doc/groupdocs-assembly-<version>-javadoc.jar, doc/API, the license agreements and the readme. The ZIP is not attached to the Maven artifacts and is not uploaded by the pipeline (the deploy jobs run -Pfinal without -Dfinal.skip.packaging=false), so publishing it stays a manual step, as it was with the ANT build. Note that the archive is named GroupDocs.Assembly_<version>-Java.zip and unpacks into a GroupDocs.Assembly_<version> folder, while the ANT build produced groupdocs-assembly-<version>-java.zip with lib, doc and license at the root. The JAR manifest (Specification/Implementation, OSGi Bundle-*, Permissions, Codebase, Export-Package) is produced by maven-jar-plugin, so the build no longer runs ManifestGenerator.
Tests and test data - GOLD tests locate their documents by walking up from target/test-classes for a directory that contains both TestData and TestGold (TestGold paths are then replaced with TestGoldJava when a Java specific GOLD file exists). Those folders total 232 MB and are not part of the repository, so the run_tests job currently runs with -Dqa.skip.junit=true and Sonar analysis without coverage; drop the flag once the folders are provided on the runner. Tests also need real .lic files (Aspose.Total Product Family.lic next to TestData, and the GroupDocs.Assembly licenses inside TestData).
API reference - mvn initialize -Pjavadoc generates the Hugo reference for the website; the final and release profiles build the javadoc JAR with the standard doclet and the overview page from res/javadoc. Note that the reference is generated from the sources of the com.groupdocs.assembly tree, which carry .NET style /// comments, so it currently contains signatures without descriptions - the ANT build fed javadoc with intermediate sources produced by the .NET CommentPorter tooling, which is not a part of this project. For the same reason the public .NET analogue types (com.groupdocs.assembly.system.data and friends) are not covered: they only get that name from JARJAR at build time.
GroupDocs.Assembly for .NET V26.7Major versionJul 19, 2026
Features
Upgraded document generation engines.
Fixes
Template expressions could not use members inherited from a base interface.
Custom KnownTypes function taking a single DataRow was not resolved from a JSON object node.
GroupDocs.Assembly for Java V26.7Major versionJul 13, 2026
Fixes
JsonDataSource: Array elements silently dropped when the same field name is reused on a different JSON path.
GroupDocs.Assembly for .NET V26.6Major versionJun 30, 2026
Features
NuGet package has been split into per-target-framework runtime packages (adds .NET 8 and .NET 10).
Upgraded the underlying document generation engines.
Fixes
Resolved System.Formats.Asn1 security advisory.
UTC (Z) dates shifted by host timezone when parsed from JSON.
GroupDocs.Assembly for Java V26.6Major versionJun 30, 2026
Fixes
UTC (Z) dates shifted by JVM timezone when converted to java.util.Date.
GroupDocs.Assembly Product Family UpdateFeb 3, 2026