Opensource plugin: What are the concrete steps to get started?

I have already discussed with Mikhail, but I will recap it here. One of my plugins is the Keypromoter X with currently 101k downloads. What I would like to try is to keep it open-source and still put it on the marketplace. I'm aware of all the downsides and that users can simply compile it themselves. However, I see the marketplace as an opportunity to get free of this useless donation button. Donations simply don't work and in my case, they are highly unfair distributed. For my other language plugin, only a few people donate, but they donate far too much money, while the vast majority simply takes without giving "anything" back (be it joining dev, testing, bug-fixes, bug-tracking, or money). And as OSS dev you do have expenses besides the work you put in (like the web space, or paying for GitHub LFS).

So what I want to try is to keep the Keypromoter X code open-source and only make sensitive things (plugin.xml with product spec or license check) private. I have a few bug-fixes in the pipeline and basically, I could start giving the Marketplace a try. Therefore, here are some specific questions that might be of interest to others:

1. What do I have to do to get a product code from Jetbrains? Simply write an email to plugins-admin?

2. Am I right, that the plugin.xml and the licensing code should not appear publicly (at least for the moment)?

3. In the demo-plugin, the licensing check is an action. Did I understand it correctly that I should check the license on IDEA startup and if it fails, I simply restrict features or turn the plugin off? I may not see this clearly atm, but e.g. a language plugin consists of many different extensions and checking everywhere if the license is valid seems not the right way. How to handle correctly when the license is invalid?

4. Let's assume I obtained a product-code and I adjusted the plugin code to the best of my knowledge. What then? Do I simply get in contact per mail and we try things out?

5. Let's assume the plugin is adapted and ready for publishing. Do I simply publish it to the current JB repository?

A lot of stupid questions, I know, but I try to see the whole picture and those details were not outlined in the Marketplace FAQ.

1 comment
Comment actions Permalink
Official comment

Hi,

We have been in touch around these questions, but let me comment here so that others can read it, too. Sorry for not addressing them here before.

>1. What do I have to do to get a product code from Jetbrains? Simply write an email to plugins-admin?

As described in https://intellij-support.jetbrains.com/hc/en-us/articles/360000461360-2-Obtain-a-Product-Code-from-JetBrains, you can reach out to plugins-admin@jetbrains.com or marketplace@jetbrains.com and we'll handle the request for a product code.

>2. Am I right, that the plugin.xml and the licensing code should not appear publicly (at least for the moment)?

There are no limitations from our side, you can use it publicly, if you like.

>3. In the demo-plugin, the licensing check is an action. Did I understand it correctly that I should check the license on IDEA startup and if it fails, I simply restrict features or turn the plugin off?

Yes, that's correct. Either restrict features or turn the plugin off.

>I may not see this clearly atm, but e.g. a language plugin consists of many different extensions and checking everywhere if the license is valid seems not the right way. How to handle correctly when the license is invalid?

Our recommendation would be to add this check to at least a few places, so that it's harder to discover if there would be a targeted hacker attack on the plugin (obfuscation should help to prevent it, too.)

>4. Let's assume I obtained a product-code and I adjusted the plugin code to the best of my knowledge. What then? Do I simply get in contact per mail and we try things out?

We have finally got a demo instance of the whole marketplace solution - please go through https://intellij-support.jetbrains.com/hc/en-us/sections/360000168620-Trying-Out-the-Marketplace, article https://intellij-support.jetbrains.com/hc/en-us/articles/360000464820-6-Test-the-plugin-licensing-on-the-demo-instance covers the whole process in detail.

>5. Let's assume the plugin is adapted and ready for publishing. Do I simply publish it to the current JB repository?

When the marketplace is enabled on production instance - yes, but it's not there yet.

Thanks!

Please sign in to leave a comment.