Skip to content

[docs] Formalize the SemVer tag and daily release policy #271

Closed

Description

@hsliuustc0106

Goal

Write the existing OpenDirector tag and daily release practice into the repository so cuts are not only tribal knowledge.

Current published tags: v0.1.0, v0.1.1, and v0.1.2, each with a GitHub Release. In-tree version fields stay at the last cut (currently 0.1.2) until the next one lands.

Related: #7 (release readiness go/no-go). This issue does not replace #7.

Policy to record

  1. Public tags use SemVer with a v prefix: vMAJOR.MINOR.PATCH. Do not introduce a second public stream (CalVer, date tags, or nightly tags).
  2. Daily patch cuts stay on v0.1.x around 04:00 Asia/Shanghai after the ~02:00 nightly, when there are merges since the last tag and Release checks plus the last nightly gate-parity are green. Skip if there are no merges, or if that gate is red or still running. Advisory nightly lanes (browser-production, browser-extended, perf-outputs) do not block.
  3. Do not tag every merge. The cut is one tag after that day's landed work, plus a version-bump PR that aligns npm/package-lock, pyproject.toml, local API OpenAPI, DeepSeek ACP clientInfo, and the Claude plugin manifest (same set as [build] bump the release version to 0.1.2 #248 / [build] bump the release version to 0.1.1 #204).
  4. Bump MINOR only for a named milestone. Bump MAJOR only when declaring a supported public product (v1.0.0).
  5. Each published tag is immutable, points at one main SHA (after the version-bump PR), and ships a GitHub Release with English notes listing merges since the previous tag. Do not retag, and do not create a floating latest git tag.
  6. Nightly CI is a gate, not a public release. If installable nightlies are added later, they must be GitHub prereleases (for example v0.1.3-nightly.YYYYMMDD) and must not become the repository's latest release.

Deliverable

  • Add docs/development/release.md with the policy above, short and operational.
  • Link it from docs/README.md (development process). A short pointer from CONTRIBUTING.md and/or [RFC] First release scope and readiness checklist #7 is welcome if it stays a link, not a second copy.
  • English only for the new doc and this issue.

Acceptance

  • The policy is in the repository and discoverable from the docs index.
  • It matches the current daily cut practice and does not invent a second tag family.
  • Version-field alignment and the Release/nightly gate are stated clearly.
  • Documentation-only change; no unrelated test or code churn.

Activity

  1. hsliuustc0106 commented on Nov 11, 2026

    @hsliuustc0106
    ContributorAuthor

    Policy update (Hongsheng, 2026-11-11): the public SemVer stream is not frozen on v0.1.x.

    • Daily patch cuts continue on the current minor (v0.N.x) around 04:00 Asia/Shanghai, with the same gate (Release checks plus the last nightly gate-parity lane). Skip a patch morning when there are no merges, or when that gate is red or still running. Advisory nightly lanes still do not block.
    • Every 2 weeks, cut a minor (“big release”): v0.2.0, v0.3.0, and so on, at the same morning window. Use the same version-field alignment and an English GitHub Release. On a minor-cut morning, that cut is v0.(N+1).0, not another patch; daily patches then continue on the new minor.
    • If the gate is red or still running when a minor is due, delay that minor until the gate is green. Do not skip the minor, and do not cut it with a red gate.
    • MAJOR remains v1.0.0 only when declaring a supported public product.
    • Still one public tag stream. Do not add CalVer, date tags, or nightly public tags.

    #272 will be updated to match.

  2. added 2 commits that reference this issue on Nov 11, 2026
    ee896f4
    c781dd4
  3. added a commit that references this issue on Nov 11, 2026
    a275864
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:docsDocumentation / 文档type:docsDocumentation only

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions