All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Repeatable
--excludesupport formps-check-missing-modulesandmps-fix-missing-modules, allowing expected missing module targets to be ignored in selected.mps/modules.xmlfiles. mps-check-module-namingflags--allow-nested-runtimeand--allow-nested-sandbox, allowing the corresponding nested runtime/sandbox directory layout under a language module directory when it contains a.mpldescriptor.
0.4.0 - 2026-07-09
mps-check-language-versionsnow also reports a model that uses a language with a version differing from the version the owning module records for that language in its descriptor's<languageVersions>, matching the load-time consistency check MPS logs. The hook therefore also runs on module files (*.msd/*.mpl/*.devkit/*.mpst): a changed descriptor is expanded to the models it owns, so a version bump is checked against its models even when no model file changed.
0.3.0 - 2026-07-09
mps-check-banned-model-names— reports model files (*.mps/.model) whose qualified name is one forbidden with--ban, matched exactly. Catches, for example, a generator model left with MPS' default unqualified namemain@generatorwhile allowing a namespacedfoo.bar.main@generator.mps-check-model-naming— reports model files (*.mps/.model) named inconsistently with the model's qualified name. A model in a solution's or language's own model root must be stored under a file name matching its name (full, or with the whole module name truncated, dot- or directory-separated); a model in an embedded generator must be namespaced under its language, catching leftovers from another language and non-unique names likemain@generator.
0.2.0 - 2026-07-07
mps-check-language-versions— reports model files (*.mps/.model) whose<languages>header uses a language withversion="-1".mps-check-no-test-info— reports model files (*.mps/*.mpsr) whose registry instantiates thejetbrains.mps.lang.testTestInfo concept, matched by language and concept id.mps-check-well-formed-xml— reports MPS XML files that do not parse as well-formed XML, catching empty, truncated, and conflict-marked files. It is a zero-configuration wrapper over thecheck-xmlhook frompre-commit/pre-commit-hooks, which is now a dependency.
- Every XML-parsing hook now skips a file it cannot parse instead of failing the whole run; reporting malformed XML is
mps-check-well-formed-xml's job.
mps-check-zero-sized-xmls, superseded bymps-check-well-formed-xml. Configurations referencing the old id must switch to the new one.
0.1.0 - 2026-06-29
Initial release.
mps-check-orphan-modulesmps-check-unbuilt-modulesmps-check-missing-modules/mps-fix-missing-modulesmps-check-orphan-modelsmps-check-orphan-mpsr-filesmps-check-zero-sized-xmlsmps-check-module-namingmps-check-path-variables/mps-fix-path-variables