Meta Programming System

Design your own Domain Specific Language with full development
environment.

MPS is a language workbench that targets Domain-specific Languages. With MPS you can design your
own extensible DSLs and start using them right away to build end-user applications. Unique
technology of projectional editing allows to overcome the limits of language parsers, and build
much richer DSL editors, such as ones with tables and diagrams. MPS is gradually being adopted
by both academia and the industry for areas as varied as electrical engineering, embedded
software development, big data analysis, tax legislation encoding and insurance.

The users have designed rich DSLs with MPS, which now serve their teams to effectively implement
and maintain the core business logic of their systems.

MPS is an Apache 2 OSS Project. The source code as well as documentation are hosted at JetBrains
and mirrored at GitHub. The team consists of JetBrains employees, but there also have been
numerous external contributions to the project over time.

Watch this short two-minute introductory
screen-cast to get an idea of what JetBrains MPS is and what you could use it for.

Contributing to the JetBrains MPS Project

File a Bug Report

Bug reports are the simplest way you can get involved. Bug reports take little time to file and
are very helpful to developers. When you discover a problem, please report it. Make sure you
provide information about your environment (OS, JDK and MPS version), steps to reproduce the
issue, as well as a textual description of the problem. You can file a bug in JetBrains MPS
YouTrack bug database. Before submitting an issue, you may also want to search for already
submitted ones describing the same problem - and if you find one, feel free to vote for it.

Create Unit Test Reproducing the Problem

Bug reports are helpful, but as you probably know, most of the problems can be reproduced/checked
by automated JUnit tests. It's much more easy and convenient for our developers to reproduce the
problem by running a test case instead of manually going through a list of steps to reproduce
the bug. If you invest a little bit more time and create a JUnit test reproducing your problem,
we will usually be able to fix/process your bug faster.

Contribute Code Indirectly

If you would like to improve the MPS code, you can submit a patch by attaching it to
corresponding request in the JetBrains MPS YouTrack bug database. You can either file a new
issue with the patch attached, or attach a patch to an issue submitted by another user. A
developer will review your patch and, if it meets the quality criteria and fits with the rest of
the code, you'll be notified about the acceptance of the patch. As it was already mentioned,
patches having a unit-test attaches should be processed faster.

Contribute Code Directly

Although the main Git repository is located at JetBrains, we keep a
public mirror at GitHub. The mirror is primarily
meant to be an easy-to-use repository for external contributors, who can contribute code
effortlessly through pull requests.

Sharing and Co-Hosting Your Oss Project

If you are building an open-source project with MPS, please consider the option to host
Continuous Integration for your project at TeamCity,
right next to the MPS project itself, with no charge. This way you’ll be able to effortlessly
build your project against the newest (or any other) version of MPS. If this is something
that your project could benefit from, please let us know.

Contribute Documentation

The better the concepts are explained the more enthusiasts will join us in the MPS community. If
you’re interested in collaborating, let us know. We can grant you write permission to the
MPS
Confluence space, discuss your ideas and point you to the the biggest sore-spots.

Contribute Tutorials, Presentations or Videos

If you have created a tutorial or a video on MPS, please let us know and we will share it on the
project website for other MPS enthusiasts to benefit.