Skip to main content
Zimei TechnologyEnterprise AI · Development and delivery
EnglishEN
Discuss a project

Enterprise AI Project Wiki · Environments, versions, and release

Version number

Also calledSoftware version number · Version identifier · Release version

Definition

A version number is an identifier assigned under an agreed rule to a particular state of a changing object so that the state can be distinguished, referenced, ordered, or related to other states. A useful project version number resolves to a defined object and change record. If the same number can point to different content, or a changed number cannot be tied to an object, it is display text rather than reliable support for deployment, acceptance, rollback, and incident diagnosis.

A version number is an identifier, not a quality verdict

Version numbers answer which state everyone is discussing. A customer reporting a defect, a tester saving a result, a pipeline deploying an artifact, and an operator rolling back must be able to reference the same object. Without a stable identifier, the phrase latest version changes with time, environment, and speaker.

A larger number does not prove greater stability, security, or acceptance. Version `2.0.0` might be an untested candidate while `1.8.12` is the live production version. Release, acceptance, and production status require separate test, approval, and deployment evidence.

Meaning comes from policy. Two products can both display `X.Y.Z`, while one follows public-API compatibility under Semantic Versioning and the other uses internal milestones. The shape alone does not reveal change size.

How common versioning schemes work

Semantic Versioning

For a declared public API, `MAJOR.MINOR.PATCH` means incompatible API change, backward-compatible functionality, and backward-compatible fix respectively. It supports prerelease identifiers and build metadata that does not affect precedence.

Monotonic release sequence

Numbers such as `v17` or `release-42` make order clear but communicate neither compatibility nor change type, so they require a change log.

Calendar or cycle version

A year, month, quarter, or iteration such as `2026.08` communicates schedule or release period, not compatibility. The policy still handles backports and several builds in one period.

Four-part or platform-specific version

Some runtimes use major, minor, build, and revision fields. .NET has package, assembly, file, and informational versions with different consumers and runtime effects.

Prerelease identifier

Names such as `alpha`, `beta`, and `rc.1` normally indicate a not-yet-normal release. Under SemVer, a prerelease has lower precedence than the corresponding normal version; the project also defines where prereleases may run.

Product or composite version

A customer-facing product version can represent many components, but a manifest must map it to actual frontend, backend, database, model, and configuration versions rather than forcing every component to share one number.

What other identifiers prove

IdentifierWhat it does and does not establish
Version numberNames a state under a declared policy for communication and comparison; it proves content only after it is bound to an object.
Build numberDistinguishes a CI/CD build or pipeline run and traces creation. One product version can have several builds.
Git commit IDIdentifies an immutable source commit and history, but not build environment, dependency resolution, configuration, database, or external model state.
Artifact digestA content digest verifies identical binary, image, or manifest bytes. It is machine-friendly but does not express business compatibility.
Tag or aliasA mutable pointer such as `latest`, `stable`, or `production` conveniently selects a current target. Once moved, the same name references another object and is insufficient historical evidence.
Release date or nameDescribes an external release event or marketing name that may group several versions; a built version might never be released.

What an executable version policy defines

  1. What is the versioned object?

    Name the product, service, API, database schema, configuration package, application, or model. Objects with different lifecycles should not be forced under one number.

    Record: object, owner, storage location, and scope.

  2. What do format and increments mean?

    Define fields, characters, ordering, major/minor/patch or calendar semantics, and rules for zero versions, branches, and emergency fixes.

    Record: policy with valid and invalid examples.

  3. When is a number assigned and frozen?

    State when development, candidate, acceptance, and formal release numbers are created and whether any content change requires a new number.

    Record: generation event, freeze gate, and mutation rule.

  4. How is it bound to immutable content?

    Attach source commit, build run, lockfile, artifact URI and digest, migration, and configuration baseline.

    Record: machine-readable version or release manifest.

  5. What compatibility and support are promised?

    If the number communicates API, format, or client compatibility, define the surface, deprecation window, upgrade path, and support life.

    Record: compatibility matrix, breaking changes, and support policy.

  6. Who can release or move an alias?

    Restrict formal version creation, retagging, artifact overwrite, and movement of `stable`, and retain an audit trail.

    Record: repository protection, signing, approval, and tag log.

  7. Where can users see it?

    Pages, APIs, logs, health endpoints, and support material should reveal enough to diagnose an object without leaking sensitive internals.

    Record: version-query and support procedure.

Using version numbers in a project

  1. Choose product and component levels

    Define the customer-facing product version and list application, service, database, configuration, and content components that need independent tracking.

  2. Generate the mapping automatically

    Write version, commit, build, dependencies, and digest at build time instead of copying them manually into documents.

  3. Promote one artifact across environments

    Prefer the same immutable artifact through test, UAT, staging, and production. A rebuild creates a new build and digest even when visible version text is unchanged.

  4. Bind test evidence

    Cases, defects, performance reports, security scans, and acceptance decisions record version, build, and environment. A fix is a new object and is retested.

  5. Bind deployment state

    Each environment records which product and component versions were deployed, when, by whom, with which configuration, migration, and digest.

  6. Retain rollback objects

    Keep earlier artifacts, configuration, migration compatibility, and recovery instructions under policy. A number is useless when its content cannot be recovered.

Why enterprise AI needs a composite version manifest

Application and orchestration

Record frontend, backend, workflow, agent graph, tool definitions, and business rules. Tool arguments or orchestration can change outcomes without an application code change.

Model version or snapshot

Record provider, model ID, fixed snapshot or registry version, region, and deployment name. Mutable aliases such as `latest`, `default`, and `stable` require the concrete version resolved at the time.

Prompts and safety policy

Version system prompts, templates, output schemas, content filters, guardrails, and human-approval rules instead of preserving only the latest text.

Knowledge and retrieval

Record source batch, permission snapshot, cleaning, chunking, embedding model, index build, retrieval, and reranking. A file or index name cannot reproduce knowledge state.

Evaluation set and scorer

Samples, reference answers, rubrics, reviewer calibration, and automated judges also change. Results identify both system and evaluation version to remain comparable.

External services and runtime settings

Include model parameters, tool API versions, third-party rules, feature flags, and material environment configuration. For an unpinned managed dependency, record observation time, change policy, and revalidation trigger.

Concepts commonly confused with version number

Related conceptDifference
VersionA version is the concrete state of an object at a point; its version number is the identifier assigned to that state. A version also includes content and metadata.
BuildA build is the process or result of producing an artifact. Retries, platforms, and changed dependencies can create several builds under one displayed version.
ReleaseA release is the business and technical event that makes a version available to an audience. A version number does not prove release.
Acceptance versionAn acceptance version is the complete baseline formally designated for acceptance. The version number is only one identifier and cannot define acceptance scope alone.
Production versionThis is the object actually running in production and must be read from deployment state, not inferred from numeric order.
Change logA change log explains what changed, why, and with what impact between versions. The number only provides a reference point.

Sources and scope

This entry defines a version number used to identify the state of software, a service, configuration, or another changing object. It does not require Semantic Versioning for every project and does not equate a version number with a build number, release date, Git commit, artifact digest, tag, release name, acceptance version, or currently deployed production version. A format and its increments have meaning only when a team declares and consistently follows a versioning policy.