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
engines
field of thepackage.json
to provide users with a warning when attempting to install Mach on an older version of Node. -
ThemachBuild
andmachWatch
functions now take an additionalinstruments
parameter 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.js
andmach.config.ts
if a path is not specified with-c
or--config
.
Bug Fixes
- The CLI will no longer exit with a non-zero exit code when
-f
or--filter
is 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
eslint
as 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
machBuild
andmachWatch
functions 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
esbuild
field on the configuration object. Please note thatentryPoints
,outfile
,format
,metafile
, andbundle
may not be overridden. -
Removedplugins
fields from both instrument and configuration object root. To provide plugins for all instrument, please setesbuild.plugins
instead. The ability to provide plugins per-instrument has been removed as it was not actively used and added unnecessary complexity to the newesbuild
field.
Environment Variables
-
Environment variables declared withprocess.env.NAME
but not defined in the current environment will now emit a warning and be replaced withnull
rather than be left as-is. This should prevent any runtime crashes due to references toprocess
making 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.MODULE
variable has been renamed toprocess.env.__MACH_IS_MODULE
to avoid colliding with potential external variables.
Simulator Package
-
React instrument bundles are no longer inserted directly into theirBaseInstrument
harnesses, but rather included with the simulator-providedInclude.addScript
function in order to enable the Coherent debugger to correctly load source map definitions. The React bundle will now reside in the file namedinstrument.js
and the harness ininstrument.index.js
(just as before, iffileName
is configured, then that name is used instead ofinstrument
). -
Auto-generatedBaseInstrument
harness 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