JetBrains Platform
Plugin and extension development for JetBrains products.
Webinar Recording: Uploading a Plugin to JetBrains Marketplace
The recording of the latest episode of the Busy Plugin Developers webinar is now available on JetBrains TV.
In this webinar, Natalia Melnikova from the JetBrains Marketplace team provided valuable insights into the plugin upload process. As a seasoned member of the team, she shed some light on the approval process as well as common reasons for rejection.
If you’d rather read than watch, here’s a short summary:
Plugin upload is now a two-step process
When submitting a new plugin, you now need to first choose between uploading it under an individual vendor profile or an organization profile. If you are new to JetBrains Marketplace, you can create a profile right away by filling out the form; otherwise, you can simply choose your existing account.
This change has been implemented in alignment with recent European regulations (Directive 2005/29/EC) governing consumer protection rights. Now, it’s obligatory to associate each plugin with a particular vendor and specify whether the vendor can be considered a trader or non-trader. Please note that this is required for all plugins irrespective of the vendor’s location (not limited to EU vendors only).
The second step is filling out your plugin’s details and actually submitting it. This step hasn’t changed and should already be familiar to those who have already uploaded a plugin before.
When should you create an “organization” on JetBrains Marketplace?
We recommend creating an “organization” if your plugin has several developers or if you intend to put your plugin up for sale. If you are the sole developer of a plugin, which is the case for the majority of plugins, you can confidently use your individual vendor account. Please also ensure that you use your real name in your individual vendor account.
Individual vendor profile (Edit view)
A sneak peek into the plugin approval process
Our plugin review process consists of four steps:
- Auto-checks during the upload
- Plugin Verifier compatibility checks
- Auto-tests
- A manual review
Auto-checks during the upload
The upload process involves a comprehensive set of checks performed in real time, designed to quickly assess the plugin archive for compliance with the Approval Guidelines. If your plugin file fails to meet the criteria due to issues like invalid parameters, incorrect archive structure, or dependency issues, it may be automatically rejected or flagged for further review.
Plugin upload success dialog
Plugin Verifier compatibility checks
The Plugin Verifier checks binary compatibility between IntelliJ-based IDE builds and your plugin. We strongly recommend conducting this check locally before uploading your plugin to Marketplace.
If the verifier detects any compatibility errors, your plugin will not pass the review. The results of the check will be available in the Versions tab, where you can delve deeper into the technical information about all the issues found.
Plugin Verifier results in the plugin admin panel
Auto-tests
Auto-tests involve installing the plugin, launching the IDE, and ensuring that no exceptions are thrown while the test opens a simple project. These tests are open-source and available on GitHub, but running them locally is not currently a simple task. If you’re interested in running similar tests for your plugin locally, please get in touch with us at marketplace@jetbrains.com, and make sure to include the word “auto-tests” in the subject of your email.
Manual review
After your plugin has passed the three previous automated verification steps, our plugin moderators manually check the plugin’s description and the content provided (such as screenshots and external links), as well as test the basic functionality of the plugin.
It usually takes us up to two business days to manually review your plugin after it’s been uploaded. If it’s been longer than that but your plugin still hasn’t been approved, please check your email inbox (including the Spam folder) for an email from us asking you to make some adjustments to the plugin before we can approve it. In the unlikely event that you haven’t received any such email, please contact us at marketplace@jetbrains.com, and we’ll look into the issue as soon as we can.
Top 5 reasons for plugin rejection
Based on the data in our ticket system, we’ve compiled a list of the most frequent reasons why plugins are rejected:
- Plugin description
Make sure your plugin has a clear and informative description outlining its functionality and use cases. Also please pay attention to grammar and formatting. It’s advisable to preview the description in the IDE Plugin Manager locally before uploading it to Marketplace.
- Compatibility issues
Please take the results of the Plugin Verifier checks seriously. Binary compatibility issues really are a show-stopper.
- Logo
A common oversight is keeping the default logo from the plugin template. If you don’t have a logo of your own, it’s better to remove it completely.
- Source code
If you are distributing your plugin as open-source software on JetBrains Marketplace, you must provide a source code link that we can access. Quite often plugins are rejected because the provided link leads to an inaccessible private repository.
- Plugin name
Plugin names should be kept short and clear. In addition, you have to ensure that your plugin doesn’t infringe on third-party trademarks. Check out the complete guidelines here.
Understanding and avoiding these common pitfalls will significantly increase the likelihood of your plugin being approved faster.
Useful resources:
- Uploading a Plugin
- Plugin Configuration File
- JetBrains Marketplace Approval Guidelines
- IntelliJ Platform UI Guidelines
Do you have an idea for our next webinar? Share it with us in the comments below.