Skip to content

Releases: fluxo-kt/fluxo-kmp-conf

v0.8.1

05 May 19:52
v0.8.1
5142011
Compare
Choose a tag to compare

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

Full Changelog: v0.8.0...v0.8.1

v0.8.0

22 Apr 03:41
v0.8.0
6841c61
Compare
Choose a tag to compare

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 to prepareKotlinBuildScriptModel.
  • 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

31 Mar 16:50
v0.7.0
ef94560
Compare
Choose a tag to compare

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)

22 Feb 14:41
v0.7.0-alpha2
3c3739c
Compare
Choose a tag to compare
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)

02 Feb 23:10
v0.7.0-alpha1
3b42dbd
Compare
Choose a tag to compare
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 the MAX_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

05 Jan 21:09
v0.6.0
e68ea08
Compare
Choose a tag to compare

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 for allDeps.
  • 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 and AbstractExternalFluxoTask for external tooling.
  • add JvmFiles and JvmFilesProvider 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

24 Dec 17:31
v0.5.0
77ebed4
Compare
Choose a tag to compare

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

24 Dec 17:11
v0.4.0
8ba4cef
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

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

15 Dec 16:35
v0.3.0
96eccd5
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

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

11 Dec 18:17
v0.2.0
0b4fa0d
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

🌱 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