From 2f0687cf9eb8651f4852b488d3c29fb2f0627954 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 1 Sep 2026 08:05:38 +0100 Subject: [PATCH] fix(k9): register application/vnd.k9 without the +nickel suffix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `k9-svc/SPEC.adoc` line 34 declared `application/vnd.k9+nickel` while `k9-svc/IANA-MEDIA-TYPE-APPLICATION.adoc` registers `application/vnd.k9` *without* a structured-syntax suffix. A live contradiction in `main`, not a design question. Owner ruling (2026-09-01): `application/vnd.k9`, no suffix. Structured-syntax suffixes are intended for widely-registered base syntaxes; `+nickel` is not one, and carrying it into IANA review invites an objection for no gain. Swept the live declarations — `SPEC.adoc` (4), `register.ncl` (3), `README.adoc`, `GUIDE.adoc`, `pedigree.ncl` (the `breed` default). The `.ncl` edits are string-literal values only; no structural change. `docs/IANA-MEDIA-TYPE.adoc` is the *old* `+nickel` registration in full. Rather than rewrite a superseded document, it now carries a SUPERSEDED banner pointing at `IANA-MEDIA-TYPE-APPLICATION.adoc`, matching the convention already used by `REORGANIZATION-PLAN.adoc`. Deliberately untouched: `docs/iana/application-vnd.k9+nickel-registration.txt` (an archived draft whose two mentions are already historical notes) and the two intentional mentions in `IANA-MEDIA-TYPE-APPLICATION.adoc`. Companion to hyperpolymath/k9-ecosystem#38, which sweeps the same contradiction across 24 downstream files. Co-Authored-By: Claude Opus 5 --- k9-svc/GUIDE.adoc | 2 +- k9-svc/README.adoc | 2 +- k9-svc/SPEC.adoc | 8 ++++---- k9-svc/docs/IANA-MEDIA-TYPE.adoc | 16 ++++++++++++++++ k9-svc/pedigree.ncl | 2 +- k9-svc/register.ncl | 6 +++--- 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/k9-svc/GUIDE.adoc b/k9-svc/GUIDE.adoc index acf22779..37139779 100644 --- a/k9-svc/GUIDE.adoc +++ b/k9-svc/GUIDE.adoc @@ -162,7 +162,7 @@ let component_pedigree = { metadata = { name = "example-config", version = "1.0.0", - breed = "application/vnd.k9+nickel", + breed = "application/vnd.k9", magic_number = "K9!", }, security = { diff --git a/k9-svc/README.adoc b/k9-svc/README.adoc index f692f038..c66b50d4 100644 --- a/k9-svc/README.adoc +++ b/k9-svc/README.adoc @@ -188,7 +188,7 @@ K9 takes security seriously. Self-executing components require careful design an |`K9!` (`\x4B\x39\x21`) |MIME Type -|`application/vnd.k9+nickel` +|`application/vnd.k9` |Extensions |`.k9`, `.k9.ncl` diff --git a/k9-svc/SPEC.adoc b/k9-svc/SPEC.adoc index dde5bd8b..5b3fe998 100644 --- a/k9-svc/SPEC.adoc +++ b/k9-svc/SPEC.adoc @@ -31,7 +31,7 @@ word `must` appears in both and means different things; never conflate them. [cols="1,2"] |=== -|Standard ID |`application/vnd.k9+nickel` +|Standard ID |`application/vnd.k9` |Version |1.0.0 |Stability |Stable |Magic Number |`K9!` (`\x4B\x39\x21`) @@ -359,7 +359,7 @@ To be listed as a conforming `.k9` repository: [source,xml] ---- - + K9 Self-Validating Component @@ -377,7 +377,7 @@ Location: `/usr/share/mime/packages/k9.xml` UTTypeIdentifier org.k9-svc.component public.mime-type -application/vnd.k9+nickel +application/vnd.k9 ---- === Minix @@ -386,7 +386,7 @@ Static mapping in `/etc/mime.types`: [source] ---- -application/vnd.k9+nickel k9 +application/vnd.k9 k9 ---- == Philosophy diff --git a/k9-svc/docs/IANA-MEDIA-TYPE.adoc b/k9-svc/docs/IANA-MEDIA-TYPE.adoc index 7fea5a2f..778ad189 100644 --- a/k9-svc/docs/IANA-MEDIA-TYPE.adoc +++ b/k9-svc/docs/IANA-MEDIA-TYPE.adoc @@ -1,6 +1,22 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 = IANA Media Type Registration: application/vnd.k9+nickel +[WARNING] +==== +*SUPERSEDED (2026-09-01) — historical record only.* + +This document registers `application/vnd.k9+nickel`. That form was withdrawn: +the current application registers *`application/vnd.k9`*, without a +structured-syntax suffix. Structured-syntax suffixes are intended for widely +registered base syntaxes, and `+nickel` is not one. + +*What replaced it:* link:../IANA-MEDIA-TYPE-APPLICATION.adoc[`IANA-MEDIA-TYPE-APPLICATION.adoc`]. + +The `+nickel` form remains reserved as a possible future companion type. The +text below is retained unedited for provenance — do not cite it as current. +==== + + This is the formal IANA media type registration for K9 SVC (Self-Validating Component) format. [source] diff --git a/k9-svc/pedigree.ncl b/k9-svc/pedigree.ncl index 00183320..77987660 100644 --- a/k9-svc/pedigree.ncl +++ b/k9-svc/pedigree.ncl @@ -29,7 +29,7 @@ let Architecture = [| 'Linux, 'Minix, 'MacOS, 'Android, 'PC, 'ASIC, 'Unknown |] Metadata = { name | String, version | String | default = "1.0.0", - breed | String | default = "application/vnd.k9+nickel", + breed | String | default = "application/vnd.k9", magic_number | String | default = "K9!", description | String | optional, }, diff --git a/k9-svc/register.ncl b/k9-svc/register.ncl index d9788abb..81b7ee78 100644 --- a/k9-svc/register.ncl +++ b/k9-svc/register.ncl @@ -12,7 +12,7 @@ let OS = [| 'Linux, 'Minix, 'MacOS |] in - + K9 Self-Validating Component K9 Self-Validating Component (Alpha Breed) @@ -51,7 +51,7 @@ let OS = [| 'Linux, 'Minix, 'MacOS |] in k9.ncl public.mime-type - application/vnd.k9+nickel + application/vnd.k9 @@ -97,7 +97,7 @@ User-only: Verification: file --mime-type example.k9 - # Should output: application/vnd.k9+nickel + # Should output: application/vnd.k9 Manual registration: Linux: Copy k9.xml to /usr/share/mime/packages/ then run update-mime-database