Skip to content

Releases: JetBrains/kotlin-toolchain

0.12.0

Choose a tag to compare

@joffrey-bion joffrey-bion released this 25 Aug 00:01
Immutable release. Only release title and notes can be modified.

Full Changelog: v0.11.1...v0.12.0

See our release blog post (coming soon) for the highlights, and to learn about the tooling improvements.

Breaking changes

  • KTC-5221 — Update default JDK version to 25
  • KTC-5237 — Align Ktor dependency catalog with the published ktor-version-catalog
  • KTC-5368 — Update default Compose version to 1.11.1
  • KTC-5369 — Update default kotlinx.serialization version to 1.11.0
  • KTC-5370 — Update default KSP version to 2.3.9
  • KTC-5419 — Remove deprecated CLI options --root, --build-output, --shared-caches-root
  • KTC-5462 — Remove iosX64 from supported platforms of ios/app product type
  • KTC-5539 — Bump default Android minimum level to 24
  • KTC-5625 — Deprecate android.maxSdk
  • KTC-5632 — Update default Kotlin version to 2.4.10
  • KTC-5635 — Update default Ktor version to 3.5.2
  • KTC-5636 — Update default DataFrame version to 1.0.0-rc01
  • KTC-5637 — Update default JUnit Platform version to 6.1.3
  • KTC-5638 — Update default kotlinx.rpc version to 0.10.3
  • KTC-5639 — Update default KSP version to 2.3.11
  • KTC-5640 — Update default Spring Boot version to 4.1.0
  • KTC-5687 — Enforce a specific Xcode scheme for the xcode project
  • KTC-5702 — Remove macosX64 from the default platforms of the macos/app product type
  • KTC-5708 — Raise minimum JDK version to 17
  • KTC-5712 — Raise minimum Kotlin version to 2.2.20
  • KTC-5728 — Align the --modules option in publish with other --module options
  • KTC-5729 — Require transitivity flag for kotlin publish -m module

New features

  • KTC-719 — Support KMP libraries publication
  • KTC-721 — KMP metadata compilation
  • KTC-2139 — Support project-root-relative (//) paths
  • KTC-4474 — Allow depending on JVM libraries in JVM+Android "common" fragments (modules)
  • KTC-4511 — Kotlin incremental compilation for JVM targets
  • KTC-4881 — Support dataframe compiler plugin
  • KTC-5042 — Support dependency type = pom and scope != import
  • KTC-5270 — Maven packaging type support: Kotlin Toolchain ignores artifacts of libraries published with packaging type POM
  • KTC-5272 — Publish Gradle module metadata in addition to pom.xml
  • KTC-5437 — Commonize cinterop klibs
  • KTC-5452 — Support Android SDK 37
  • KTC-5475 — Compose Hot Reload support for standalone CLI with fs watcher
  • KTC-5483 — Allow controlling which checksums are published to Maven Central
  • KTC-5486 — MCP server for Compose Hot Reload
  • KTC-5569 — Add build task for wasm-js
  • KTC-5570 — Add run task for wasm-js/app
  • KTC-5572 — Implement support of transitive NPM dependencies
  • KTC-5585 — Support commonized cinterops as as an input of KMP metadata compilation
  • KTC-5608 — Tab completion for kotlin do command names
  • KTC-5610 — Tab completion for module names in the -m/--module option of various commands
  • KTC-5696 — Support configuring the Gradle distribution URL (mirror)
  • KTC-5699 — Allow customizing Android build tools version

Cosmetics

  • KTC-4233 — Use a widget to show test progress
  • KTC-5414 — DataFrame compiler plugin pollutes console logs
  • KTC-5604 — Rename XCodeProject target build phase and its shell script

Usability improvements

  • KTC-839 — Missing credentials file should not prevent the build from working
  • KTC-4491 — Compiler warnings are not replayed on cache hit
  • KTC-4691 — Make ./amper run ask interactively for the module to run when there are multiple
  • KTC-4846 — Report reference syntax/resolution diagnostics with precise ranges
  • KTC-5006 — Add diagnostic for JDK version compatibility with Kotlin version
  • KTC-5181 — Invalid version catalog key reference produces repeated duplicate error messages
  • KTC-5200 — Maven converter: add a flag to enable all compatibility plugins during conversion
  • KTC-5453 — Stop publishing unnecessary checksum files for .asc signatures to Maven Central
  • KTC-5457 — No compose resources library added if no resources present
  • KTC-5500 — Add PowerAssert runtime library implicitly when PowerAssert is enabled
  • KTC-5503 — Add incremental caching for publishing to Maven local
  • KTC-5504 — Cleaner logging for publishing to Maven local
  • KTC-5515 — Nicely formatted diagnostics reported by tasks
  • KTC-5552 — Deprecate the watchosArm32 platform
  • KTC-5596 — The run command redirects the app's output preventing interactive TUI
  • KTC-5623 — Allow defining minor versions of compile SDK
  • KTC-5626 — Make AndroidVersion an integer instead of an enum
  • KTC-5683 — Add wasm/app module to the Compose Multiplatform template
  • KTC-5700 — Add diagnostic for minimum supported JDK
  • KTC-5714 — Java incremental compilation shows Unsafe warning on JDK 24+
  • KTC-5720 — Kotlin compiler warning in JDK 24+ about native access by JansiLoader
  • KTC-5721 — Metadata compilation warning in JDK 24+ about Unsafe access by FastJarFileSystemKt

Fixed bugs

  • KTC-4398 — Room KSP iOS Build Failure
  • KTC-4751 — Gradle warning in Android-based example projects
  • KTC-5234 — Unable to publish iOS app: KotlinModules.framework being installed outside the app bundle during xcodebuild archive
  • KTC-5244JAVA_HOME warning logs Object array reference instead of actual path value
  • KTC-5261 — Android AAR dependency is passed directly to kotlinc classpath, causing unresolved references
  • KTC-5312 — amper init fails unclearly when an existing path has a different shape than the template expects
  • KTC-5395 — internal declarations inaccessible in native test source sets
  • KTC-5417 — Internal error when passing invalid compiler args with Kotlin 2.4.0
  • KTC-5423 — Task progress visually messes with stdin when running with kotlin run
  • KTC-5443 — Progress bar and/or terminal progress sporadically stays upon task failure
  • KTC-5445 — Wasm compiler warning with Kotlin 2.4.0+
  • KTC-5449 — Nested BOM-to-BOM dependency declared in Gradle metadata of exte...
Read more

0.11.1

Choose a tag to compare

@joffrey-bion joffrey-bion released this 05 Jun 18:14

Full Changelog: v0.11.0...v0.11.1

Usability improvements

  • AMPER-5391 — Suggest setting KOTLIN_TOOLCHAIN_SIGNING_KEY_PASSPHRASE when PGP password is needed for signing

Fixed bugs

0.11.0

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 20:52

Full Changelog: v0.10.0...v0.11.0

See our release blogpost for the highlights.

Breaking changes

  • AMPER-5201 — Forbid conflicting settings from the templates
  • AMPER-5287 — Publish with base and -jvm suffix when using product type kmp/lib even for JVM-only libs
  • AMPER-5293 — Rename the lib product type to kmp/lib
  • AMPER-5351 — Update default Kotlin version to 2.3.21
  • AMPER-5352 — Update default Compose Hot Reload version to 1.1.1
  • AMPER-5353 — Update default KSP version to 2.3.7
  • AMPER-5354 — Update default Ktor version to 3.4.3
  • AMPER-5355 — Update default SpringBoot version to 4.0.6
  • AMPER-5361 — Update default Lombok version to 1.18.46
  • AMPER-5362 — Update default JUnit Platform version to 6.0.3

New features

  • AMPER-471 — Support publishing to Maven Central
  • AMPER-774 — Support dependency classifier
  • AMPER-3984 — Allow changing URLs for the default repositories (e.g. to use mirrors)
  • AMPER-4852 — Introduce a way to hook custom tasks to commands
  • AMPER-5085 — Provide API to get project root dir from a plugin
  • AMPER-5098 — Support nested templates (templates applied in templates)
  • AMPER-5120 — Provide access to classes (compilation result)
  • AMPER-5262 — Support customizing the published pom.xml
  • AMPER-5268 — Support signing maven artifacts
  • AMPER-5269 — Allow resolving dev versions of the Kotlin compiler
  • AMPER-5289 — Allow controlling whether to publish sourcesJar

Cosmetics

  • AMPER-5356 — Diagnostic that suggests sorting a module list in project.yaml alphabetically

Usability improvements

  • AMPER-4901 — Plugins, not listed in plugins: in project.yaml are not diagnosed
  • AMPER-4987 — Provide a snippet of source in the CLI output on compile errors
  • AMPER-5063 — Show a more specific error if the plugin settings class is not annotated with configurable
  • AMPER-5092 — Confusing UX for task actions without parameters
  • AMPER-5193 — Choose a platform by default when running an application
  • AMPER-5222 — Warning about compose material3 catalog entry for unknown compose versions
  • AMPER-5251 — Subpar error message when trying to run JS or Wasm tests
  • AMPER-5278 — Report all missing required properties as a single diagnostic
  • AMPER-5310 — Do not fail run if only a single app module has platforms that can run on the current host

Performance improvements

  • AMPER-5235 — Reduce serialized dependency graph size

Fixed bugs

  • AMPER-4754show dependencies --filter doesn't show all occurrences of the filtered library
  • AMPER-4905 — Align dependency resolution in CLI and IDE
  • AMPER-5102 — ${pluginSettings.foo} is not red when no settings class is defined
  • AMPER-5259 — Android test dependency is not recognized ("Unresolved reference")
  • AMPER-5260 — 'repositories' does not affect third-party compiler plugin dependencies
  • AMPER-5300 — Warning from KSP about using Unsafe API
  • AMPER-5321 — kotlin-stdlib resolution failures are not shown
  • AMPER-5374 — Set User Agent in dependency resolution calls

IDE Improvements

These changes are available in the Kotlin Toolchain plugin for IntelliJ IDEA 2026.1.2.

New features

  • AMPER-5065 — Provide a quick fix to add a parameter to the task function from its usage in plugin.yaml
  • AMPER-5197 — Add a "Plugin settings class" code vision hint
  • AMPER-5210 — Ability to rename task name in plugin.yaml
  • AMPER-5228 — Quick-fix for PublishingSettingsMissingInDependencies
  • AMPER-5229 — Quick-fix for JvmReleaseTooLowForDependency
  • AMPER-5256 — Add a quick fix to bump JDK version if it is too low for the used JUnit platform
  • AMPER-5266 — Completion for task names
  • AMPER-5297 — Add support for setting platforms of test command in UI
  • AMPER-5311 — Provide a quick fix to add a property to a user-defined @Configurable class
  • AMPER-5317 — Add support for cinterop in IDE

Cosmetics

  • AMPER-5099 — Strange looking highlighting of the numeric value in plugin.yaml
  • AMPER-5277 — Highlight task name usages differently
  • AMPER-5318 — Don't show irrelevant sync stages in the Sync tool window

Usability improvements

  • AMPER-302 — Enter after a dependency: exported doesn't insert a dash for a new item
  • AMPER-4242 — Improve the downloading sources experience
  • AMPER-4890 — The commonizer call is shown as part of the Dependency Resolution stages
  • AMPER-5134 — Main class set in template is always marked as unresolved
  • AMPER-5236 — Provide documentation and navigation for elements in "Add dependency"
  • AMPER-5238 — Add the module name to the tab name for module.yaml
  • AMPER-5249 — Plugin data is always unavailable in dumb mode even if it was read previously
  • AMPER-5265 — Quick fix for adding empty object to tagged value
  • AMPER-5273 — Quick-fix for @Configurable declaration must be an interface
  • AMPER-5274 — Quick-fix to create a @TaskAction function from unresolved ref in plugin.yaml
  • AMPER-5282 — Quick-fix for "@Configurable interface must be public"
  • AMPER-5288 — Diagnose unapplied plugins in IDE
  • AMPER-5305 — Completion for plugin can list local plugin modules which are not already added to the project
  • AMPER-5308plugins completion in the project file should suggest only plugin modules

Fixed bugs

  • AMPER-4236 — Commonizer paths are not correct in Amper IDE plugin - should be truncated with hash
  • AMPER-4266 — Common tests cannot be run from the gutter icon
  • AMPER-4723 — Android SDK is 'partially' unresolved in the IDE if a dependency is provided by the shared module
  • AMPER-4899 — IllegalStateException from plugin.yaml if the plugin is not declared in project.yaml
  • AMPER-5019 — Amper build from IDE generates two nodes
  • AMPER-5040 — Spring library is unresolved if exported in the module file
  • AMPER-5250 — Native tests are not reported to the Test tool window
  • AMPER-5254 — Language features are not propagated to IDE Kotlin facet
  • [AMP...
Read more

0.10.0

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:30

Full Changelog: v0.9.2...v0.10.0

See our release blog post for the highlights.

Breaking changes

  • AMPER-4892 — Remove compose-dev from the default repositories list
  • AMPER-4936 — Move --root and --build-output options to project-aware commands only
  • AMPER-5012 — Align dirs/caches CLI options naming
  • AMPER-5073 — Update default Compose Hot Reload version to 1.0.0
  • AMPER-5074 — Update default KSP version to 2.3.6
  • AMPER-5078 — Update default kotlinx.serialization version to 1.10.0
  • AMPER-5215 — Update default Kotlin version to 2.3.20
  • AMPER-5216 — Update default Compose version to 1.10.3
  • AMPER-5217 — Update default Ktor version to 3.4.1
  • AMPER-5218 — Update default Spring Boot version to 4.0.5

New features

  • AMPER-742 — Add a concept of module description in the DSL
  • AMPER-4470 — kotlinx.rpc compiler plugin support
  • AMPER-4716 — Customizable JDK provisioning and JAVA_HOME handling
  • AMPER-4938 — Apply active maven profiles declared in POM files of transitive dependencies
  • AMPER-4964 — Support for kotlin plugin jsPlainObject
  • AMPER-5084 — Provide API to get the module settings from a plugin
  • AMPER-5095 — Support third party compiler plugins
  • AMPER-5188 — Support multiple arguments in the amper task command

Usability improvements

  • AMPER-808 — Amper unnecessarily downloads Сorretto JDK even though "JAVA_HOME" is already set to a local JDK
  • AMPER-2959 — Improve first-run experience regarding the Amper JRE download
  • AMPER-4827 — Add error diagnostic when using JUnit platform 6+ and JDK < 17
  • AMPER-4828 — Add error diagnostic when using settings.java.compileIncrementally (JPS) with JDK < 16
  • AMPER-4910 — Do not include compilation result into compile Classpath for modules
  • AMPER-4937 — Support/fix "View assertEquals Difference" for file contents (org.opentest4j.FileInfo)
  • AMPER-4959 — Warn the user if JAVA_HOME doesn't point to <jdk_root>/Contents/Home on macOS
  • AMPER-5031 — [DR] Reduce telemetry footprint
  • AMPER-5032 — [DR] In non-transitive resolution mode, all graph nodes should be resolved and their artifacts should be downloaded
  • AMPER-5045 — Compose resources collectors API is still experimental in Amper
  • AMPER-5097 — Maven-like layout cannot be set in a template
  • AMPER-5198 — Plugin ID and enabled property origin should lead to the plugin definition

Performance improvements

  • AMPER-4932 — Get rid of reflection when reading builtin schema

Fixed bugs

  • AMPER-4876 — Unable to run JVM GUI App (Compose multiplatform) with invalid ANDROID_SDK_ROOT
  • AMPER-4929 — NoSuchAlgorithmException: sha512 MessageDigest not available on corretto-11
  • AMPER-4945 — KSP processor can't access local dependencies for web targets
  • AMPER-4995 — Fix documentation links in the schema documentation
  • AMPER-5043 — [DR] Exception during parsing pom.xml containing tag starting from '<Xlint:'
  • AMPER-5051 — Exception while resolving plexus-utils:1.0.2
  • AMPER-5052 — Exception while resolving wagon-http-lightweight
  • AMPER-5059 — Resolution failure for dependency org.roboquant:roboquant-jupyter:3.0.0
  • AMPER-5094 — Unclear error in case of incorrect reference to non-existent property of taskOutputDir
  • AMPER-5106 — plugin.yaml errors are not shown if the plugin is not enabled in any module
  • AMPER-5137 — Inconsistent classloader for plugins
  • AMPER-5196 — Dependency resolution crashes on asm-bom-9.4

IDE Improvements

These changes are available in the Amper IDE plugin for IntelliJ IDEA 2025.3.4 (or above) and IntelliJ 2026.1 (or above), unless specifically mentioned.

New features

  • AMPER-2116 — Support the 'Create Actual for Expect' Quick Fix in Amper (only in IntelliJ IDEA 2026.1+)
  • AMPER-4063 — Implement UI for editing Amper Run configurations
  • AMPER-4531 — IDE support for run with Profiler
  • AMPER-4848 — Suggest to install the Amper plugin in Amper-like projects (only in IntelliJ IDEA 2026.1+)
  • AMPER-4849 — Suggest to install the Android/KMP plugins when detecting modules that need them (only in IntelliJ IDEA 2026.1+)
  • AMPER-4900 — Highlight task names differently from regular mapping keys from the schema
  • AMPER-4961 — Provide a quickfix to enable a configured plugin
  • AMPER-5014 — Support third-party Kotlin compiler plugins on IDE side
  • AMPER-5016 — IDE prints testMetadata events as raw messages instead of processing them
  • AMPER-5079 — Add the way to debug Amper tasks from IntelliJ
  • AMPER-5087 — Run Anything provider for Amper
  • AMPER-5138 — Support Ktor "Add plugins" inlay
  • AMPER-5155 — Have "run all code generation" action
  • AMPER-5205 — Show module description in the documentation of the module

Usability improvements

  • AMPER-57 — Double Enter at the end of the list should put caret back to the outer level (only in IntelliJ IDEA 2026.1+)
  • AMPER-5038 — Tests imported from history or from XML don't have navigation, rerun failed, run single test, etc.
  • AMPER-5114 — Add "Amper JVM Library" to file templates
  • AMPER-5130 — Support native Ktor configurations instead of delegation
  • AMPER-5154 — Tests with attachments nodes do not navigate to source on double click
  • AMPER-5194 — Indicate that a plugin has no settings in completion
  • AMPER-5204 — Improve previews for "This dependency is referenced directly in some modules"
  • AMPER-5214 — Quick action to show direct references of the catalog dependency in the Find tool window

Fixed bugs

  • AMPER-2955 — IntelliJ IDEA: Build should call amper build
  • AMPER-4295 — Amper project with Android can't build from the IDE
  • AMPER-4485 — Support running test file with multiple test classes
  • AMPER-4802 — Run gutter icon is not enabled for non-jvm app modules.
  • AMPER-4926 — "Add dependency on module" doesn't group overloads
  • AMPER-4958 — Exception from Amper-Android support in non-android modules
  • AMPER-4982 — Report ambiguous main class when same class exists in multiple modules
  • AMPER-5009 — "System environment" is not propagated to Amper in MacOS production IDE
  • AMPER-5068 — ...
Read more

0.9.2

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:30
80094bb

Full Changelog: v0.9.1...v0.9.2

Fixed bugs

  • AMPER-2798 — More than a single variant provided: org.junit.jupiter:junit-jupiter-params:5.7.2
  • AMPER-4924 — DR fails resolving javax/ws/rs/javax.ws.rs-api:2.1.1 (property 'packaging.type' is not substituted in URL)

0.9.1

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:29

Full Changelog: v0.9.0...v0.9.1

Fixed bugs

  • AMPER-4885 — Kotlin JVM stdlib extension functions not resolved in IDE for multiplatform modules
  • AMPER-4902 — Internal Error TaskExecutionFailed if the task output does not exist
  • AMPER-4907 — Amper fails resolving netty-codec-native-quic because ${packaging.type} leaks into artifact/sha URL (URISyntaxException)
  • AMPER-4911 — Deadlock in PrintStreamWithUnlockedAutoFlush

0.9.0

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:29
4d1fcd0

Full Changelog: v0.8.2...v0.9.0

See our release blog post for the highlights, and to learn about the tooling improvements.

Breaking changes

  • AMPER-4709 — Raise minimum Kotlin compiler version to 2.1.10
  • AMPER-4736 — Update default Compose Hot Reload version to 1.0.0-rc01
  • AMPER-4767 — Update default JUnit platform version to 6.0.1
  • AMPER-4779 — Update default settings.jvm.release to 21
  • AMPER-4822 — Update default KSP version to 2.3.0
  • AMPER-4823 — Update default Kotlin version to 2.2.21

New features

  • AMPER-4778 — Make 'settings.jvm.release` an integer so it's unlimited
  • AMPER-4834 — Incremental Java Compilation
  • AMPER-4840 — Add a way to disable the welcome banner for the first run

Cosmetics

  • AMPER-4719 — Imperfect error message for an amper update failure

Performance improvements

  • AMPER-345 — Serialize dependency graph
  • AMPER-4177 — Dependency resolution is slow when no changes
  • AMPER-4714 — Bump Amper's runtime to JRE 25

Fixed bugs

  • AMPER-4715 — Delegated Android Gradle builds are run with Amper's JDK instead of the user JDK
  • AMPER-4724 — Fix compose-multiplatform template
  • AMPER-4734 — False positive warnings when the serialization version is set in a template
  • AMPER-4786 — More than two properties are not substituted
  • AMPER-4793 — DR fails resolving com.google.guava:guava:33.4.8-android in JVM context
  • AMPER-4795 — DR start receiving 400 responses from remote repository after some time on TC (https://packages.jetbrains.team/maven/p/kds )
  • AMPER-4796 — DR fails to resolve files declared in Gradle metadata variant where the 'url' has format as '../xxx/yyy.jar'
  • AMPER-4800 — Documentation of test --format option is outdated
  • AMPER-4809 — Spaces in the coordinates break DR
  • AMPER-4819 — DR can't resolve quasi-SNAPSHOT dependency from incremental cache 'com.jetbrains.intellij.platform:jps-build-dependency-graph:253.25908.13-EAP-SNAPSHOT'
  • AMPER-4844 — DR should not reuse cached graph that have potentially recoverable diagnostics
  • AMPER-4865 — Existing dependency is not added to new module in IDE Sync
  • AMPER-4867 — Dependency resolution warnings are not shown in the console
  • AMPER-4873 — Crash on Android commandline tools download
  • AMPER-4884 — amper.bat fails by default on GitHub's Windows runners

0.8.2

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:29
fed2d26

Full Changelog: v0.8.1...v0.8.2

Fixed bugs

  • AMPER-4873 — Crash on Android commandline tools download

0.8.1

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:29

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

Breaking changes

Compose Hot Reload no longer requires to be enabled in module.yaml. You can simply use the new CLI option --compose-hot-reload-mode when running any Compose module with at least the JVM target.

Usability improvements

  • AMPER-4713 — Misleading UX inside IDE when run without compose hot reload

Fixed bugs

  • AMPER-4726 — Gradle properties in pom.xml are not interpolated
  • AMPER-4747jaxb-runtime doesn't transitively resolve jaxb-core

0.8.0

Choose a tag to compare

@joffrey-bion joffrey-bion released this 04 Jun 13:29
e722617

Full Changelog: v0.7.0...v0.8.0

See our release blog post for the highlights, and to learn about the tooling improvements.

Breaking changes

  • AMPER-317 — Remove legacy app product type
  • AMPER-4436 — Use current working dir by default in './amper run', and provide a CLI option to override it
  • AMPER-4439 — Change cache directory from .../Amper to .../JetBrains/Amper
  • AMPER-4441 — Remove Gradle-based Amper
  • AMPER-4442 — Update default Compose version to 1.8.2
  • AMPER-4520 — Simplify fragment hierarchy in android/app and jvm/app modules
  • AMPER-4633 — Update default kotlinx.serialization version to 1.9.0
  • AMPER-4634 — Update default Ktor version to 3.2.3
  • AMPER-4635 — Update default Spring Boot version to 3.5.5
  • AMPER-4637 — Update default Kotlin version to 2.2.10
  • AMPER-4638 — Update default KSP version to 2.2.10-2.0.2
  • AMPER-4690 — Update default Android compileSdk to API level 36

Tip

Our cache directory location changed! It's now nested under the JetBrains directory with other JetBrains tools. To save disk space, feel free to clean up the old Amper cache one directory above. To find where the shared cache is on your machine, run ./amper --help and check the default value for --shared-caches-root.

Warning

As previously announced, the Gradle plugin for Gradle-based Amper projects has now been removed, and there was no 0.8.0 publication of this plugin. Please give a try to the standalone Amper build tool and let us know what you think!

New features

  • AMPER-424 — Make the Kotlin Compiler version configurable
  • AMPER-503 — Possibility to resolve artifacts from a local repository (e.g. maven local)
  • AMPER-652 — Add support for kotlin-power-assert
  • AMPER-3938 — Firework support (Compose Hot Reload)
  • AMPER-4026 — CLI command that shows the dependency graph
  • AMPER-4307 — Make JUnit Console Launcher version customizable
  • AMPER-4355 — Java annotation processing support
  • AMPER-4429 — Spring Hot Swap support
  • AMPER-4432 — Interactive module selection for ./amper show settings
  • AMPER-4469 — Add support for Android SDK API level 36
  • AMPER-4521 — Introduce jvm/lib product type
  • AMPER-4534 — Add freeCompilerArgs for the java compiler
  • AMPER-4597 — Make lombok version configurable
  • AMPER-4599 — Support libs.versions.toml at the project root in addition to gradle/libs.versions.toml
  • AMPER-4636 — Make Compose hot reload version configurable
  • AMPER-4645 — Add 'web' fragment, shared between js and wasmJs
  • AMPER-4649 — Add support of wasmWasi platform

Tip

If you have JVM-only lib modules, try out our new jvm/lib product type! It simplifies the overall experience.

Cosmetics

  • AMPER-4433 — Markdown code spans background is too intense on light theme in CLI help
  • AMPER-4547 — Screen flickers during multi-target builds

Usability improvements

  • AMPER-669 — Provide explanation why CLI needs to download JDK
  • AMPER-814 — './amper publish' publishes ALL modules by default
  • AMPER-4408 — Disable 'Setting value is redundant' diagnostic for default values
  • AMPER-4444 — Report curl errors to stderr
  • AMPER-4527 — Report unresolved modules
  • AMPER-4559 — Warn when the JVM release is lower than local dependencies
  • AMPER-4587 — Support/Fix/Enable View assertEquals Difference in test runs
  • AMPER-4588 — Amper should populate expected and actual attributes in the failed test event
  • AMPER-4605 — Rearrange built-in spring version catalog
  • AMPER-4643 — Remove obsolete Compose version alignment diagnostic
  • AMPER-4661 — Do not drop the whole model if one module has broken product type

Performance improvements

  • AMPER-3911 — Use coroutines debug agent instead of dynamic ByteBuddy install

Fixed bugs

  • AMPER-4241 — Android tests in a KMP library missing Android platform declarations
  • AMPER-4376 — Specifying release variant for iOS build makes it skip build task
  • AMPER-4422 — Unspecified version of exported dependency from dependent module is not resolved
  • AMPER-4427 — Fix the path of annotation processing generating sources
  • AMPER-4447 — Can't resolve dependency on io.github.dokar3:sonner:0.3.8 for runtime classpath of Android application
  • AMPER-4471 — clean command doesn't complete successfully on Red Hat Enterprise Linux 8.10
  • AMPER-4472 — Fail to resolve dependency on 'org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1'
  • AMPER-4492 — Misleading test output from CLI
  • AMPER-4505 — Amper accepts aliases instead of real property names in module files
  • AMPER-4515 — ISE when reading module.yaml with unresolved template
  • AMPER-4539 — Enabling settings.jvm.storeParameterNames fails native compilation
  • AMPER-4546 — IllegalStateException when configuring JVM specific freeCompilerArgs
  • AMPER-4560 — Unable to resolve dependency com.fasterxml.jackson.core:jackson-databind:2.19.2
  • AMPER-4562 — Android tests fail in a multi-module project
  • AMPER-4571 — settings.kotlin.linkerOpts is not taken into account
  • AMPER-4572 — Spring dependency resolving: Missing 'Modulith'
  • AMPER-4579 — KotlinX Deserialization of POM files is too strict
  • AMPER-4581 — Changes in annotation processorOptions do not lead to recompilation
  • AMPER-4583 — Removing sources generated by a Java annotation processor do not cause recompilation
  • AMPER-4598 — Incorrect enum value for JavaVersion has non-human readable error message
  • AMPER-4651 — Do not create fragments for empty aliases
  • AMPER-4664 — Unable to build due to unresolved variables in URL