Skip to content

Publish scip-kotlin-analysis with JetBrains-only jars bundled - #1070

Merged
christoph-sg merged 2 commits into
mainfrom
publish-scip-kotlin-analysis
Nov 5, 2026
Merged

christoph-sg merged 2 commits into
mainfrom
publish-scip-kotlin-analysis

Conversation

@christoph-sg

@christoph-sg christoph-sg commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

The v0.14.0 release-cli job failed because org.scip-code:scip-java:0.14.0 on Maven Central depends on scip-kotlin-analysis:0.14.0, which was never published. The documented coursier launch org.scip-code:scip-java:0.14.0 is broken for the same reason. The Maven publish itself succeeded.

scip-kotlin-analysis couldn't simply be published as-is: the Analysis API *-for-ide artifacts and com.intellij.platform:kotlinx-coroutines-core-jvm only exist on packages.jetbrains.team, so its POM would point at artifacts Central users can't download.

Changes

  • scip-kotlin-analysis is now published. The JetBrains-only jars are merged into its jar (~11 MB), so the POM and Gradle module metadata only reference Maven Central artifacts. kotlin-compiler stays a non-transitive dependency (wildcard exclusion in the POM).
  • Drop kotlin-compiler-common-for-ide. kotlin-compiler 2.4.0 already contains all analysis/decompiler classes it was added for, and its only unique classes are daemon/build-tools/preloading code. The ~5,500 classes both jars share differ in bytes, and kotlin-compiler already came first on the classpath, so its copies were the ones in use. Dropping it removes all class overlap from the merged jar.
  • Declare kotlin-stdlib explicitly; it previously only arrived transitively via the coroutines fork (kotlin.stdlib.default.dependency=false).
  • Build the release launcher (and the getting-started instructions) with cs bootstrap --assembly instead of --standalone. The standalone launcher keeps dependency jars nested inside the launcher, so the Kotlin compiler can't locate extensions/compiler-cli-root.xml and Kotlin indexing fails with Unable to find extension point configuration (thanks @chrapkowski-sg).

Verification

  • Published a snapshot to Maven Local, then cs resolve and cs bootstrap of scip-java using only Central + Maven Local.
  • Reproduced the --standalone failure on Kotlin indexing; the --assembly launcher produces output byte-identical to a plain cs launch classpath, and scip-java index with it indexes a mixed Kotlin/Java Gradle project (both documents present in index.scip).
  • Ran the published scip-kotlin-analysis via coursier on the Kotlin snapshot case (15 files): output is byte-identical to the previous build's classpath.
  • :scip-kotlin-analysis:test and :scip-snapshots:check pass.

After merging, tagging v0.14.1 should publish a resolvable release and let the release-cli job attach the launcher.

scip-java 0.14.0 depends on scip-kotlin-analysis, which was never
published, so org.scip-code:scip-java:0.14.0 does not resolve from
Maven Central and the release-cli job failed.

The Analysis API *-for-ide artifacts and the IntelliJ coroutines fork
only exist on JetBrains' repository, so they are merged into the
scip-kotlin-analysis jar and the published POM references only Maven
Central artifacts.

kotlin-compiler-common-for-ide is dropped: kotlin-compiler 2.4.0 already
contains the decompiler classes it was added for, and kotlin-compiler
already won every class the two jars share on the classpath.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1aac9-e7b5-72af-ad93-8f4a2a058fac
Co-authored-by: Amp <amp@ampcode.com>

@chrapkowski-sg chrapkowski-sg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In release-cli.yaml replace standalone with assembly for cs bootstrap otherwise I'm getting error:

Unable to find extension point configuration
extensions/compiler-cli-root.xml (cp: null)

The --standalone launcher keeps dependency jars nested inside the
launcher jar, so the Kotlin compiler cannot locate
extensions/compiler-cli-root.xml on disk and Kotlin indexing fails with
"Unable to find extension point configuration". An --assembly
launcher merges the dependencies into a single jar, which works.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1aac9-e7b5-72af-ad93-8f4a2a058fac
Co-authored-by: Amp <amp@ampcode.com>
@christoph-sg
christoph-sg enabled auto-merge (squash) November 5, 2026 09:36
@christoph-sg
christoph-sg merged commit 7cfa63d into main Nov 5, 2026
29 checks passed
@christoph-sg
christoph-sg deleted the publish-scip-kotlin-analysis branch November 5, 2026 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants