The MPS extensions aim to ease language development within MPS. They are maintained by itemis, JetBrains, and the open source community, and the development is closely aligned with the development of MPS.
Join the discussion on Slack in the #mps-extensions room.
To use MPS Extensions in your project, add one of the following dependencies to your Maven or Gradle build script:
MPS version | nexus status |
---|---|
Master | |
2025.1 | |
2024.1 | |
2023.2 | |
2022.3 | |
2022.2 | |
2021.3 | |
2021.2 | |
2021.1 |
See the building page of the documentation.
If you want more information on the individual extensions, please see our documentation. The documentation's source is in this repository's docs
folder if you would like to contribute. To preview the documentation, run the following command:
./gradlew previewDocs # Mac and Linux
gradlew.bat previewDocs # Windows
Please add your change to the changelog located at de.itemis.mps.extensions.changelog
. To update it, rebuild the solution and run ./gradlew copyChangelog
or gradlew.bat copyChangelog
to regenerate the CHANGELOG.md
file. Commit the changes in the MPS model and in the text file.
When you open a PR, the build on TeamCity needs to be approved by a colleague at itemis, and a PR review is necessary. If this doesn't happen, please ask in the Slack channel. Often, builds fail at the following step: Check for dirty files.
If that happens, some migrations were not executed in the project. Run ./gradlew migrate remigrate
or gradlew.bat migrate remigrate
on the command line to execute them and commit the changes. You can also copy the diff from the build log and apply it with git apply
as a patch. You need to strip the line numbers, though:
- Mac:
pbpaste | sed 's/^.\{13\}//' | git apply
- Windows Powershell:
Get-Clipboard | ForEach-Object { $_ -replace '^.{13}', '' } | git apply
- Linux solution 1:
xclip -o | sed 's/^.\{13\}//' | git apply
- Linux solution 2:
xsel --clipboard --output | sed 's/^.\{13\}//' | git apply
Please select the correct target branch for the PR. The master branch builds against the MPS master and is most likely not the branch you want to contribute to. After the PR is merged, a bot will automatically open a PR to merge the changes into the next maintenance branch. You don't have to do anything at the last step.
The Renovate bot updates the dependencies automatically for the master branch or optionally other branches and creates PRs for those changes. The configuration can be found at renovate.json5. The documentation for the configuration can be found at https://docs.renovatebot.com/configuration-options/.