Skip to content

Latest commit

 

History

History
435 lines (325 loc) · 17.8 KB

CHANGELOG.md

File metadata and controls

435 lines (325 loc) · 17.8 KB

Changelog 1

Unreleased

0.13.2 - 2024-11-26

Fixed

  • fix publication config by handling SonatypeHost in the FluxoPublicationConfig dynamically.
  • don't try to setup browser target for Wasm WASI.

Added

  • update README with configuration steps and examples.

Updated

  • 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

Added

  • add JVM compatibility and Kotlin options flags to disable a corresponding autoconfiguration.

Fixed

  • pin kotlin-compiler-embeddable dependency in support for Kotlin 2.1 (more details)

0.13.0 - 2024-11-18

Added

  • allow not setting up fluxo-kmp-conf containers and use the default KMP hierarchy instead.

Fixed

  • return support for Kotlin's -Xjdk-release=18+ in JDK 23+.
  • fix bundled shrinker loading.

Changed

  • 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

Updated

  • 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

Changed

  • ⚠ removed context-receivers support (dropped in Kotlin 2.1).

Updated

  • 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

Fixed

  • fix the broken test-main dependencies in the intermediate KMP source sets.

Added

  • set unitTest source set tree for Android to the usual test tree.

Changed

  • add more granular control over targets in the allDefaultTargets helper.
  • allow bytestring named dependencies in the DependencyGuard plugin despite the test substring.

Updated

  • 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

Changed

  • rename jsApiChecks property to tsApiChecks. BREAKING CHANGE!

Updated

0.10.2 - 2024-06-08

Updated

  • 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

Added

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

Changed

  • revise the hierarchy of the source sets using both the new KotlinHierarchyTemplate and the old way. Can be a BREAKING CHANGE!

Fixed

  • don't apply Android Lint when an old Gradle is used (min supported Gradle is 8.7).

Updated

  • 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

Updated

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

Fixed

  • 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!

Removed

  • delete deprecated Kotlin/Native targets, removed in Kotlin 2.0.

Added

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

Changed

  • prepare for Kotlin 2.0.
  • rename Unix common source set to Nix. BREAKING CHANGE!
  • parse fallback toml catalog for enabled plugins.

Updated

  • 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

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

0.8.0 - 2024-04-22

Public API is CHANGED!
You need to replace setup* calls to fkcSetup* ones like this:
setupMultiplatform => fkcSetupMultiplatform.

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.

Changed

  • rewise public APIs for ease of use.
  • disable Dokka by default.
  • unify setupKotlin API.

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.

0.7.0 - 2024-03-31

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).

0.7.0-alpha2 - 2024-02-22

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).

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).
  • make default publication configuration lazy (use Gradle Provider in setupGradleProjectPublication).

0.7.0-alpha1 - 2024-02-02

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.

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.

0.6.0 - 2024-01-05

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.

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.

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).

0.5.0 - 2023-12-24

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.

0.4.0 - 2023-12-20

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

0.3.0 - 2023-12-15

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

0.2.0 - 2023-12-10

🌱 Initial pre-release in the Gradle Plugin Portal.

Notes

Footnotes

  1. Uses Common Changelog style 2

  2. https://github.com/vweevers/common-changelog#readme