Releases: fluxo-kt/fluxo-kmp-conf
v0.8.1
Added
- allow using JRE 21 as target, already supported in tooling.
Changed
- tune Kotlin compilation configuration a bit.
Fixed
- auto-disable
-Xjdk-release
for the broken configurations (JRE 18..21). - fix Detekt BaselineProvider loading and restore
detektBaselineMerge
usage.
Updated
- bump Android Gradle Plugin from 8.3.2 to 8.4.0 (compile-only dependency) in #48.
- bump io.nlopez.compose.rules:detekt from 0.3.15 to 0.3.20 by @dependabot in #53.
- bump binary-compatibility-validator-js from 0.2.0 to 0.3.0 in #52.
- bump proguard-core from 9.1.2 to 9.1.3 in #49.
- bump gradle/wrapper-validation-action from 2 to 3 by @dependabot in #46
- bump step-security/harden-runner from 2.7.0 to 2.7.1 by @dependabot in #47
- bump org.json:json from 20240205 to 20240303 by @dependabot in #51
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Public API is CHANGED!
You need to replace setup*
calls to fkcSetup*
ones like this:
setupMultiplatform
=> fkcSetupMultiplatform
.
Changed
- rewise public APIs for ease of use.
- disable Dokka by default.
- unify
setupKotlin
API.
Added
- add Compose Desktop setup support and a test project for it.
- bundle toml version catalog with the plugin as a resolving fallback.
- add logging on auto changed yarn dependenciew for Kotlin/JS.
- enable
androidResources.generateLocaleConfig
in android apps by default.
Fixed
- connect Gmazzo's
BuildConfigTask
toprepareKotlinBuildScriptModel
. - do not use
-Xjdk-release
when compiled against the current JDK version.
Updated
- bump dependency-analysis to 1.31.0.
- bump task-tree to 3.0.0.
- bump KSP to 1.0.20.
- bump proguard-core to 9.1.2.
- bump io.nlopez.compose.rules:detekt to 0.3.15.
- bump Guava to 33.1.0-jre (build only dependency).
- bump Okio to 3.9.0 (build only dependency).
- bump Android Gradle Plugin to 8.3.2 (compile-only dependency).
- bump com.mikepenz.aboutlibraries to 11.1.3.
- bump jetbrains-compose to 1.6.2.
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Changed
- update compatibility methods
NamedDomainObjectSet<T>.named*
for Gradle 8.6+ and older. - output relative paths for the merged report files in the log.
- replace shrinking setup with full-powered processing chains setup.
- update Kotlin compiler settings for Kotlin 2.0 and
-Xjdk-release
.
Added
- self-apply the plugin to itself immediately with included build.
- support double-shrinking with both R8 and ProGuard.
- invalidate jar task when the artifact version changes (e.g. for git HEAD-based snapshots).
- use the local repository publication as one of the project checks.
- verify shrunken artifacts for all public declarations.
Fixed
- prevent double escaping of cli arguments.
- fail build when shrinker fails to save size for release artifact.
- prevent double calculation of scmTag with GIT commands execution.
Updated
- bump Android Gradle Plugin from 8.2.2 to 8.3.1 (compile-only dependency).
- bump Kotlin from 1.9.22 to 1.9.23.
- bump KSP from 1.0.17 to 1.0.19.
- bump KtLint from 1.1.1 to 1.2.1.
- bump
org.json:json
from 20231013 to 20240205 in #37 - bump
com.mikepenz.aboutlibraries.plugin
from 10.10.0 to 11.1.0. - bump Dokka from 1.9.10 to 1.9.20.
- bump R8 to 8.3.37.
- bump Detekt to 1.23.6.
- bump
gradle-intellij-plugin
to 1.17.3. - bump kctfork to 0.4.1 (test dependency).
- bump
step-security/harden-runner
from 2.6.1 to 2.7.0 by @dependabot in #27 - bump
gradle/wrapper-validation-action
from 1 to 2 by @dependabot in #26 - bump
actions/cache
from 3 to 4 by @dependabot in #28 - bump
gradle/gradle-build-action
from 2 to 3 by @dependabot in #29 - bump
io.nlopez.compose.rules:detekt
from 0.3.8 to 0.3.11 by @dependabot in #31 - bump
org.json:json
from 20231013 to 20240205 by @dependabot in #37
Plus changes from alpha versions:
Full Changelog: v0.6.0...v0.7.0
v0.7.0-alpha2 (pre release)
Changed
- bump gradle-intellij-plugin to 1.17.2.
- bump dependency-guard to 0.5.0.
- bump dependency-analysis to 1.30.0.
- bump R8 to 8.2.47.
- use R8 as a default shrinker (safer and more stable).
Added
- log memory info on Fluxo context start.
- log R8 compatibility mode (full vs. compat).
Fixed
- don't run in-memory shrinking if there is not enough memory available.
- don't mark the project as in IDE sync mode when no tasks where called and no composite build detected.
- remove invalid checks for composite mode.
- improve and document composite builds detection.
- properly quote and escape CLI arguments for external tool runner.
- fix R8 external run for Ubuntu and macOS (non-Windows systems).
Full Changelog: v0.7.0-alpha1...v0.7.0-alpha2
v0.7.0-alpha1 (pre release)
Changed
DISABLE_R8
now disables all shrinking altogether.- improve logging output in 4357abd7.
- improve error reporting for
ExternalToolRunner
in 34ffc208. - bump kotlinx-metadata-jvm to 0.6.2 for ProGuard (used only for ProGuard in a separate classloader or process).
- bump gradle.enterprise to 3.16.2.
- bump jetbrains-compose to 1.5.12.
- bump android-gradle-plugin to 8.2.2.
- bump binary-compatibility-validator to 0.14.0.
- bump detekt to 1.23.5.
- bump spotless to 6.25.0.
- bump proguard to 7.4.2.
- bump ben-manes.versions to 0.51.0.
- bump gradle.taskinfo to 2.2.0.
- bump compose detekt rules to 0.3.11.
Added
- allow switching on/off the R8 full mode, also called "non-compat mode." Disabled by default.
- add
FLUXO_VERBOSE
flag to enable verbose output without enabling theMAX_DEBUG
mode. - report a version of the bundled/classpath ProGuard version.
- report
includedBuilds
number during the composite build. - add some documentation and to-do notes.
- create infrastructure for automated R8 and ProGuard shrinkers testing in 0ee74ca.
- add tests for R8 and ProGuard in 7181a82...226a05b.
- shrink plugin artifact with R8 (saved 35.227%, 293.3 KB).
- control keep rule modifiers for all auto-kept classes (in auto-generated keep rules) in 8c8630c7.
- support R8 or ProgGuard available in the classpath (bundled) and support loading in the classpath as a more stable alternative to external run in 07af4372.
Fixed
- Fix
TestReportResult
Gradle compatibility in 1923b815.
Full Changelog: v0.6.0...v0.7.0-alpha1
v0.6.0
Important release that adds advanced shrinking functionality!
Added
- support for shrinking artifacts with ProGuard and/or R8 (ProGuard is used as a default optimal choice)!
- auto-generate R8/ProGuard keep rules from
BinaryCompatibilityValidator
API reports! - support for replacing the original artifact with a shrunken one!
- highlight publication setup in logs.
- verify that publication artifact version is set.
- both WasmWasi and WasmJS can be used together since Kotlin 2.0.
- register
depsAll
task as a rememberable alias forallDeps
. - save and show the reason, why the project is in IDE sync mode.
- add Gradle file and I/O utils.
- add util methods for detached dependencies in Gradle.
- add
ExternalToolRunner
andAbstractExternalFluxoTask
for external tooling. - add
JvmFiles
andJvmFilesProvider
classes for easier universal JVM targets manupulations. - add compatibility method
TaskCollection<T>.named {}
for Gradle 8.6+ and older. - add minor improvements for
BinaryCompatibilityValidator
configuration safety.
Changed
- remove tests & checks from the
release
CI workflow. - remove explicit gradle plugin configuration, which isn't needed anymore.
- simplify logging, remove custom log markers completely.
Updated
- bump Kotlin from 1.9.21 to 1.9.22.
- pin OkHttp (4.12.0), Guava (33.0.0-jre), and Json (20231013) versions due to the Security Advisories.
- bump github/codeql-action from 2 to 3 by @dependabot in #23
- bump BuildConfig plugin from 5.1.0 to 5.3.2.
- bump Android Gradle Plugin from 8.2.0 to 8.4.0-alpha02 (compile-only dependency).
Fixed
- move
kotlinConfig
computed property to the project-level configuration extension from the root-level context. - remove MemoizedProvider incompatibility with Gradle 8.6, prevent crashes on future usage, but log the errors.
- correct apiDump/apiCheck tasks dependency and finalize API reports generation with keep rules generation.
- aligh
iosSimulatorArm64
parameter name with all others (action => configure). - correct default JS/WASM targets setup for Kotlin 2.0.
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Fixed
- correct publication configuration.
- workaround Gradle 8+ problems with publication.
- correct the Gradle Versions Plugin setup.
Updated
- pin Okio version to 3.7.0 due to the Security Advisory CVE-2023-3635.
https://plugins.gradle.org/plugin/io.github.fluxo-kt.fluxo-kmp-conf/0.5.0
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Fixed
- correct search for non-available extensions, handle more edge cases overall.
- correct setup for the Binary Compatibility Validator.
- configure the Gradle plugin eagerly to avoid issues with composite builds.
- fix release workflow permissions.
Changed
- log all configured dependencies.
- cleanup code, fix some Detekt warnings.
- use the plugin to configure and build itself.
Updated
- build-config gradle plugin 5.1.0
- KtLint 1.1.0
https://plugins.gradle.org/plugin/io.github.fluxo-kt.fluxo-kmp-conf/0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Stabilization release.
Changed
- setup artifacts publication.
- setup BinaryCompatibilityValidator.
- stabilize Detekt configuration.
Removed
- remove deprecated API surface parts.
Updated
- KSP 1.0.16
- Android Gradle Plugin 8.2.0
- Spotless 6.23.3
- Gradle Enterprise 3.16.1
- Dependency Analysis 1.28.0
https://plugins.gradle.org/plugin/io.github.fluxo-kt.fluxo-kmp-conf/0.3.0
Full Changelog: v0.2.0...v0.3.0
v0.2.0
🌱 Initial public release.
See README for more info:
https://github.com/fluxo-kt/fluxo-kmp-conf#readme
Full Changelog: https://github.com/fluxo-kt/fluxo-kmp-conf/commits/v0.2.0