All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
platformDependenciesnow resolves transitively. A platform artifact's own natives are themselves platform-specific, so they were just as absent from the generation host's resolution as the artifact that pulls them — but force-resolution was non-transitive, which made enumerating them by hand, with their versions and classifiers, the consumer's job. Those versions belong to POMs the consumer does not own, nothing checked them, and a stale or missing entry surfaced only asCould not find <jar>minutes into the offline build on the other architecture. Consumers should now name only what they depend on directly:desktop-jvm-<platform>bringsskiko-awt-runtime-<platform>, and maplibre-compose's desktop runtime brings the maplibre-native-ffi and LWJGL natives (#43).- Update Gradle to v9.7.1 (#39).
- Enable the configuration cache for the plugin's own build (#38).
- Update
actions/setup-javato v6 (#41); updategithub/codeql-actionto v4.37.8 and v4.37.9 (#40, #42).
- One unresolvable platform coordinate no longer discards the rest. Every coordinate shared a single detached configuration, which resolved as a unit: one bad entry dropped all platform URLs from the manifest, and the warning named none of them. Each coordinate now resolves in its own configuration, and the warning names the one that failed (#43).
- Isolated Projects compatibility. The settings plugin published its captured URL set and
repo-URL list onto
settings.gradle.extensions, and the project plugin read them back viaproject.gradle.extensions.findByName(...)— a cross-project read through the sharedGradleobject, which Isolated Projects forbids. Both now flow through the existingUrlCaptureBuildService(already registered for theBuildOperationListener), which both plugins look up by name —BuildServiceis Gradle's sanctioned cross-project sharing primitive. A second, separate config-cache violation surfaced once the first was fixed:captureFlatpakSourcescaptured a liveProjectreference insidedoLast; that resolution now happens in the task-registration block instead, which is already lazy, so the same on-demand timing holds without crossing a liveProjectinto the execution closure (#36).
No change to plugin behaviour — the generated flatpak-sources.json is identical to
0.1.5. Dependency and CI maintenance only.
- Update Gradle to v9.7.0 (#32).
- Update
org.junit.platform:junit-platform-launcherto v6.1.3 (#33). - Update
actions/setup-javato v5.7.0 (#27); updategradle/actionsto v6.3.0 (#29). - Update
github/codeql-actionto v4.37.4 through v4.37.7 (#26, #30, #31, #34).
- Onboarded to the OSS Community Develocity instance for Build Scans and remote caching (#28).
No change to plugin behaviour — the generated flatpak-sources.json is identical to
0.1.4. This release exists to ship the packaging and documentation fixes below.
- The published
-javadoc.jarnow contains the real Dokka HTML API reference. Every release up to and including 0.1.4 shipped a 261-byte empty stub, because the plugin is written in Kotlin and the stock Javajavadoctask produced nothing (#14). COPYINGnow carries the complete FSF GPL-3.0 text. It was previously abbreviated, which left GitHub reporting the licence as "Other" rather than GPL-3.0 (#11).
- Browsable API documentation published to GitHub Pages at
https://meshtastic.github.io/gradle-flatpak-sources/, built by Dokka on every push
to
main(#21). - Unit tests for the
MirrorGeneratorandCacheFileLocatorinternals, alongside the existing TestKit functional suite (#19). - Community-health files (
CONTRIBUTING,CODE_OF_CONDUCT,SECURITY,CODEOWNERS, issue and PR templates) (#17, #18).
- Every third-party GitHub Action is pinned to a full commit SHA, workflows run with
least-privilege
contents: read, the Gradle wrapper is pinned by SHA-256 checksum, and CodeQL, OpenSSF Scorecard, and dependency-review analysis now run on the repository (#13, #17, #20, #21). CI-only — the published plugin is unaffected.
- Update Gradle toolchain to 9.6.1
- Update
com.gradleup.nmcpto 1.6.1 - Update
actions/checkoutto v7 - Update
org.junit.platform:junit-platform-launcherto 6.1.2 - Add Renovate configuration with automerge
Burned tag: the publish failed and no artifacts were released to the Gradle Plugin Portal or Maven Central. Do not use — upgrade to 0.1.4 or later.
- Settings plugin (
org.meshtastic.flatpak.sources.settings) that captures all dependency downloads from build start viaBuildOperationListener+BuildService - Project plugin (
org.meshtastic.flatpak.sources) with fallback listener for use without the settings plugin captureFlatpakSourcestask that emits a Flathub-compliantflatpak-sources.jsonmanifest- SHA-256 computation from local Gradle cache with remote download fallback
- Maven Central mirror URL generation for redundancy
- Cross-platform artifact resolution via
targetPlatforms+platformDependenciesconfiguration - Cache scan for artifacts resolved before listener attachment (included build plugins, settings bootstrap)
- URL suffix exclusion (sources/javadoc jars excluded by default)
- Configurable output file, destination prefix, and task ordering
- Functional test suite using Gradle TestKit
- CI workflow (GitHub Actions) with Gradle 9.x matrix
- Publish workflow for Gradle Plugin Portal and Maven Central