Versioning Policy¶
From v3.0.0 Mirumoji follows Semantic Versioning
and all notable changes are documented in the project
CHANGELOG using the
Keep a Changelog format. A single version string is shared across the python package and the frontend bundle.
Pre-v3.0.0
-
v1.0.0-v2.6.0used semver-like tags but without a formal policy or changelog -
Their history is preserved in
GitHub Releases
v3.0.0 Is v0.1.0
-
Since
Mirumojiunderwent a complete refactoring / rewrite, and has only started followingSemantic Versioninginv3.0.0, it should be treated as an initial release -
This means that the following
v3.xversions MIGHT STILL CONTAIN BREAKING CHANGES -
These changes will be clearly documented in this changelog
Semantic Versioning Summary¶
Version Increments
| Segment | Incremented When |
|---|---|
MAJOR |
A breaking change is introduced |
MINOR |
A new backward-compatible functionality is added |
PATCH |
A backward-compatible bug fix is implemented |
Breaking Changes¶
Mirumoji exposes a single, unified, versioned public API across 3 surfaces
REST API (Server)¶
This is the FastAPI application defined under the server sub-package of
the mirumoji Python Package. Following the release of v4.0.0, any of the following Breaking Changes triggers a MAJOR bump to the unified versioned public API
Breaking Changes
- Removing an endpoint
- Renaming an endpoint path or HTTP method
- Removing or renaming a required request field
- Removing or renaming a response field that clients rely on
- Narrowing an accepted type (e.g.
string | null→string) - Adding a new required request field without a default
CLI (mirumoji commands)¶
This is the Typer + Rich CLI application defined in the launcher/cli sub-package of the mirumoji Python Package. Following the release of v4.0.0, any of the following Breaking Changes triggers a MAJOR bump to the unified versioned public API
Breaking Changes
- Removing a command or sub-command
- Removing or renaming a flag/option that was documented
- Changing the exit-code contract for a command
Frontend¶
This is the React / Vite / Typescript Application which provides the UI for interacting with the REST API. It is versioned alongside the REST API and the CLI, but DOES NOT independently trigger a MAJOR bump to the unified versioned public API
This is because it is built around the REST API and has no useful functionality as a standalone npm module, which is why it's marked as private in package.json