Full Changelog: v0.5.0...v0.6.0
See our release blog post for the highlights, and to learn about the tooling improvements.
Breaking changes
- AMPER-4188 — Update Kotlin to 2.1.20
- AMPER-4161 — Update default Kotlin language version to 2.1
- AMPER-3764 — Update default Compose version to 1.7.3
- AMPER-4191 — Update default kotlinx.serialization version to 1.8.0
- AMPER-4192 — Update default KSP version to 2.1.20-1.0.31
- Gradle-based Amper
- The Compose version can no longer be customized when using Gradle-based Amper, and only
1.6.10
is supported. Because our default is now1.7.3
, thesettings.compose.version
has to be explicitly set to1.6.10
. - Gradle <= 8.6 is no longer supported. If you’re using Gradle-based Amper, please update Gradle to 8.7+ (we recommend Gradle 8.11.1, which is the maximum version in Kotlin’s compatibility range)
- The Compose version can no longer be customized when using Gradle-based Amper, and only
New features
- AMPER-632 — Support building and running for an iOS device from Amper CLI
- AMPER-871 — Generate user-accessible Xcode project for ios/app modules
- AMPER-3627 — Implement iOS Application Signing Support in Standalone Amper
- AMPER-3818 — CLI command to generate tab-completion scripts
- AMPER-3819 — Support the -v option as an alias for --version
- AMPER-3902 — Graph-based diagnostics reporting in DR
- AMPER-3937 — Support passing JVM arguments to ./amper run and ./amper test
- AMPER-3941 — Support running specific tests via Amper CLI
- AMPER-3944 — Amper firework: the first experimental prototype
- AMPER-4014 — Provide IDE-friendly output in Amper CLI test
- AMPER-4025 — Support test stdout/stderr/metadata reports and flow structure in teamcity format
- AMPER-4079 — Support distinguishing test overloads via test filters
- AMPER-4153 — Group introspection commands (tasks, settings, modules) under a general 'show' meta-command
- AMPER-4182 — Interactive 'amper init' without template argument
Enhancements
- AMPER-3774 — Add more info to SDK version completion
- AMPER-3942 — If the platform is declared in the product type, generate *all* fragments from the default hierarchy template that contain this platform
- AMPER-4157 — Add Kotlin language version 2.2 to allowed values
- AMPER-4198 — Update JBR to 21.0.6-b895.97
Cosmetics
- AMPER-3272 — Warn in standalone version Android build: This will fail with an error in Gradle 9.0
- AMPER-3834 — Add colors to distinguish log levels in console output
- AMPER-3835 — Show bigger units for long elapsed time in running tasks
- AMPER-3923 — Kotlin compiler logs its arguments at INFO level
Usability improvements
- AMPER-396 — CLI: Provide coroutine stacktraces
- AMPER-579 — DR: State clearly that artifact was not found
- AMPER-580 — DR: Fail resolve if platform support was not found
- AMPER-3634 — Download the Amper distribution and JRE during `./amper update`
- AMPER-3826 — Implement tracing of dependent values
- AMPER-3904 — Always download kotlin-stdlib sources in Amper
- AMPER-4082 — Test stdout/stderr is not reported if printed from other threads than the test thread
- AMPER-4136 — Test stdout/stderr is reported in bulk at the end of the test when using teamcity format
Fixed bugs
- AMPER-526 — Building of 'examples.pure/multiplatform' failed due to 'unresolved reference: Screen'
- AMPER-713 — The command ./amper task :compose:runIosAppIosSimulatorArm64 opens an outdated simulator.
- AMPER-778 — Dependency resolution should reasonably do retries
- AMPER-1068 — Duplicate error messages from Dependency Resolution
- AMPER-2333 — Regression: Gradle-based Amper doesn't treat Java files as source files anymore
- AMPER-2956 — Bad code is green when using a class from a transitive runtime dependency
- AMPER-3443 — "Hashes don't match" when a cache SNAPSHOT version changed in the repository
- AMPER-3619 — @iOS settings are not propagated properly in case when only a few ios platforms specified but not all of them
- AMPER-3817 — Exported module dependencies should be resolved against consuming module target platforms, not against the broader list of target platforms of the module where exported dependency is defined
- AMPER-3846 — Fail to resolve checksum for retrofit2
- AMPER-3870 — iOS Version Launch Error for ported app.Resources not connected.
- AMPER-3914 — No telemetry for model-agnostic commands or if we exit before the project root is determined
- AMPER-3957 — Duplicate classes in Android (compose-multiplatform-room)
- AMPER-4001 — Amper sometimes outputs invalid OTLP traces
- AMPER-4010 — Dependencies graph resolution fails due to unlimited parallelism
- AMPER-4018 — Commonizer should not be called against jvm target
- AMPER-4021 — CommonizeNativeDistributionTask fails with IllegalMonitorStateException
- AMPER-4053 — Network problem during build of project with a lot of dependencies
- AMPER-4055 — java.lang.IllegalStateException: File <...> was returned from dependency resolution, but is missing on disk
- AMPER-4081 — Failed tests stacktraces are staggered with `--format=teamcity`
- AMPER-4137 — DR hangs on trying to resolve artifact with invalid version
- AMPER-4143 — amper bash script doesn't support quoted args in AMPER_JAVA_OPTIONS
- AMPER-4149 — Dependencies for spring-boot-starter-web can't be resolved
- AMPER-4150 — Variable substitution in POM issue
- AMPER-4158 — Published pom.xml (JVM modules) contains multiplatform dependencies
- AMPER-4159 — Red code in Amper gradle-based project
- AMPER-4164 — ./amper update fails with random errors depending on the current and target versions
- AMPER-4175 — Guava transitive dependency problem
- AMPER-4193 — Duplicate content roots detected on import of Amper gradle-based project