Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

JetBrains Marketplace Publishing Guide

The sqz JetBrains plugin is published to the JetBrains Marketplace and works with IntelliJ IDEA, PyCharm, GoLand, and all other IntelliJ-platform IDEs.

Prerequisites

  • JDK 17+
  • Gradle 8.x+ (install via brew install gradle or sdkman)
  • A JetBrains Marketplace account and plugin token

Note: The plugin does not include the Gradle wrapper. You’ll need to have Gradle installed separately.

Required plugin.xml fields

The following fields in src/main/resources/META-INF/plugin.xml must be set before publishing:

<idea-plugin>
  <id>com.sqz.jetbrains-plugin</id>          <!-- unique, never change after first publish -->
  <name>sqz — Context Intelligence</name>
  <version>0.1.0</version>
  <vendor email="sqz@example.com"
          url="https://github.com/ojuschugh1/sqz">sqz</vendor>
  <description><![CDATA[...]]></description>
  <change-notes><![CDATA[Initial release.]]></change-notes>
  <idea-version since-build="233"/>           <!-- minimum IDE build number -->
  <depends>com.intellij.modules.platform</depends>
</idea-plugin>

Key rules:

  • <id> must be globally unique and must not change after the first publish
  • <version> must be bumped for each publish (semver)
  • <idea-version since-build> controls the minimum compatible IDE version
  • <change-notes> is shown in the Marketplace changelog tab

Build the plugin

cd jetbrains-plugin
gradle buildPlugin
# produces build/distributions/sqz-0.1.0.zip

Run the plugin in a sandboxed IDE to verify before publishing:

gradle runIde

Publish

Set your Marketplace token as an environment variable:

export JETBRAINS_TOKEN=<your-token>
gradle publishPlugin

Or pass it directly:

gradle publishPlugin -Pplugin.verifier.home.dir=/tmp/verifier \
  -Dorg.gradle.project.intellijPublishToken=$JETBRAINS_TOKEN

The publishPlugin task in build.gradle.kts should be configured as:

publishPlugin {
    token.set(System.getenv("JETBRAINS_TOKEN"))
    channels.set(listOf("default"))   // use "eap" for pre-release
}

CI publishing (GitHub Actions)

- name: Publish to JetBrains Marketplace
  run: gradle publishPlugin
  working-directory: jetbrains-plugin
  env:
    JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}

Verify

After publishing, the plugin appears at: https://plugins.jetbrains.com/plugin/<plugin-id>

Users can install from within any JetBrains IDE via Settings → Plugins → Marketplace → search “sqz”.