Skip to content

Adopt ARC submission convention: milestone IDs + dated PDF naming#100

Open
rpsene wants to merge 3 commits into
mainfrom
arc-submission-convention
Open

Adopt ARC submission convention: milestone IDs + dated PDF naming#100
rpsene wants to merge 3 commits into
mainfrom
arc-submission-convention

Conversation

@rpsene
Copy link
Copy Markdown
Contributor

@rpsene rpsene commented May 24, 2026

Summary

Implements the ARC submission requirements (announced 2026-05-24): every spec submitted for ARC review must be a GitHub tag with a PDF named <short>-v<X.Y.Z>-<YYYYMMDD>.pdf and a title page that matches.

  • Six canonical milestone IDs drive every artifact: development-complete, stabilized, frozen, ratification-ready, publication, ratified. The version number (v0.6.0 / v0.8.0 / v0.9.0 / v0.99.0 / v0.99.1 / v1.0.0) encodes the gate.
  • The build emits ARC-compliant artifacts on every run — no separate "ARC build" target. make and the CI workflow both produce build/<short>-v<X.Y.Z>-<YYYYMMDD>.pdf.
  • The title-page revision line reads Version v1.0.0, 2026-05-24: Ratified. A new "Document State" preface (page 2) renders the phase notice as a Note: paragraph. No theme/submodule edits required.

Commits in this PR

SHA What
47bb111 Automate Versioning — foundational versioning automation Rafael had locally (script-driven version bumps + milestone-floor inference + workflow integration). The ARC convention sits on top of this.
9b9d83f Adopt ARC submission convention — the policy + toolchain (release-info.sh canonical IDs, Makefile arc-rename, CI workflow refresh, Document State preface, ARC_SUBMISSION.md, MIGRATION.md, README callout).
4ca22e3 Ignore .DS_Store in .gitignore — hygiene so macOS Finder metadata doesn't leak into downstream PRs.

What changed (file-level)

File Why
scripts/release-info.sh Six canonical milestone IDs; publication band added between rat-ready and ratified; phase_display_for_phase emits title-case labels for the title page; revremark is now the display label only.
Makefile New SPEC_SHORT, DATE_STAMP, VERSION_NUM, MILESTONE_ID. arc-rename target renames build/<base>.pdfbuild/<base>-v<X.Y.Z>-<YYYYMMDD>.pdf on every build.
.github/workflows/build-pdf.yml target_phase enum uses canonical IDs; v0.99.1 recognized as official release; VERSION/DATE exported to the build step.
.github/workflows/version-bot.yml target_phase enum refreshed to canonical IDs.
src/spec-sample.adoc :toc: macro; new [preface] == Document State block with *Note:* {phase_notice}; toc::[] after; defaults for milestone_id and spec_short.
README.adoc IMPORTANT callout pointing at ARC_SUBMISSION.md and MIGRATION.md.
ARC_SUBMISSION.md New. Policy document. Verbatim ARC notice + version→milestone mapping + filename/title-page rules + pre-submission checklist.
MIGRATION.md New. 8-step checklist for downstream spec repos to adopt the toolchain without rewriting existing tags.
.gitignore Add .DS_Store (top-level + recursive).

Document layout (rendered)

Page Content
1 Title page — RISC-V Example Specification Document (Zexmpl) + authors + Version vX.Y.Z, YYYY-MM-DD: <Milestone Display>
2 Document State preface — Note: <phase notice>
3 Table of Contents
4+ List of figures, list of tables, list of listings, body

Validation

Built all seven milestone phases locally (Docker container, asciidoctor-pdf 2.3.24):

PDF Title-page revision line Page 2 Note (first ~80 chars)
spec-sample-v0.5.0-20260524.pdf Version v0.5.0, 2026-05-24: Draft and Development Assume everything is subject to change...
spec-sample-v0.6.0-20260524.pdf Version v0.6.0, 2026-05-24: Development Complete Assume everything is subject to change...
spec-sample-v0.8.0-20260524.pdf Version v0.8.0, 2026-05-24: Stabilized Changes may still occur, but they should be limited in scope...
spec-sample-v0.9.0-20260524.pdf Version v0.9.0, 2026-05-24: Frozen Changes are highly unlikely. A high threshold will be applied...
spec-sample-v0.99.0-20260524.pdf Version v0.99.0, 2026-05-24: Ratification-Ready The specification is preparing for ratification...
spec-sample-v0.99.1-20260524.pdf Version v0.99.1, 2026-05-24: Publication The specification has cleared ratification-ready...
spec-sample-v1.0.0-20260524.pdf Version v1.0.0, 2026-05-24: Ratified No changes are allowed. Any necessary or desired modifications...

Test plan

  • Review ARC_SUBMISSION.md for policy accuracy (especially the version→milestone mapping table and the verbatim ARC notice in §0).
  • Review MIGRATION.md for completeness — would a downstream maintainer be able to follow it without asking questions?
  • Trigger Create Specification Document workflow on this branch with target_phase=stabilized and confirm the resulting Release attaches a single spec-sample-v0.8.0-<YYYYMMDD>.pdf.
  • Open one of the validation PDFs and visually confirm the page 1 / page 2 / page 3 layout.
  • Confirm no .DS_Store files appear in the diff.

Cleanup done before this PR

  • Deleted stale vtest and vtest_1 tags (local + remote). Legitimate template release tags (v1.0.0, v2.0.0, v3.0.0, v4.0.0v4.0.2, v0.1.0-example, v1.0_rc1) are preserved — they're part of the template's own version history.

Signed-off-by: Rafael Sene <rafael@riscv.org>
  Per the ARC notice (2026-05-24), every spec submitted for review must be a
  GitHub tag with a PDF named <short>-v<X.Y.Z>-<YYYYMMDD>.pdf and a title page
  that matches. This change makes the template produce ARC-compliant artifacts
  on every build (local and CI), introduces the six canonical milestone IDs,
  and adds the publication band between ratification-ready and ratified.

  Toolchain:
  * scripts/release-info.sh now returns canonical milestone IDs:
    development-complete, stabilized, frozen, ratification-ready, publication,
    ratified. The publication band covers v0.99.1..<v1.0.0. revremark is
    prefixed with "Milestone: <id>." so asciidoctor-pdf renders the milestone
    on the title page automatically.
  * Makefile gains SPEC_SHORT, DATE_STAMP, VERSION_NUM, MILESTONE_ID and a new
    arc-rename target that renames build/<base>.pdf to
    build/<base>-v<X.Y.Z>-<YYYYMMDD>.pdf on every build-docs run.
  * .github/workflows/build-pdf.yml exports VERSION/DATE to the build step,
    refreshes target_phase to the canonical IDs, and treats v0.99.1 as an
    official release.
  * .github/workflows/version-bot.yml target_phase enum refreshed to match.
  * src/spec-sample.adoc adds milestone_id/spec_short defaults and surfaces
    Document Milestone -- Version -- Date in the phase WARNING admonition.

  Docs:
  * ARC_SUBMISSION.md (new): policy doc with verbatim ARC notice, the
    version->milestone mapping, filename/title-page rules, pre-submission
    checklist.
  * MIGRATION.md (new): 8-step checklist for forks to adopt the new toolchain
    without rewriting existing tags.
  * README.adoc: IMPORTANT callout points readers at both docs.

Signed-off-by: Rafael Sene <rafael@riscv.org>
macOS Finder writes .DS_Store files into every browsed directory; without
this entry they leak into downstream PRs and review noise. Added both
top-level and recursive patterns so the rule survives subdirectory drift.

Signed-off-by: Rafael Sene <rafael@riscv.org>
@rpsene rpsene requested a review from wmat May 24, 2026 15:27
Copy link
Copy Markdown
Collaborator

@wmat wmat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants