Skip to content

Latest commit

 

History

History
91 lines (67 loc) · 2.54 KB

File metadata and controls

91 lines (67 loc) · 2.54 KB

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".