Releases: synapticsim/mach
v1.2.1
v1.2.0
Changelog
Full Changelog: v1.1.0...v1.2.0
General
-
As of Mach v1.1.0, Node 22 is required to run the CLI tool. This has now been reflected in the
enginesfield of thepackage.jsonto provide users with a warning when attempting to install Mach on an older version of Node. -
ThemachBuildandmachWatchfunctions now take an additionalinstrumentsparameter for the instruments that must be built, rather than performing filtering on their own.
Configuration
- Allow loading Mach configuration as a TypeScript file. Mach will now search for both
mach.config.jsandmach.config.tsif a path is not specified with-cor--config.
Bug Fixes
- The CLI will no longer exit with a non-zero exit code when
-for--filteris used to select a strict subset of instruments.
Mach v1.1.0
Changelog
Full Changelog: v1.0.3...v1.1.0
General
-

Improved logging for invalid configuration files, with information on which fields are missing or malformed. -
Removed
eslintas a dev dependency, which may have caused issues for some users with their own eslint configurations. Mach is now using Biome for linting and formatting. -
The exported
machBuildandmachWatchfunctions previously had logging calls and calls toprocess.exit, which rendered them unusable when used directly. This logic has now been moved to the CLI, leaving the two exported functions suitable for use in other projects.
Configuration
-
Allowed passthrough of esbuild configuration options through the
esbuildfield on the configuration object. Please note thatentryPoints,outfile,format,metafile, andbundlemay not be overridden. -
Removedpluginsfields from both instrument and configuration object root. To provide plugins for all instrument, please setesbuild.pluginsinstead. The ability to provide plugins per-instrument has been removed as it was not actively used and added unnecessary complexity to the newesbuildfield.
Environment Variables
-

Environment variables declared withprocess.env.NAMEbut not defined in the current environment will now emit a warning and be replaced withnullrather than be left as-is. This should prevent any runtime crashes due to references toprocessmaking their way into the bundle. -
Expanded type coercion in environment variable replacement to leave numbers as values rather than strings. This was already the case for booleans. -
The "built-in"process.env.MODULEvariable has been renamed toprocess.env.__MACH_IS_MODULEto avoid colliding with potential external variables.
Simulator Package
-
React instrument bundles are no longer inserted directly into theirBaseInstrumentharnesses, but rather included with the simulator-providedInclude.addScriptfunction in order to enable the Coherent debugger to correctly load source map definitions. The React bundle will now reside in the file namedinstrument.jsand the harness ininstrument.index.js(just as before, iffileNameis configured, then that name is used instead ofinstrument). -
Auto-generatedBaseInstrumentharness classes for React instruments are now named_MachInstrument_{{ templateId }}instead ofInstrumentLogic.
Mach v1.0.3
Mach v1.0.2
What's Changed
- fix: output warnings/errors to stderr by @MikeRomaa in #3
Full Changelog: v1.0.1...v1.0.2
Mach v1.0.1
Changelog:
Mach Release v1.0.0
chore: bump package version