# SMDummy application versioning SMDummy uses Semantic Versioning with a prerelease identifier: `MAJOR.MINOR.PATCH-CHANNEL.ITERATION` Current displayed version: `1.0.0` - `1` is the major system version. - The first `0` counts feature/minor releases. - The second `0` counts bug-fix/patch releases. The internal package version is `1.0.0-dev.1`. The login page displays the simpler `1.0.0` and shows **Development server** separately, so users can read the version easily without mistaking the build for a final release. - `MAJOR`: incompatible production changes. - `MINOR`: backward-compatible feature releases. - `PATCH`: backward-compatible fixes. - `CHANNEL`: `dev`, `alpha`, `beta`, or `rc` before a final release. - `ITERATION`: the sequence number within that prerelease channel. Recommended progression: 1. Active development: `1.0.0-dev.1`, `1.0.0-dev.2`, and so on. 2. Internal feature-complete testing: `1.0.0-alpha.1`. 3. Wider acceptance testing: `1.0.0-beta.1`. 4. Final validation: `1.0.0-rc.1`. 5. Approved production release: `1.0.0` with `appMetadata.isFinal` set to `true`. The release version is stored in `frontend/package.json` and mirrored by npm in `frontend/package-lock.json`. The environment label and final/non-final status are stored in `package.json` under `appMetadata`. This is the centralized flow: `package.json` → `vite.config.js` → `src/config/appVersion.js` → `src/components/system/AppVersionNotice.jsx` Pages should reuse `AppVersionNotice` instead of hardcoding version numbers, server labels, build identifiers, or development warnings. The Vite build timestamp is generated automatically for every build. It is an exact bundle identifier and does not replace the release version. To increment the current development prerelease using npm: ```powershell npm.cmd version prerelease --preid=dev --no-git-tag-version ``` Review `appMetadata`, run the frontend checks, build a clean bundle, and deploy the complete `dist` directory together. Do not label a release final until the authorized acceptance, privacy, security, backup, and rollback checks pass.