Skip to content

JetBrains/MPS-extensions

Repository files navigation

MPS Extensions

JetBrains MPS Master

official JetBrains project

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.

Maven Dependencies

To use MPS Extensions in your project, add one of the following dependencies to your Maven or Gradle build script:

MPS-Extensions

MPS version nexus status
Master artifacts.itemis.cloud
2025.1 artifacts.itemis.cloud
2024.1 artifacts.itemis.cloud
2023.2 artifacts.itemis.cloud
2022.3 artifacts.itemis.cloud
2022.2 artifacts.itemis.cloud
2021.3 artifacts.itemis.cloud
2021.2 artifacts.itemis.cloud
2021.1 artifacts.itemis.cloud

Building

Run the following commands to build the project:

./gradlew # Mac and Linux
gradlew.bat # Windows

This will download the required MPS version, so you need to be online when executing the build for the first time (later on, the downloaded artifacts will be cached). To refresh the dependencies, you can add the --refresh-dependencies flag. After this step, you can also click Build->Rebuild Project from the main menu of the MPS project. When you open the project, make sure to select the code folder and not the root folder of the repository.

The default task does not run the tests as part of the build. Execute the following command to run the tests:

./gradlew run_tests # Mac and Linux
gradlew.bat run_tests # Windows

See the building page of the documentation for more details.

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

Creating a PR

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.

Automatic Updating Of Dependencies

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/.

About

MPS-extensions aims to ease language development within MPS.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors 55