Release Notes
0.2.1 [2026-05-01]
Enhancements:
- Initial release of
matlab-mcr-example, a template gear demonstrating how to package a compiled MATLAB algorithm as a Flywheel gear using the MATLAB Compiler Runtime (MCR). - Added Python gear skeleton (
run.py,fw_gear_matlab_mcr_example/) that invokes a compiled MATLAB binary as a subprocess via a JSON config bridge. - Added compiled MATLAB binary (
matlab_compile/compiled/matlab_example) built frommatlab_compile/matlab_example.musing MATLABR2025b. - Added
matlab_compile/example_compile.shscript to recompile the MATLAB binary usingmcc. - Added multi-stage
Dockerfileinstalling MATLAB Compiler RuntimeR2025bUpdate 5 on top ofmathworks/matlab-runtime-deps, withbase,build,dev, and production stages.
Maintenance:
- Added
pyproject.tomlwithhatchlingbuild backend,Python ~=3.12, and dependenciesflywheel-sdk>=18,<19andfw-gear>=0.3.0,<0.4. - Added
.dockerignore,.gitignore,.gitlab-ci.yml, and.pre-commit-config.yamlwithuv-based tooling andqa-cihooks.
Documentation:
- Added
README.mdwith full gear overview, usage instructions, and guidance for adapting the template to custom MATLAB algorithms. - Added
CONTRIBUTING.mdcovering dependency management withuv, linting withpre-commit, Docker build workflow, and the MATLAB recompile workflow.
0.2.0
Enhancements:
- Pin MATLAB MCR to R2025b Update 5 and drop support for older releases so the template reflects a single, current runtime.
- Base the image on
mathworks/matlab-runtime-deps:R2025b(MathWorks- published) and install MCR on top with the official silent installer, removing the Flywheel-specific intermediate base image while keeping the MCR install steps visible and adaptable. - Reframe the gear as
matlab-mcr-example: rename the Python package (fw_gear_matlab_mcr_example), the MATLAB wrapper (matlab_example.m) and the compiled binary (matlab_example) so the names reflect the template's purpose. The gear's GitLab path is unchanged in this release. - Mark the
text_fileinput as required to match the actual algorithm, which cannot run without it.
Documentation:
- Rewrite
README.mdto clearly frame this as an example/template gear, describe what the example actually does end-to-end, and document the MATLAB and Dockerfile sections in line with the current code. - Add a pointer to the Calling the Flywheel SDK from MATLAB guide for users whose MATLAB algorithms need to call back into Flywheel.
- Remove the stale
FAQ.mdwhose content no longer applied to the current template. - Rewrite
CONTRIBUTING.mdfor the modernized template: switch the toolchain section from poetry to uv, document the multi-stage Dockerfile (base/build/dev/ final), describe the MATLAB recompile workflow viaexample_compile.sh, refresh the pre-commit hook list to match the current.pre-commit-config.yaml, and align the release-notes example with the headings actually used in this file.
Maintenance:
- Make
matlab_compile/example_compile.shrunnable directly from any working directory: it now resolves its own location, compilesmatlab_example.minto./compiled/, falls back gracefully when environment modules are unavailable, and cleans up the generatedbuild.mon exit. README updated to document the new invocation. - Refactor the
Dockerfileinto a multi-stage build (base,build,dev, final) mirroring thecow-saystemplate, so dev tooling (pytest, mypy, etc.) can run against adevtarget while the production image stays free of dev dependencies. Remove thepytestpre-commit hook now that tests run against thedevimage in CI. - Fix the
.dockerignoreallowlist to reference the renamedfw_gear_matlab_mcr_exampleandmatlab_compile/compiled/matlab_examplepaths (previously still pointing at the pre-renamecow_saysnames, which broke the Docker build). - Migrate Python dependency management from poetry to uv.
- Adopt the modern pre-commit hook set from the
skeletontemplate (includingeolfixandpytest). - Simplify Python sources (
run.py,main.py,parser.py) to usepathlib, droputils.py, and align with the skeleton layout. - Switch from
flywheel_gear_toolkit.GearToolkitContexttofw_gear.GearContext. - Drive the MATLAB binary name from a
MATLAB_BINARYbuild arg / environment variable (declared once in theDockerfile, exposed viamanifest.json) instead of hardcoding it. TheDockerfileCOPY/chmod lines andmain.pyall reference the same variable, so forks that rename the binary only need to override one value.
Breaking Changes:
- Remove
matlab_compile_2020b/and renamematlab_compile_2024a/tomatlab_compile/. Users must recompile their MATLAB binary against R2025b for the runtime to succeed.
0.1.0
- Initial Development