You used the MPS built-in wizard to create a RCP build and you built your RCP on it. Now you are testing whether it works and find the RCP complaining about a plugin being incompatible (“MPS Testing: Incompatible with the current [CUSTOM RCP] version”):
Looking carefully through the IDE logs, you may stumble upon a message similar to this:
2019-06-01 13:36:15,795 [ 2136] INFO - #com.intellij.ide.plugins.PluginManager - Plugin 'MPS Testing' can't be loaded because: Plugin since-build or until-build don't match this product's build number
You know you are shipping the 2018.3 version of the MPS Testing plugin with your RCP based on MPS 2018.3, so how it is possible for the two to be incompatible?
If this matches the problem you’re having, I have good news for you because the fix is very simple: add a
file with the proper version number.
When MPS starts, it figures out its own version to be able to decide whether the plugins it finds are actually safe to
load. This mechanism relies on reading a file named
build.txt in the MPS home directory. If the file is absent, the
version is set to
999.SNAPSHOT. If present, the contents of
build.txt are used as the version number.
Some examples of acceptable version numbers are
- The part before the dot is the product version (so
183corresponds to MPS 2018.3,
191is MPS 2019.1).
- The part after the dot is the build number and is either
SNAPSHOTor a number. The number should be at least
1because of the requirements stated by the MPS Testing plugin (
since-build="183.1", see its
The file must be placed in the RCP home directory which is the directory that would contain the
subdirectories. On macOS it would be under
CUSTOM RCP 1.0.app/Contents.
After adding the
build.txt file, the plugins will all be loaded correctly:
You can either use some external means of adding this file to the build or make use of the MPS build language as follows:
- Create a
build.txtfile to serve as a template. It should contain a single line:
Add the following to the build script that generates the distribution files for your RCP:
file ./build.txt replace @VERSION@ -> 183.SNAPSHOT
NOTE 1: You may need to use the reflective editor to enter the
replacecopy parameter since the default MPS editor only shows the parameter collection if it’s non-empty (this is a bug).
NOTE 2: The right-hand side of
replaceaccepts macros if you’d rather not hardcode the version number.