- This package uses the version format
YY.MDD.commit_count. - The canonical release form is
26.325.7where:26is the 2-digit calendar year325ismonth + daywith no unnecessary leading zeroes7is the git commit count with no zero padding
- Update
pubspec.yamlandCHANGELOG.mdtogether. - Git tags must match the pubspec version and use the form
v<version>. - Example tag:
v26.325.7.
- Hand-written source, test, and config files must stay under
800lines each. - File names must be short and understandable at a glance.
- Prefer names such as
array.dart,ops.dart,io.dart,bridge_ops.cpp. - Avoid meaningless sequence names such as
a.dart,tmp.dart,bridge_a.cpp. - When a file approaches the limit, split by module or responsibility instead of appending more code.
- Generated files and vendored third-party files are exempt from the
800-line limit:lib/src/raw/mlx_bindings.g.dart- anything under
third_party/
- Manage Python dependencies with
uv. - Keep Python dependency declarations in
pyproject.toml. - Prefer
uv syncto create/update the local environment anduv runto execute Python tooling. - Prefer
uv addanduv removeoverpip installor ad-hoc virtualenvs.
- For MLX snapshot preparation and benchmark inputs, use the repository's canonical conversion wrapper:
- Treat that wrapper as the default path for:
- benchmark runs
- parity checks
- reproducible local evaluation
- Do not introduce alternative MLX conversion flows or ad-hoc manual converter invocations unless there is an explicit reason and that reason is documented in the change.
- Refresh the publish benchmark report before releasing:
uv syncuv run --no-project --with mlx-lm --with pillow --with mlx-vlm --with parakeet-mlx python benchmark/publish_report.py
- Validate locally before release:
dart analyzedart testdart pub publish --dry-run
- Manual first publish:
dart pub publish
- GitHub Actions auto-publish can be enabled after the package exists on pub.dev.
- In pub.dev package admin, enable publishing from GitHub Actions for this repository.
- The release tag must match the package version format:
v<YY.MDD.commit_count>. - Example:
v26.325.7