IDEA doesn't provide backward compatibility policy, and breaking changes can happen in any version, without prior deprecation:
https://plugins.jetbrains.com/docs/intellij/api-changes-list.html
~~Because of that, we can't remove `plugin.until.build`, and have to build Compose plugin for each new version of IDEA separately~~ (see Update)
~~Update 1:
I removed plugin.until.build anyway. In most cases there won't be a broken plugin. And if it will be broken, we will know it during IDEA EAP. Considering this, better when users don't wait the new version, and use already available one.~~
Update 2:
If we omit plugin.until.build, then it has default value +8. Returned, but made the default value big enough.
What we should do after that commit, is make sure, that we don't forget to check this compatibility. And ship a new stable version for every new stable IDEA.
The ideal way is to run `runPluginVerifier` on CI for the latest version, which will fail the build, if our plugin isn't compatible.
But for some reason, there is no EAP for IDEA 2022.3 here:
https://jb.gg/intellij-platform-builds-list
Using one version of Gradle improves build
performance and dev experience by
reusing Gradle daemons, using less storage
& copying for Gradle cache, etc
Remove:
```
__LATEST_COMPOSE_RELEASE_VERSION__
__KOTLIN_COMPOSE_VERSION__
System.getenv("COMPOSE_TEMPLATE_COMPOSE_VERSION")
```
They pollute templates/examples.
Now, all paths where we need to change the version are hardcoded in the script.
Usage:
```
./replace.sh 1.0.0-rc6
```
This script is planned to run on CI
In the future I will add support for changing Kotlin version
* Fix compatibility with Intellij 2021.3
Resolves#1373
* Use Java reflection
* Set Java source & target compatibility for build helpers
Otherwise, Gradle might set Gradle metadata attributes in such way,
that transitive dependencies of published modules are not resolved
* Configure shadow jar manually
Applying plugin configures additional publication,
so that both .jar and -shadow.jar are published,
and additional configurations are added to Gradle metadata.
To avoid unexpected metadata resolution results,
ShadowJar task is now configured manually
* Fix closeStagingRepo JSON request
* Update publishing build-helpers in compose
* Activate preview toolwindow on receiving preview configuration
* Don't show preview toolwindow until a preview is requested
* Add icon to preview toolwindow
* Replace usage of 'de.fuerstenau.buildconfig'
with a custom replacement, because the plugin
does not support Gradle 7.0+ and
there has not been any commit activity in 5 years
(https://github.com/mfuerstenau/gradle-buildconfig-plugin);
* Update 'com.github.johnrengelman.shadow' to 7.0.0
The build `0.4.0-build182` upgrades
`kotlinx-collections-immutable` library
(which is used by the compose runtime) to 0.3.4,
which was published to maven central,
so most usages of sunsetting jcenter repo
can be removed now.
Resolves#557