Publishing to the JetBrains Marketplace
Not done yet: for now the plugin is served only from diffinery.com (/-/jetbrains/updatePlugins.xml, see
README.md). These are the steps for when Diffinery goes public.
Before the first upload
- Add a
LICENSEfile; the Marketplace asks for a license and shows it. - Create a vendor profile for Diffinery at https://plugins.jetbrains.com (an organization, so more than one person can upload), and a permanent token under My Tokens for uploads from the command line.
- Upload the first version by hand (Upload plugin on the Marketplace), choosing the license and the
categories (Version Controls). The plugin id
com.diffineryis what the server's plugin repository and the docs use, so keep it. JetBrains reviews the first upload, which takes a few working days. - People who installed from diffinery.com's plugin repository get Marketplace updates too (the IDE takes the highest version from any repository), so keep the two on the same version.
Listing
| Field | Value |
|---|---|
| Name | Diffinery (<name> in plugin.xml) |
| Description | <description> in src/main/resources/META-INF/plugin.xml |
| Icon | src/main/resources/META-INF/pluginIcon.svg and pluginIcon_dark.svg |
| Change notes | CHANGELOG.md (add changeNotes to pluginConfiguration in build.gradle.kts to show it) |
| Compatibility | since-build 243 (2024.3), no upper bound; the Marketplace runs the Plugin Verifier on each upload |
| Screenshots | apps/diffinery/docs/images/jetbrains-*.webp (taken by jetbrains-smoke.mjs with DOCS=1) |
Each release
- Release as in README.md.
./gradlew publishPluginwith the token inORG_GRADLE_PROJECT_intellijPlatformPublishingToken(setintellijPlatform { publishing { token = providers.gradleProperty("intellijPlatformPublishingToken") } }first), or uploaddist/diffinery-jetbrains-<version>.zipon the plugin's Marketplace page.- Deploying Diffinery keeps diffinery.com's plugin repository on the same version.