Markdown 60 lines
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/flash_logo_dark.png">
<img src="assets/flash_logo_light.png" alt="Flash" width="240">
</picture>
<h1>Versioning</h1>
<p><i>Semantic Versioning, single-sourced from the build manifest.</i></p>
<p>
<a href="README.md"><b>README</b></a> ·
<a href="VISION.md"><b>Vision</b></a> ·
<a href="https://ajhahnde.github.io/Flash/"><b>Tutorial</b></a> ·
<a href="REFERENCE.md"><b>Reference</b></a> ·
<a href="COOKBOOK.md"><b>Cookbook</b></a> ·
<a href="SETUP.md"><b>Setup</b></a> ·
<b>Versioning</b> ·
<a href="CHANGELOG.md"><b>Changelog</b></a> ·
<a href="LICENSE.md"><b>License</b></a>
</p>
</div>
---
Flash follows [Semantic Versioning 2.0.0](https://semver.org). The version
is single-sourced from `.version` in `build.zig.zon`; `build.zig` reads it
and exposes it through `flashc --version`, so the runtime string can never
drift from the manifest.
## Pre-1.0
While the major version is `0`, the language and compiler are unstable:
**any 0.x release may introduce breaking changes** to the syntax, the
emitted output, or the CLI. Pin an exact version if you depend on Flash
during this period.
## The road to 1.0
`1.0.0` is the point at which the language specification and the compiler
are considered stable and self-hosted. Until then the version line tracks
capability milestones, not stability guarantees.
## Release lockstep
On every version bump, three files change together:
1. `build.zig.zon` — `.version` (the source of truth).
2. `README.md` — the version badge.
3. `CHANGELOG.md` — the `[Unreleased]` section is promoted to a dated,
numbered release header (Keep a Changelog format).
Tags are created by the maintainer, never automatically.
---
[← Prev: Setup](SETUP.md) · [Next: Changelog →](CHANGELOG.md)