You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The IdeaVim project is going to be relicensed from GPL-2.0 or later to a more permissive MIT license. In order to do this, we’ll need to collect consent from all the contributors. The original author of the IdeaVim was already contacted and he gave us permission to relicense his work.
Our direction for “keeping IdeaVim as close to Vim as possible” relates not only to the functionality, but to the architecture of the plugin. A few years ago we came to the idea of separating IdeaVim from the IntelliJ API and providing it as a standalone “Vim-functionality library”. This would allow devs to embed a ready-to-use Vim into their own editors and IDEs. With proper implementation of this library, you would have the ability to choose the Vim features that would be supported. For example, in web text input, some pro-features like marks and options may be disabled. This also allows developers to speed up Vim adapting. For example, the first version of Vim support may include only hjkl and other simple commands, while later on you’ll be able to properly implement, test, and release support for macro execution.
In contrast to Neovim (which we like very much and are not trying to “compete” with), this approach allows developers to include Vim support right into the product without installing additional components and starting a separate process on the users’ side.
However, the currently used license (GPL-2.0 or later) limits the options for using and adopting the Vim-engine library. As the license is viral, this would require the final product to be licensed under GPL-2.0 or some compatible license. As we’d like to provide the ability to use the Vim-engine as widely as possible, we’re considering changing the license from GPL-2.0 to MIT, which keeps the current open-source state of IdeaVim but extends the possibility of reuse.
Vim Licensed Code
To support certain complicated Vim features (like non-PCRE regex), a few parts of the original Vim were translated to Java several years ago and relicensed under GPL-2.0 (this is explicitly allowed by the Vim license). After changing the license to MIT, these parts will still be licensed under the original Vim License. So the final IdeaVim plugin will be licensed under MIT except for the 2-3 files under the Vim License.
Fleet
The idea of separating IdeaVim from IntelliJ API and changing the license has been around before the development of Fleet development began. This idea initially arose in light of missing Vim motions in kotlin koans /link/. However, because Fleet now exists, it’s chosen as the first proof-of-concept editor that may get Vim support based on IdeaVim. This would also allow us to improve the API of Vim-engine, as Fleet uses a completely different implementation of the editor. Of course, if we fail to implement Vim support based on Vim-engine for any reason, we’ll implement a Fleet plugin from scratch.
In case of refusal or missing response
IdeaVim was born almost 20 years ago, so we can expect some contributors to be unreachable. Luckily, the original creator of IdeaVim was reachable and has already given his permission to relicense the code.
In case of a missing response or refusal, we’ll be required to revert the corresponding contributions. Of course, all the existing IdeaVim releases will remain under the previous GPL-2.0 license, as the previous version of the IdeaVim sources will remain in the project history from before this commit f5b6ca5.
Are we going to close the sources / restrict contributors / force contributors to sign a CLA?
Definitely not. The entire existing state of IdeaVim will remain the same except the changed license. We may need to revert some contributions, as described in the previous section, but they’ll remain in the project history.
Deadline
As this process may take a while, we’ve set a soft deadline of October 17 31, 2022. We’ll postpone the deadline if, by that date, certain contributors who’ve made vital contributions have not yet responded. If consent for a contribution arrives after the deadline and the contribution has already been reverted, we’ll try to get it back into the project.
Thank you for your work
We are grateful to all the contributors who have contributed to IdeaVim and look forward to their help!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
UPDATE: IdeaVim is now licensed under MIT.
The IdeaVim project is going to be relicensed from GPL-2.0 or later to a more permissive MIT license. In order to do this, we’ll need to collect consent from all the contributors. The original author of the IdeaVim was already contacted and he gave us permission to relicense his work.
In this discussion you can learn more about the reasons behind the license change and ask you questions.
Consent to license change is obtained in “IdeaVim License Change: Obtaining Consent”
Related discussion: “IdeaVim License Change: Associating GitHub Accounts to the Commit Authors”
Umbrella ticket: https://youtrack.jetbrains.com/issue/VIM-2782/IdeaVim-license-change
Why change the license
Our direction for “keeping IdeaVim as close to Vim as possible” relates not only to the functionality, but to the architecture of the plugin. A few years ago we came to the idea of separating IdeaVim from the IntelliJ API and providing it as a standalone “Vim-functionality library”. This would allow devs to embed a ready-to-use Vim into their own editors and IDEs. With proper implementation of this library, you would have the ability to choose the Vim features that would be supported. For example, in web text input, some pro-features like marks and options may be disabled. This also allows developers to speed up Vim adapting. For example, the first version of Vim support may include only
hjkl
and other simple commands, while later on you’ll be able to properly implement, test, and release support for macro execution.In contrast to Neovim (which we like very much and are not trying to “compete” with), this approach allows developers to include Vim support right into the product without installing additional components and starting a separate process on the users’ side.
However, the currently used license (GPL-2.0 or later) limits the options for using and adopting the
Vim-engine
library. As the license is viral, this would require the final product to be licensed under GPL-2.0 or some compatible license. As we’d like to provide the ability to use theVim-engine
as widely as possible, we’re considering changing the license from GPL-2.0 to MIT, which keeps the current open-source state of IdeaVim but extends the possibility of reuse.Vim Licensed Code
To support certain complicated Vim features (like non-PCRE regex), a few parts of the original Vim were translated to Java several years ago and relicensed under GPL-2.0 (this is explicitly allowed by the Vim license). After changing the license to MIT, these parts will still be licensed under the original Vim License. So the final IdeaVim plugin will be licensed under MIT except for the 2-3 files under the Vim License.
Fleet
The idea of separating IdeaVim from IntelliJ API and changing the license has been around before the development of Fleet development began. This idea initially arose in light of missing Vim motions in kotlin koans /link/. However, because Fleet now exists, it’s chosen as the first proof-of-concept editor that may get Vim support based on IdeaVim. This would also allow us to improve the API of Vim-engine, as Fleet uses a completely different implementation of the editor. Of course, if we fail to implement Vim support based on Vim-engine for any reason, we’ll implement a Fleet plugin from scratch.
In case of refusal or missing response
IdeaVim was born almost 20 years ago, so we can expect some contributors to be unreachable. Luckily, the original creator of IdeaVim was reachable and has already given his permission to relicense the code.
In case of a missing response or refusal, we’ll be required to revert the corresponding contributions. Of course, all the existing IdeaVim releases will remain under the previous GPL-2.0 license, as the previous version of the IdeaVim sources will remain in the project history from before this commit f5b6ca5.
Are we going to close the sources / restrict contributors / force contributors to sign a CLA?
Definitely not. The entire existing state of IdeaVim will remain the same except the changed license. We may need to revert some contributions, as described in the previous section, but they’ll remain in the project history.
Deadline
As this process may take a while, we’ve set a soft deadline of October
1731, 2022. We’ll postpone the deadline if, by that date, certain contributors who’ve made vital contributions have not yet responded. If consent for a contribution arrives after the deadline and the contribution has already been reverted, we’ll try to get it back into the project.Thank you for your work
We are grateful to all the contributors who have contributed to IdeaVim and look forward to their help!
Beta Was this translation helpful? Give feedback.
All reactions