All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
generate
: added--no-strict-mode
option. Strict mode places additional limitations on generators, but is required for parallel generation.
project-loader
library now has a separate version number and a separate changelog
because it had to receive some backwards incompatible changes.
- MPS 2022.x is now supported:
- commons-logging is used to support both log4j (MPS 2021.3 and below) and java.util.logging (MPS 2022.2 and above) frameworks.
generate
: The new API in 2022.x to determine applicable facets is supported.- Note that MPS 2022.2 seems to have a race condition which makes it wait 100 seconds on startup. A workaround is to
start the backend in test mode (
--test-mode
). This is reported to JetBrains as MPS-35992.
project-loader
: newProjectLoader
and related classes using builder pattern to simplify maintaining backward compatibility in the future.
project-loader
: global methodsexecuteWithEnvironment
andexecuteWithEnvironmentAndProject
are now deprecated, use the newProjectLoader
class instead.
generate
: when there is nothing to generate the exit code is254
now, to distinguish it from the general generation error (exit code255
). This is still treated as an error like in the previous versions, which matches MPS behaviour.
generate
: exit code for a general MPS error is now255
on all systems. Previously-1
was returned, which could be interpreted as255
or-1
depending on the system.
project-loader
: new overload ofexecuteWithEnvironmentAndProject
that allows passing anEnvironmentConfig
, new method to create anEnvironmentConfig
from a list of plugins and macros. These two methods can be used together to customize the configuration of the environment beyond the possibilities offered by the existing methods (e.g. one can add libraries to the environment).
generate
: option--parallel-generation-threads
to specify the number of threads to use for parallel generation. The default is 0, which means no parallel generation.
generate
: options to include and exclude lists of models and solutions, similar tomodelcheck
.
generate
: applicable make facets are now retrieved correctly on MPS 2021.3.
project-loader
: move argparser and jackson dependencies from 'implementation' to 'api' ('runtime' to 'compile' in Maven).
--log-level
flag to set the default log level of backend-specific loggers (categories starting withde.itemis.mps
). The default log level iswarn
but can be set tooff
for backward compatibility.
- modelcheck: added
--result-format=module-and-model
to report on both module and model failures. The default optionmodel
is kept for backward compatibility, but a warning is emitted with a hint for migration.
- generate: IDEA IconLoader is now activated when run in IDEA environment. This is useful when generating cell screenshots using mbeddr documentation language from the command line. If the loader is not activated, any icons are replaced by a single black pixel.
- modelcheck now reports unresolved references.
--environment
option with two values,IDEA
(default, for backward compatibility) andMPS
.
- modelcheck: can now exclude models or modules from checking.
- If
--warning-as-error
was enabled, success would be erroneously reported there were no warnings, only errors.
- Extracted
execute-generators
andmodelcheck
backends along withproject-loader
library from [mbeddr/mps-gradle-plugin
] (https://github. com/mbeddr/mps-gradle-plugin) usinggit-filter-repo
to keep Git commit history. - Added integration tests (
integration-tests
).