|
This is the fifth issue of The Specification Layer, and
the first one written partly from inside a room rather
than entirely from repository diffs. More on that below.
This newsletter window: August 30 through
September 6. Thirty-two specification repositories and
twenty-five feeds, all read clean for the fifth
consecutive week — no source errored. 167 pull requests merged. 10 releases cut. 17 posts
published. Fifteen of the thirty-two specifications did not move at
all.
One hundred and sixty-seven is up eighty-two on last week
and the highest count I have recorded. It is also, as
usual, not what it looks like.
But the story this week is not a merge count. It is the
thing underneath all of them.
|
|
Far beneath the neon grid, an immense structure of
gold columns rests its entire weight on one small,
plain, cracked keystone block at the bottom of the
foundation, the lit structure above gone dim, a
single tiny figure crouched beside the keystone with
a lamp.
|
The Lead: The Whole Description Layer Stopped Because
Someone Cancelled a Credit Card
Every specification the OpenAPI Initiative publishes is
built with ReSpec. When ReSpec encounters a normative reference — [[RFC7578]], [[!RFC2046]] — it does not carry the bibliography itself. It asks a
web service: SpecRef, an open-source, community-maintained database of web
standards references that has been running since 2013 and
is maintained, in practice, by one person: Tobie Langel.
On August 29 SpecRef's API stopped
resolving. Issue #951 went up that afternoon from @anatoly-scherbakov, who was
watching it break W3C's json-ld-api CI:
➜ ~ curl 'https://api.specref.org/bibrefs?refs=ECMASCRIPT' curl: (6) Could not resolve host: api.specref.org
The following day Tobie answered, and the answer is the
whole story:
I'm looking into this right now. I cancelled a
credit card a few weeks ago that I thought was no longer
used for anything meaningful. It turned out that it was
the card Heroku had on file to pay for this service and
for PR Preview. I missed the various emails they sent.
A cancelled credit card took out the bibliography
resolution for the specification layer for nine
days.
What that actually blocked
On Thursday, September 3 I sat in on the
OpenAPI Initiative's TDC weekly call. They spent the
middle of the meeting hitting this wall in real time.
Lorna Mitchell, running the release process for OpenAPI
3.2, could not build locally — the output came back
"with all broken biblio references," and every
one of them pointed the reader at specref.org to search
manually, while specref.org's own search was down
too. Henry Andrews confirmed he was seeing the same
failures and had not been the week before.
The diagnosis in the room was a CloudFlare CNAME
cross-account configuration error — not something on the
OAI side to fix. And the conclusion was blunt: the deploy planned for that day could not
happen. A specification release, blocked by a bibliography
service, blocked by an expired card.
The fallback discussed on the call was to vendor a local
copy of the SpecRef data and accept that it goes stale.
What actually landed two days later was better. build-infra #38, merged September 5 by @handrews, updates ReSpec to a
version that has a fallback API URL — and
the PR body contains the finding I would have led with
even without the outage:
Our ReSpec problems are indeed due to the Cloudflare
configuration, but also because our ReSpec version did
not have a fallback URI (and our dependabot config
batches updates so that it's not a constant
overwhelming stream of individual update PRs). This
change does the update, and also catches the errors instead of acting like the
build is fine despite the munged references.
Read that last clause twice. Until September 5, the
OpenAPI build emitted output that looked fine while the normative
references in it were broken. A soft failure in a specification publishing pipeline
is worse than a hard one, because the artifact ships. And
the batching policy that keeps Dependabot noise manageable
is the same policy that delayed the ReSpec update carrying
the fallback. Two reasonable decisions, one outage to
reveal the interaction between them.
His closing note: "AFAICT all of this would have been a problem
under our old build system as well."
It came back, and then it moved
September 6, 19:58 UTC — inside this
newsletter's window by four hours — Tobie closed
#951: "Specref is back up on a new server. Thanks for
your patience."
I checked this morning before writing. api.specref.org/bibrefs?refs=rfc7578 returns 200 with valid JSON. www.specref.org returns 200. The bare apex, specref.org, still times out after twenty seconds.
DNS now points at Clever Cloud, not Heroku.
The same day, six more pull requests landed: the
repository moved from tobie/specref to specinfra/specref (#956), outstanding Dependabot security updates were
consolidated (#957), and jQuery and Bootstrap were dropped from the docs
site. A service comes back from the dead and immediately
gets the maintenance it could not get while it was alive.
And this morning, the real question
At 11:28 UTC today, Tobie opened issue #959, "Discuss the long-term hosting and
governance of Specref". It is the most clear-eyed thing I have read from a
maintainer in a while, and it is worth quoting at length
because every word of it is load-bearing:
During the outage, W3C offered to take over hosting the
service. I decided not to make that move under outage
pressure, in particular because it would have involved
transferring things such as the specref.org domain, and because Specref is used by a broader
community than W3C alone.
Historically, Specref was built as a community-driven
response to organizations not always meeting community
needs. Things have unquestionably improved since then,
but I'm still a little wary of recreating that
dependency over the long term. That said, having all of you depend on me is probably
worse, so rather than wait for the next incident, I think
this is a good time to work out what we actually want
the long-term arrangement to be.
The practical complication is that running the service
and keeping it secure requires someone to own the domain
name, pay for infrastructure, and hold the relevant
accounts and credentials. In practice, that requires
some form of legal entity.
"Having all of you depend on me is probably
worse." That is a maintainer, mid-recovery, declining
a rescue offer because taking it under pressure would
settle a governance question badly, and then opening the
question properly instead. If you want to know what the
specification layer actually rests on, it is not the
foundations and the working groups. It is a handful of
people like this one, and their willingness to say this
out loud.
The part that is about me, not them
The room believed nobody had filed an issue upstream. They
said so, and were surprised by it, given how many
specifications depend on SpecRef — including, in the words
of one participant, "AI-related new specifications that are clearly
copies of the OpenAPI specification structure."
An issue had been open for five days. #951, filed August 29, with the maintainer's credit-card
explanation sitting in it since August 30. Four expert
maintainers, actively blocked, did not find it.
I am not scoring a point. I would not have found it either
— I found it because I went looking with the repository
name in hand after the call. The finding is that an outage in a shared dependency has no
channel. SpecRef has no status page, no feed, and no announcement
path into the projects that depend on it. The information
existed, in public, in the right repository, and it did
not reach the people it was blocking. That is the same
failure mode I document every week in the Channel Health
section, and this week it cost the description layer nine
days.
Which is why OAI/build-infra and specinfra/specref are now in my registry — see the method
note. Neither is a specification. Both can stop one from
shipping.
|
|
A small underground chamber beneath the grid where a
handful of tiny figures stand in a loose circle
around a low gold-lit table, deep under an enormous
unlit understructure rising away into darkness above
them.
|
🎙 From the Room: OpenAPI TDC Weekly, September 3
A new recurring item. I am going to start
attending the meetings of as many specifications as I can,
and reporting what happens in them. Repository diffs tell
you what was decided. Meetings tell you what is being argued about, what is blocked, and what people are worried about —
and none of that shows up in a merge.
First one, and honestly: it was a light call. Small
attendance, a chunk of it logistics, and I mostly
listened. My initial read walking away was that nothing
much of value had been discussed. That read was wrong, and
working through it against the repositories is what
produced this week's lead. Here is the rest.
A release actually shipped, and it is not a
specification. The group merged build-infra #36 live on the call, ran the qualification workflow,
approved the protected deployment environment, and
cut v1.0.0 — the first tagged release of the OAI's shared
build tooling. The problem it fixes: downstream spec repos
had been depending on whatever happened to be on main in build-infra, so a bad Dependabot merge lands directly
in your release path with no clean rollback. Now
build-infra cuts immutable annotated semver tags,
downstream repos pin a range, and a new qualify-build-infra-candidate workflow checks out the real consumer repositories and
builds them against the candidate before anything is
tag-worthy.
The line I wrote down, from Henry: "it actually checks out the known client
repositories and runs them with the release candidate
and sees if it actually works. What a shocking
idea."
I checked the diff. #36 is qualify-consumer.mjs +192, qualify-consumers.yml +87, check-release.mjs +83, release.yml +82, plus four test files. The qualification pass caught
an ESM/CommonJS packaging break on its first run — a break
that would otherwise have shipped that day. And a detail I
like: v1.0.0 is a git tag with no GitHub Release object, on a package marked private that is deliberately never
published to npm. I confirmed both — one tag, zero
releases.
Version numbers are a human-factors problem. Lorna asked, explicitly, that build-infra versions never
look like specification versions, and it is now settled:
Please don't make the build releases the same as
the spec number releases... I live in an enterprise
world of 100 APIs which all have three-digit numbers,
and I have several that are the same three digits in
three different orders on my desk at any one time. Thank
you for not calling it 3.3.2-anything.
Hence 1.0.0. A small decision, and the correct one.
The rule this newsletter runs on, from the person who
owns the document. On JSON Schema's move into the IETF working-group
process, Henry:
These are drafts. We should not update and cite them.
They're not releases.
I have been applying exactly that rule for three weeks,
because Karen Etheridge told me off for breaking it in
issue #02. Hearing the same sentence again, unprompted,
from a different maintainer about a different artifact, is
the strongest confirmation I could ask for that it is the
right editorial line. I verified the state of it: draft-ietf-jsonschema-json-schema is at revision -03, dated August 26. Terminology has been cleaned up and over-entangled
concepts separated. An informational RFC is
expected around 2027, when the charter
runs out, and functionality is not expected to change
dramatically — this is a cleanup-and-publish exercise, not
a redesign. Next IETF meeting is San Francisco.
Arazzo 1.2 is taking shape and none of it has
merged. The theme is expanding into other kinds of API. SOAP is
definitely in. Open question is whether to ship 1.2 with
just that or also pull in GraphQL and gRPC;
human-in-the-loop and function calling are floating
around. Frank Kilcommins wants something released soon. I
went and looked at the board afterward, and every piece of
it is still an open pull request: #533 SOAP (open since July 27), #556 Protocol Buffer RPC, #567 GraphQL, and #568 actor-in-the-loop — opened September 3, the day of the call. Arazzo merged
four pull requests this week and all four were bots.
A political fight was raised and deliberately
dropped. Miguel flagged noise about who should own the future of
HTTP 402 and the x402 registry entry — Linux Foundation or
IETF. Henry closed it down for the meeting, from
experience: "I don't think we want to get into the
politics of people being inside or outside of the IETF
in this meeting... There will always be people arguing
over standards organizations." The same principle was applied to a JSON Schema
governance question: wait for actual publications,
don't track the politics. I am recording that as a
decision, because a group choosing not to spend its hour
on a jurisdictional argument is itself a governance
signal, and a healthy one.
Two smaller threads. Vincent's
approved proposal to turn external docs into external links — an array of link objects with summary, description and
a required URL — needs a kind field plus a registry, and goes back for re-approval
after editing. And someone suggested adding Gitleaks-style
secret scanning to the repos as a pre-push precaution;
nobody had a strong opinion, and it was parked.
One honest caveat on the quotes above. Quotes are from my notes of the call, and speaker
attribution is reconstructed from content rather than
captured speaker by speaker. I am confident about the
build-infra and JSON Schema lines because @handrews
authored both build-infra pull requests and the repository
record corroborates them, and about the versioning quote
because it is unmistakably the release manager's.
Where I could check a claim against a repository, I did,
and those checks are what the links above are.
The machines lost, and the number is a lie
|
Who merged it
|
Count
|
Share
|
|
copybara-service[bot]
|
27
|
16%
|
|
dependabot[bot]
|
20
|
12%
|
|
renovate[bot]
|
7
|
4%
|
|
oai-spec-publisher[bot]
|
3
|
2%
|
|
sigstore-bot
|
2
|
1%
|
|
github-actions[bot]
|
1
|
1%
|
|
All bots
|
60
|
36%
|
|
Actual people
|
107
|
64%
|
Five readings now: 59% machine, 54%, 72%,
59%, 36%. On the headline, this is the
first human-majority week I have recorded, by a wide
margin.
On the headline. Split it by whether I was tracking the
repository eight days ago:
|
|
Merges
|
Human
|
Human share
|
|
TRACE + PDPP (added Aug 31)
|
92
|
83
|
90%
|
|
The other thirty specifications
|
75
|
24
|
32%
|
|
All thirty-two
|
167
|
107
|
64%
|
The established layer just posted its worst human share
in five weeks. Twenty-four human merges across thirty specifications —
OpenAPI, AsyncAPI, JSON Schema, OpenTelemetry, SPDX, SLSA,
gRPC, Protobuf, all of them. Protocol Buffers merged 16
and one was a person. gRPC merged 12 and none were. The
human-majority headline is produced entirely by two
repositories that did not exist in this newsletter a
fortnight ago.
And within those two, by one person. @tnunamak merged 51 pull requests this week — more than double the entire established layer's
human output, on his own.
|
|
A foundation vault beneath the neon grid where an
enormous gold-edged gate stands open, and one single
wrong-shaped block passes through it among many
identical correct blocks, the gate glowing gold and
indifferent.
|
📐 The Description Layer
The published OpenAPI validation schema
accepts 3.2.৪ as a version number, and this time the defect is in
the shipped artifact.
#5529 and #5530 from @karenetheridge, merged August 31,
change one character in src/schemas/validation/schema.yaml on the v3.2 and v3.3 branches:
- pattern: '^3\.2\.\d+(-.+)?$' + pattern: '^3\.2\.[0-9]+(-.+)?$'
Her rationale: pattern follows Unicode semantics, and \d will match digits outside the ASCII range, which are not
plausibly valid version numbers. The test she added
alongside it is a small joy:
openapi: 3.2.৪ info: title: BENGALI DIGIT FOUR is a valid digit, but not an ascii digit
Now the check this newsletter exists to make, because I
got it wrong in issue #02 and have applied it every week
since: which artifact does this land in, and is that artifact
published?
For three weeks the answer has been "a draft, nothing
you run is affected." This week it is not. I fetched
the published OAS 3.2 validation schema
at spec.openapis.org/oas/3.2/schema/2025-09-17, and it carries:
{"type": "string", "pattern": "^3\\.2\\.\\d+(-.+)?$"}
The published 3.1 schema at spec.openapis.org/oas/3.1/schema/2022-10-07 has the same construct. The fix is on the dev branches; the defect is in what
is deployed.
Being precise about the impact, because "a published
normative artifact is wrong" is a claim I owe you
accuracy on. JSON Schema defines pattern against the ECMA-262 dialect, and in ECMA-262 \d is exactly [0-9]. But validators are not all built on ECMA-262 engines,
and the ones that are not disagree. I tested it:
Python re, '^3\.2\.\d+(-.+)?$' vs "3.2.৪" → matches Python re, '^3\.2\.[0-9]+(-.+)?$' vs "3.2.৪" → does not match
Python's \d is Unicode-aware by default; so is .NET's.
Go's RE2 and ECMA-262 engines are ASCII-only. So the
practical position is that the same published schema gives different answers about
the same document depending on which language your
validator is written in — which is the failure mode a machine-readable
specification exists to prevent. Karen's
one-character change removes the ambiguity. It has not
reached the published schema yet.
Worth noting where else this lives: Arazzo has had #516, "specify ECMA-262 dialect for regex
Criterion condition type", open since July 9. Same class of
problem, still unmerged.
OpenAPI's third merge, #5531, fixed version strings in seven examples in src/oas.md. All three of the OAI's human merges this week were
Karen's; the repository merged nothing else.
The milestone boards did not move at all. v3.3.0 holds at 19/39 (49%) and v3.2.1 holds at 10/10 with a September 30 due
date. That patch milestone has now been fully closed and
unshipped for three consecutive weeks, and the newest OAS
release remains 3.2.0 from September 2025. Three weeks
left on my prediction. Reported as project news, not
specification news, per the standing rule.
Two discussions worth your time: #3793, "Definition of a breaking change" picked up five comments, and #5457 asks how non-ASCII characters in path literals should be
written and whether tooling may display them decoded —
which is, this week of all weeks, uncannily on theme.
JSON Schema merged six pull requests and every one was
@RedZapdos123 — the fifth consecutive week that one outside
contributor is the only human merging in that
repository. #1771 allows Unicode anchor names in the meta-schema, #1772 removes a trailing comma, #1773 corrects a validation example, #1775 labels a JSON instance as JSON, #1769 requires test-case fields. Drafts and test harnesses in
the unreleased v1 line — nothing published moved, and per
Henry's own instruction above, do not cite them.
Protocol Buffers shipped v36.1 on August 31 and merged 16 pull
requests, 15 of them copybara. Hardening work, mostly:
guarding a >2 GiB INT_MAX overflow risk in StreamDecoder, input validation for map linking in upb MiniTables, an
out-param write guard on upb_Map_Delete.
Arazzo: four merges, zero humans. Overlay: nothing,
fifth consecutive week, boards untouched since December 2025 and July 2026
respectively. AsyncAPI: three merges, all dependabot, 3.0.0 board frozen at 25/28 for the fifth week. GraphQL: nothing. Moonwalk: nothing — fifth consecutive week, last merge March 31, 2025, and
still no OpenAPI 4.
|
|
A subterranean conduit hall beneath the grid where
every pipe junction carries a small gold band, tiny
figures moving along the catwalks fitting more of
them, the conduits flowing lit and orderly.
|
📡 Events, Telemetry and the Data Plane
OpenTelemetry stabilized a Prometheus exporter feature
and tightened how OTLP documents its own
versioning.
#5130 from @ArthurSens marks Resource Constant Labels stable in the Prometheus exporter — the second
Prometheus-exporter stabilization I have watched land in
five weeks, both off written conformance evidence rather
than assertion.
Two OTLP merges from @jsuereth are the kind of small
governance work that pays out for years:
-
#854 adds a since <version> requirement to new proto fields, and backfills
it across the existing ones. Every field in the wire
format will now carry the version it appeared in. If
you have ever had to work out whether a receiver can
be expected to understand a field, you know exactly
what that is worth.
-
#855 closes a two-year-old issue by adding a note
that OTLP timestamps are not RFC 3339 compatible in
JSON. Documenting a known incompatibility is not
glamorous and it is exactly what stops two
implementations disagreeing at three in the morning.
A correction to a story I nearly told. The CNCF blog ran "OpenTelemetry has graduated… now what?" on August 31, and a graduation announcement inside my
window would have been news. It is not new: the CNCF
project page records OpenTelemetry moving to Graduated
on May 11, 2026, and the TOC level-change
issue is from the same date. The post is a retrospective.
This is the same trap as the 2022 ADR in issue #01, caught
the same way — check the date before reporting the
artifact.
Relatedly, OpenTelemetry Go's Logs API and SDK reached
release candidate on August 31 with v1.47.0-rc.1 — the final stage before
stable v1 compatibility guarantees.
CloudEvents merged two — a Kotlin SDK
protobuf-format column tick and an owners-list cleanup.
Stable at 1.0.2 since 2022, carrying an enormous share of
the industry's event plumbing. Finished, not
dead. OpenMetrics, xDS and Envoy merged nothing, and Envoy cut no release either.
|
|
A deep foundation vault split in two: on one side a
new gold scaffold swarming with dozens of tiny
working figures, on the other a row of older massive
finished tablets standing dark, cold and completely
unattended.
|
🔐 Identity, Policy, Supply Chain
The two specifications I added eight days ago produced
more than half of everything in this newsletter.
PDPP merged 55 pull requests and cut seven
releases — v1.9.0 through v1.11.0, all between September 4 and 5.
The substantive work is a fifteen-part review stack
landing pre-comment decisions into the core
specification: #314 defines the protected resource metadata document, #311 defines trust-registry queries and record reliance, #310 drops source.kind from the authorization request, #309 clarifies publisher attribution binding. Alongside
it, #315 adds a prose gate for the root spec files — a specification putting a CI check on the quality of
its own English, which I have not seen before and would
like to see more of.
TRACE merged 37, cut 0.10.0, and the merges read like a specification being hardened
rather than drafted: #300 refuses conflicting tool schema aliases, #296 refuses private key material in cnf.jwk, #276 states what delegation.parent_record_hash is a digest of, #242 clarifies that an all-zero measurement means no commitment, not software-only. My favourite is #293: documentation on how to run the checks CI runs, and what a green one does not prove.
Sigstore did its plumbing. Nine merges,
and two of them are real: @bobcallaway moved to bufbuild protobuf and then to grpc-web. Toolchain, not wire format, but that repository had
gone months without a substantive human merge.
And then almost the entire supply-chain family
stopped. SPDX, SLSA, in-toto Attestation, TUF, Notary Project,
OCI Image and OCI Runtime all merged nothing. SLSA is the one to note: last week it landed the largest
specification diff in this newsletter's life, a whole
draft Dependency Track. This week, silence. One week of
quiet after a big landing is normal and I am recording it,
not reading anything into it.
OCI Distribution merged #622 from @tianon, disabling compression on the conformance
suite's HTTP transport. SPDX's boards are
unchanged except 2.3.1 ticking to 32/38; 3.0.2 remains at 33/38 against
a 2026-04-30 due date, now over four
months past, for the fifth consecutive week.
OpenSSF ran CRA content for the fifth straight
week — podcast #71 with their own EU policy advisor, and an August newsletter that describes itself as spotlighting "a wave of
CRA readiness content." SPIFFE merged one calendar link. OpenFeature merged nothing.
|
|
An understructure beneath the neon grid where a
bright gold measuring caliper spans between two
large stone slabs, comparing them, while the slabs
themselves sit unchanged and dark.
|
💹 Financial Services Data Standards
FDC3 merged nothing at all this week — no
PRs, no commits, no releases — one week after landing
the newInstance interface change I called the best-run specification
change in the harvest. Its boards are frozen at exactly
last week's numbers. Two weeks ago I said one week of
data was too narrow to carry a thesis about how many
people carry FDC3. It is still too narrow. I am just going
to keep counting.
CALM shipped cli-v1.58.0 on September 3 — the fifth consecutive week its
tooling has released while the CALM schema itself has
not changed. Eight merges, three human. The one that matters is #3014 from @aamanrebello, implementing metadata diff in calm-models — diffing architecture-as-code documents is the
capability that turns CALM from a description format into
something you can gate a pull request on.
FINOS took a contribution worth watching. konspekt was contributed to FINOS Labs on September 3 — Portable AI Decision Records, an open format for keeping generative-AI engineering
decisions auditable without vendor lock-in. Per last
week's standing rule I went looking for the
repository before mentioning it: finos-labs/konspekt, created June 21. Not in my registry yet; a Labs
contribution is early, and I would rather watch it for a
few weeks than add a row that reports nothing.
🏛 From the Foundations
A quiet week from the foundations, and the LF-family
announcement sweep I committed to last week turned up
nothing new with a specification behind it.
Monocle advanced to Incubating at LF AI &
Data on September 1. The Zephyr Project marked its tenth anniversary with seven new silver members and its first community awards. Mandy Chessell
published part three of the Egeria series, on cataloguing data without migrating it — the
connector library is doing exactly the interoperability
work this newsletter cares about, in a project most API
people have never heard of.
CNCF's blog ran eight posts, the strongest of which
is a genuinely useful operational piece on migrating a critical deployment out of the default
namespace with no downtime.
|
|
A long subterranean colonnade of tall blank dark
monoliths receding into blackness, their edges
traced in cold gold, standing silent while the
load-bearing neon grid runs on past all of them.
|
🤫 The Quiet Ones
Fifteen of thirty-two specifications recorded no merged
change, no release and no commit in the window — 12, 19,
16, 13, now 15.
Finished, not dead — stable, shipped,
load-bearing: OCI Image (last merge 2017), OCI Runtime,
TUF, Notary Project, xDS. CloudEvents merged one column
tick and so misses the list, with the same note attached.
Quiet and worth watching, where silence
is ambiguous and I keep the
count: Overlay (five weeks; Release 2.0
board untouched since December 2025; a completed 1.2 still
unshipped), AsyncAPI Specification (five
weeks of bot-only merges, board frozen at
89%), GraphQL, OpenMetrics (2.0
still
experimental), OpenFeature, SPDX (first
fully silent week I have recorded from it), in-toto Attestation, SLSA (one week after its biggest
diff), FDC3 (one week after its best
change).
Silence that is the answer to the question I get asked
most: Moonwalk. Fifth consecutive week, last merge March 31,
2025.
Envoy is excluded from pull-request counting by design, so
its appearance here means it cut no release, not that it
was idle.
|
|
An intact glowing stepped structure standing on the
neon grid, and beside it a single conduit socket
where no cable was ever attached at all, the empty
socket dark and unused while other conduits run lit
into the distance.
|
📡 Channel Health
All twenty-five working feeds returned for the fifth
consecutive week. Volume fell to 17 items
from 23.
This week's finding is that the outage had no
channel at all. SpecRef went down for nine days, blocking specification
releases across multiple standards bodies, and there was
no status page, no feed, no notification path — nothing
but a GitHub issue that four blocked maintainers did not
find. Compare that to the dormancy list below, which is a
list of channels that exist and have gone quiet.
SpecRef's problem is worse: the channel was never
built, and the dependency was never declared.
The OpenAPI Initiative's feed has now been silent
since July 22 — seven weeks. In that time: a build-system migration, a
dropped release date, a planning board relabeled internal
use only, a fully-closed patch milestone, a first-ever
build-infra release, and a nine-day outage that blocked a
deploy. None of it reached the announcement channel.
Protocol Buffers, re-verified this morning: protobuf.dev/news/v34/ returns 200; /news/v35/ and /news/v36/ both 404. Three consecutive weeks, and
v36.1 shipped inside this window.
Unchanged since issue one: Sigstore publishes no feed on
any path, Envoy's blog host does not resolve, and
OpenSSF's working feed remains /feed/ while /blog/feed/ and /blog/rss/ answer 200 with zero items.
The dormancy leaderboard, longest first: in-toto (May
2023) · CloudEvents (July 2024) · Notary Project (June
2025) · OCI (April 2026) · SLSA (May 2026) · gRPC (June
2026) · GraphQL (June 2026) · Prometheus/OpenMetrics (June
2026) · SPDX (June 2026) · Protocol Buffers (July 2026) ·
OpenAPI Initiative (July 2026).
How This Was Made
Every number above came from one harvest run against the
GitHub REST and GraphQL APIs and twenty-five feeds, over
August 30 to September 6, 2026. Merged pull requests are
counted by merged_at inside the window. Bot attribution is by author login.
Milestone percentages and descriptions are GitHub's
own values, read live and stored week over week.
Week-over-week deltas compare against stored harvests, not
memory.
Where this issue makes a claim about what a pull request did, I opened it and read its file list, diff or body. The
Bengali-digit finding is the merged patch of #5529 plus
the live published schemas at spec.openapis.org, plus a regex test I ran myself against 3.2.৪ in Python. SpecRef's recovery is api.specref.org returning 200 this morning against the apex still timing
out, plus issues #951 and #959 read in full.
build-infra's v1.0.0 is the repository's one tag against its zero
Release objects. OpenTelemetry's graduation date is
the CNCF project page, checked because the blog post
looked like news and was not.
New source class this week: meetings. I
attended the OpenAPI TDC weekly on September 3. Quotes are
from my notes, and because speaker attribution is
reconstructed from content rather than captured speaker by
speaker, I corroborated it against the repository record
wherever a claim rested on it. Where I could not
corroborate, I have said so rather than attributed. I
intend to keep doing this, across as many specifications
as will have me, and to keep reporting the meeting and the
repository against each other — this week each one caught
something the other missed.
Registry change: OAI/build-infra and specinfra/specref are now in spec_sources.yml under a new infrastructure family, verified by live probe on 2026-09-07 and dry-run
through the harvester before this issue claimed them — 8
and 7 merges respectively in this window. Neither is counted in the 167. They are build and publishing dependencies, not
specifications, and folding them into the headline would
break five weeks of like-for-like comparison; the
harvester now holds that family out of the totals and
reports it separately. The registry is 34 rows: 32
specifications and 2 dependencies that can stop one from
shipping.
Standing rules, applied throughout: a
merge to a specification repository's default branch
is not a change to a published specification — check which
artifact it lands in and whether that artifact is
published, and say draft when it is a draft. Milestones
and planning boards are project news, never specification
news. And, as of last week, the registry is a source of
findings and never a boundary on them.
|