Skip to content

release: prepare v0.1.0 — steps, dependencies, and blockers (#4 and dependents) #68

Description

@maehr

Tracking issue for cutting v0.1.0, the first citable baseline. Everything below is the current state as of today, not a plan in the abstract — PR #4 has been open and green for a while, and the work that has accumulated on staging since then is what actually decides when it can go.

v0.1.0 means: the first git tag in this repo, the first GitHub Release with an attached data dump, and the first version of the standard anyone can cite. There are no tags yet in either textrefs/textrefs.org or textrefs/registry, so nothing here is a migration — it is all first-time setup.


0. Where this stands (2026-09-03)

Content is complete. Two mechanical steps remain, and both are maintainer
actions.

Sections 1 to 3 are done, every content item in §4 is ticked, and staging is at
ba908c7. #4 is MERGEABLE with all four checks passing (CodeQL, Analyze,
data, linkcheck); it is BLOCKED on one maintainer approval, nothing else. The
full npm run verify is green against the real registry: 0 astro check errors,
137/137 tests, 259,813 pages, all internal links valid.

What is left, in order:

  1. Dispatch github-pages on ba908c7. The ruleset requires a deployment
    for the SHA being merged, and Pages only auto-runs on push to main. The last
    dispatch was 56cab1b on 2026-08-31, now eleven commits stale. Nothing
    further is queued for staging, so this is the last action before approval;
    if staging moves again, repeat it on the new tip. See §5.
  2. Approve and merge chore(release): v0.1.0 — first citable baseline #4, then tag, then verify the release workflow. See §5,
    and do the workflow_dispatch dry run first — release.yml has still never
    run and references.jsonl is now 69 MB.

What landed since the 2026-08-27 revision of this section, in eleven commits:

On closing issues. The rule stated in item 1 of the old list — label rather
than close, because Closes does not fire from a merge into staging — has been
replaced in practice: an issue is now closed by hand as soon as its fix reaches
staging, with a comment naming the commit. No issue carries
addressed-in-v0.1.0 any more.

Everything else in this issue is history. The decisions in §2 and §4 are settled
and are not reopened here.


1. The dependency graph

                textrefs.org                          textrefs/registry
                ------------                          -----------------
  #63  ADR-0005 preferred citation system  ──┐    #11  docs: preferred/additional systems
        └─ #67  ADR-0006 relation vocabulary ─┤    #13  ADR-0006 data reclassification
                                              │           └─ based on #11
  #71  resolver `vars` mapping ──► #72  ──────┤    #15–#19 resolver review
                                              │           └─ #20  (on #13, blocked on #72)
                    staging ◄─────────────────┘
                       │
                      #4  Release v0.1.0: staging → main
                       │
                     tag v0.1.0 → release.yml → GitHub Release + dump

#67 is stacked on #63; #13 is stacked on #11. The two repos are coupled: #67 (schema) and #13 (data) are one breaking change split across repositories.

The resolver review (#72 + #20, closing #71 and textrefs/registry#15–#19) is a second, later cross-repo pair with the same shape: #72 adds the vars resolver field to the compiler, #20 is the data that uses it. #20 is stacked on #13 and stays red until #72 reaches staging. Neither is a v0.1.0 blocker — see §4.

2. Decided: ADR-0005/0006 are in v0.1.0

This was the only real branch point, and everything else follows from it.

Rationale, as recommended and now adopted. Both are breaking changes to identifier-bearing structures, and both re-mint IRIs. Before the first tag that costs nothing — every record is draft under ADR-0004 and no identifier has ever been published. After the tag, the same change costs a documented migration against a baseline people may already cite. This is the same timing argument ADR-0006 makes for itself, applied one level up. The counter-argument — that it delays a release which is already green — was weighed and not taken.

Two consequences follow immediately: #60 (ADR-0005), #58 and #59 (ADR-0006) are now v0.1.0 issues, closed by #63 and #67 respectively; and the merge sequence in §3 is the actual plan rather than one of two options.

3. Merge sequence

The two repos guard each other, so the order is not free. There are now two coupled schema+data pairs (#67/registry#13, then #72/registry#20), and the second cannot start until the first is through:

  • textrefs.org CI requires the data/ submodule pointer to be an ancestor of registry/main (.github/workflows/validate.yml).
  • registry CI validates its records against textrefs.org@staging (registry/.github/workflows/validate.yml).

For a coordinated schema+data change neither side can go green first. Sequence:

All nine steps apply — going straight to #4 is off the table per §2, and steps 6–8 per §4.

4. Before tagging

5. Tagging and release mechanics

  • Merge chore(release): v0.1.0 — first citable baseline #4 into main.

  • Tag main as v0.1.0 and push the tag. This triggers .github/workflows/release.yml.

  • Do the workflow_dispatch dry run of release.yml before tagging. It checks out with submodules: recursive, runs npm run build:data, and attaches dist/dump/*.jsonl + dist/dump/datapackage.json + aliases.json with fail_on_unmatched_files: true. It has still never run. If a dump path is wrong the release fails after the tag is already public.

    The payload has grown twice since this line was written. Measured on a5764fb (2026-08-27) with the full npm run verify:

    When this issue was opened After the resolver review Now
    References ~39,200 67,959 86,397
    references.jsonl — 54 MB 69 MB (72,591,804 bytes)
    aliases.json — 12.9 MB 17 MB (17,521,319 bytes)
    Pages built — 204,347 259,811

    Still far inside GitHub's 2 GB asset limit, but check the workflow's timeout headroom against the current build rather than the old one.

  • Confirm the three ADR links resolve. identifier-syntax.md, mappings-and-resolver-targets.md and related-systems.md link to ADR-0001, ADR-0002 and ADR-0006 at blob/main/decisions/…. main carries only ADR-TEMPLATE.md and README.md today, so all three 404 and are the only real errors left in Link Checker Report #3. Merging chore(release): v0.1.0 — first citable baseline #4 brings all seven ADRs to main and resolves them. Re-run the Links workflow after the tag to confirm.

  • Confirm the pinned data/ commit at tag time is the one you want frozen into the release — main "consumes pinned SHAs at release time" per the registry workflow's comment.

  • Check the generated release notes (generate_release_notes: true) against the git-cliff CHANGELOG.md; two sources of truth, decide which one leads.

6. Registry side

  • The registry uses calendar tags vYYYY.MM.N and has none yet. Decide whether v0.1.0 of the standard is accompanied by a first registry export tag, or whether the dump attached to this release is sufficient for now.
  • datapackage.json's SemVer-without-v version needs to be set deliberately for the first export.
  • The first export ships 86,397 references across 23 works and 13 citation systems — 86,477 records and 172,838 aliases — not the ~39,200 in staging when this issue was opened, and not the 67,959 the §4 decision produced. chore(data): bump the registry pointer to 455bb27f #95 and chore(data): bump the registry pointer to 7d109195 #96 advanced the data/ pin to 7d10919 afterwards, adding Dante's Divina Commedia, Hume's Treatise and first Enquiry, and eight Nietzsche works. Say the current figure in the release notes — it is the most visible difference between this baseline and anything cited from an earlier snapshot, and the earlier figure is now wrong in two places rather than one. datapackage.json is at version 0.1.0.

7. Housekeeping


Every decision is settled. ADR-0005 and ADR-0006 ship in v0.1.0 (§2, 2026-08-12), so does the resolver review (§4, 2026-08-12), and the deprecated rendering question is answered (§4, 2026-08-27). The merge sequence in §3 is through. What is left is §0: land #101, publish the founding record, dispatch Pages, approve and merge #4, tag, and close out.

Activity

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

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions