-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API dependency improvement checklist #209
Comments
This page gives a brief insight into usage statistics. The main takeaway is as follows:
With this approach, 80% of the people would be supported, whereas 2019.3+ would only support 50%. I think 80% is sufficient. Therefore, the current support level could be narrowed from 2017.1+ to 2019.1+; note that this does not include the 2019.2 release which introduced the Kotlin UI DSL. Therefore, these features will probably not be supported until the first (or maybe second) major release of 2020, i.e. around june/july of that year. |
As an alternative to using the Kotlin UI DSL, take a look at using |
This one took a lot of effort. Turns out that for some reason on Windows the tests thought they were running in a headless environment, so I had to manually set headless to false in build.gradle. I had to rewrite DataInsertActionTest completely because apparently the actions can no longer be mocked. Additionally, I fixed a few things for #209.
The checklist below has been replaced by separate issues to allow easier tracking and separate comment threads. These issues have been marked with the api-update tag.
Originally, the plan was to provide compatibility with IDE versions up to two years old. However, updating the dependency would allow usage of new features, in particular the Kotlin UI DSL. At the same time, supporting only the latest version would mean that some users are left out, and I don't think I can justify this by saying that the newer features are strictly necessary. At the same time, support for two years may be excessive. Many major plugins such as Scala, Kotlin, and Python target the latest IDE version only. Some plugins have a separate channel for older releases, but I think that that is too much trouble for a small plugin such as Randomness.
I have therefore made the decision to support IDEs only up to one year. That is, if the latest release is
20xx.y
, then Randomness should support at least[20xx - 1].[y + 1]
. For example, if the latest version is 2020.3, then support at least 2019.4 (which does not exist, so support at least 2020.1) The comment below explains the rationale behind this decision in more detail.Checklist
Upgrading to a newer version would allow for the following improvements.
ExpandableTextField
in the symbol set table. (See also Improve UI/UX #198.) (Fixed in Add expandable text fields for symbol sets #248.)#getPreferredFocusedComponent
in configurables to auto-focus on a particular element. Currently not completed: Property is unused in settings dialog.#getPrivacyNoticeText
inErrorReporter
to inform users of privacy considerations when submitting an error report. (Fixed in Remove usage of internal method #333.)LINK_PLAIN_ATTRIBUTES
instead of customSimpleTextAttributes
inSymbolSetTable
. (Fixed in Update dependencies and stuff #345.)ServiceManager.getService(X::class.java)
toservice()
. (Fixed in Update dependencies and stuff #345.).form
files. (See also Migrate UI to Kotlin #157.) Currently not mature enough: Lacking documentation and stability.#getVersion
inErrorReporter
is not available before API version 201.The text was updated successfully, but these errors were encountered: