Repository navigation
Conversation
catalog/ defines the guarantees, the facts and their values, the official encodings with their aliases and frozen spellings, and the wire features, with sets computed from them. specs/profile.cue takes each kind's facts and values from it, features.json is generated from it, and catalog/gen/catalog.json exports it for readers without CUE. check.sh also checks that profiles/ and vectors/ hold exactly what it names. The CUE module moves to the repository root so the specs can import it. No vector, profile or schema changes meaning.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage 3 of ComlineProject/core#220, and the first stage of the rollout in the shared vocabulary proposal (core#219).
What's in it
catalog/, in CUE:guarantees.cueGuaranteefacts.cueestablishesfor the handshake factsspecs/profile.cue, core'sProfileKind::factsencodings.cuenoneincluded, with aliases andfrozen_ascontract/names.rs, core'sofficial.rsSPELLINGSfeatures.cuefeatures.jsonsets.cueformats,framings,handshakes,profiled,*_facts,features,aliases, ...schema.cueholds the rules:frozen_asis also an alias;establishes,feature) name existing entries;deprecatedneedsreplaced_by.I confirmed each rule refuses a case written to break it.
What reads it now
specs/profile.cuegenerates each kind's fact fields and value domains from the catalog.gen/profile.schema.jsonis unchanged apart from its description, and all nine profiles vet.features.jsonis generated from it. The content is equal to the hand-written file; only the formatting changes (cue export).catalog/gen/catalog.jsonexports everything, for readers without CUE.check.shalso checks that:profiles/holds exactlysets.profiled;vectors/holds exactlysets.features.I confirmed it fails on an extra or missing profile, a kind mismatch, a misnamed profile, an extra vectors file and a hand-edited
features.json.Choices worth a look
cue.mod/moves to the repository root, sospecscan importcatalog, and the module path becomesgithub.com/comlineproject/specification@v0. A consumer that runscueon a vendored copy must now run it from inside that copy. Runtime'sconformance/check.shdoes it from outside, so it needs acdwhen runtime re-vendors.VERSIONstays 0.10. No vector, profile or case format changes meaning, so implementations have nothing new to do.sinceis set only where the changelog names the version: 0.2, 0.4, 0.7 and 0.10. Elsewhere it's left out rather than guessed.@unverified(core#222);DEFAULT_FRAMINGand so on), which are compiler policy rather than shared names.