Changelog 1
0.13.2 - 2024-11-26
- fix publication config by handling SonatypeHost in the FluxoPublicationConfig dynamically.
- don't try to setup browser target for Wasm WASI.
- update README with configuration steps and examples.
- bump dependency-analysis to 2.5.0.
- bump mrmans0n's Detekt Compose Rules to 0.4.19.
- bump BuildConfig plugin from to 5.5.1.
0.13.1 - 2024-11-25
- add JVM compatibility and Kotlin options flags to disable a corresponding autoconfiguration.
- pin
kotlin-compiler-embeddable
dependency in support for Kotlin 2.1 (more details)
0.13.0 - 2024-11-18
- allow not setting up
fluxo-kmp-conf
containers and use the default KMP hierarchy instead.
- return support for Kotlin's
-Xjdk-release=18+
in JDK 23+. - fix bundled shrinker loading.
- use
vanniktech/gradle-maven-publish-plugin
for publication. - migrate to the new Develocity plugin for the build scans.
- prefer bundled R8 if it’s newer by default.
- change default values and logic for some configuration options for safety and convenience in the new projects (experimental and/or complicated options should be opt-in)
- enableApiValidation =
false
- setupVerification =
false
- enableGenericAndroidLint =
false
- enableGradleDoctorProp =
false
- latestSettingsForTests =
false
- BinaryCompatibilityValidatorConfig.tsApiChecks =
false
- enableApiValidation =
- bump Kotlin to 2.0.21!
- bump KSP to 1.0.28.
- bump JetBrains Compose to 1.7.1.
- bump Android Gradle Plugin to 8.7.2 (compile-only dependency).
- bump a lot of other dependencies to the latest versions.
0.12.1 - 2024-10-10
- ⚠ removed context-receivers support (dropped in Kotlin 2.1).
- bump Kotlin to 2.0.20!
- bump Jetbrains Compose to 1.7.0-rc01 (compile-only dependency).
- bump Android Gradle Plugin to 8.7.0 (compile-only dependency).
- bump binary-compatibility-validator to 0.16.3.
- bump a lot of other dependencies to the latest versions.
0.12.0 - 2024-06-29
- fix the broken test-main dependencies in the intermediate KMP source sets.
- set
unitTest
source set tree for Android to the usualtest
tree.
- add more granular control over targets in the
allDefaultTargets
helper. - allow
bytestring
named dependencies in the DependencyGuard plugin despite thetest
substring.
- bump task-tree to 4.0.0.
- bump Android Gradle Plugin to 8.6.0-alpha08 (compile-only dependency).
0.11.0 - 2024-06-10
- rename
jsApiChecks
property totsApiChecks
. BREAKING CHANGE!
- bump binary-compatibility-validator-js from 0.3.0 to 1.0.0.
0.10.2 - 2024-06-08
- bump jetbrains-compose to 1.6.11.
- bump KSP to 1.0.22.
- bump Android Gradle Plugin to 8.6.0-alpha05 (compile-only dependency).
- bump KtLint from 1.2.1 to 1.3.0.
- bump mrmans0n's Detekt Compose Rules to 0.4.4.
- bump kotlin-compile-testing (kctfork) to 0.5.0 (test-only dependency).
0.10.1 - 2024-06-02
- allow disabling Android Lint when no Android plugin is used.
- detect when the project is a child of a composite build and has no startup tasks.
- configure Compose with the new Kotlin compiler plugin.
- use the Gradle Doctor plugin.
- support and use more Detekt rulesets.
- revise the hierarchy of the source sets using both the new
KotlinHierarchyTemplate
and the old way. Can be a BREAKING CHANGE!
- don't apply Android Lint when an old Gradle is used (min supported Gradle is 8.7).
- bump Android Gradle Plugin to 8.6.0-alpha04 (compile-only dependency).
- bump Gradle from 8.8-rc-1 to 8.8.
0.10.0 - 2024-05-26
- bump Kotlin to 2.0.0.
- bump Android Gradle Plugin from 8.4.1 to 8.6.0-alpha03 (compile-only dependency).
- update the list of pinned build-time dependencies.
- fix the dependency pinning logic for buildscript dependencies.
0.9.1 - 2024-05-25
0.9.0 was skipped due to the release publication issues!
- delete deprecated Kotlin/Native targets, removed in Kotlin 2.0.
- auto downgrade Kotlin API version when it's greater than the language version (and warn about it).
- set up
validatePlugins
task for Gradle plugins. BREAKING CHANGE! - enable AndroidLint checks for all projects by default.
- configure
updateLintBaseline
task for re-creating the baseline files.
- prepare for Kotlin 2.0.
- rename
Unix
common source set toNix
. BREAKING CHANGE! - parse fallback toml catalog for enabled plugins.
- bump Kotlin from 1.9.23 to 1.9.24.
- bump jetbrains-compose to 1.6.10.
- bump Gradle from 8.6 to 8.8-rc-1.
- bump Android Gradle Plugin from 8.4.0 to 8.4.1 (compile-only dependency).
- bump Android Lint to 8.6.0-alpha03 (compile-only dependency).
- bump com.mikepenz.aboutlibraries to 11.1.4.
- bump dependency-analysis to 1.32.0.
- bump Guava to 33.2.0-jre (build-only dependency).
- bump proguard-core from 9.1.3 to 9.1.4.
0.8.1 - 2024-05-05
- allow using JRE 21 as target, already supported in tooling.
- tune Kotlin compilation configuration a bit.
- auto-disable
-Xjdk-release
for the broken configurations (JRE 18..21). - fix Detekt BaselineProvider loading and restore
detektBaselineMerge
usage.
- 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 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.
0.8.0 - 2024-04-22
Public API is CHANGED!
You need to replace setup*
calls to fkcSetup*
ones like this:
setupMultiplatform
=> fkcSetupMultiplatform
.
- 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.
- rewise public APIs for ease of use.
- disable Dokka by default.
- unify
setupKotlin
API.
- connect Gmazzo's
BuildConfigTask
toprepareKotlinBuildScriptModel
. - do not use
-Xjdk-release
when compiled against the current JDK version.
- 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.
0.7.0 - 2024-03-31
- 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
.
- 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.
- 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.
- 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).
0.7.0-alpha2 - 2024-02-22
- log memory info on Fluxo context start.
- log R8 compatibility mode (full vs. compat).
- 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).
- 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).
- make default publication configuration lazy (use Gradle Provider in
setupGradleProjectPublication
).
0.7.0-alpha1 - 2024-02-02
- 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.
- Fix
TestReportResult
Gradle compatibility in 1923b815.
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.
0.6.0 - 2024-01-05
Important release that adds advanced shrinking functionality!
- 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.
- 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.
- 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.
- 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).
0.5.0 - 2023-12-24
- correct publication configuration.
- workaround Gradle 8+ problems with publication.
- correct the Gradle Versions Plugin setup.
- pin Okio version to 3.7.0 due to the Security Advisory CVE-2023-3635.
0.4.0 - 2023-12-20
- 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.
- log all configured dependencies.
- cleanup code, fix some Detekt warnings.
- use the plugin to configure and build itself.
- build-config gradle plugin 5.1.0
- KtLint 1.1.0
0.3.0 - 2023-12-15
Stabilization release.
- setup artifacts publication.
- setup BinaryCompatibilityValidator.
- stabilize Detekt configuration.
- remove deprecated API surface parts.
- KSP 1.0.16
- Android Gradle Plugin 8.2.0
- Spotless 6.23.3
- Gradle Enterprise 3.16.1
- Dependency Analysis 1.28.0
0.2.0 - 2023-12-10
🌱 Initial pre-release in the Gradle Plugin Portal.