Repository navigation
Bounds on types, step 10: pins, migration, build --reconcile - #130
Merged
Merged
Conversation
…int and offer; build --reconcile (core#98 step 10)
This was referenced Nov 3, 2026
Merged
Member
Author
|
Generated code, CLI main vs this branch (Rust target,
|
…hown by generate and inspect (core#98)
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.
Step 10 of the bounds rollout (ComlineProject/core#98, ComlineProject/core#197). Closes #128.
Pins, moved together so cargo builds one copy of each crate (
Cargo.lockhas onecomline-coreand onecomline-codegen):8f5dc91(core master: bounds, and the CAS reconcile from core#198);c303722(comline-codegen, comline-doc-markdown, comline-doc-html), the rev both generators pin;2d50fbf, comline-typescriptea9b9e2;17c3b70(comline-runtime-conformance, andcomline-referenceintests/fixtures/conformance) for conformance spec 0.3;tests/fixtures/generatorsmoved the same way.Migration. The design (docs
design/type-bounds.md, Tooling): "comlinelists every unbounded position and offers to add a package default, from the author's input, never guessed."bounds::unbounded, one per position, each with its fix).settings = { bounds = { string = { max = N } array = { max = N } } }block for config.idp (only the kinds that are unbounded), and a link to the types guide.--plain),comline buildoffers to add the block, asking for each maximum. It never picks one. Empty skips; if config.idp already hassettings, it says to add the keys there instead. After writing, it builds again.simple_project,chat_project,conformance_packageandvalidated_projectget package defaults (256 characters, 1024 items).validated_project'sfriends: Handle[]becomesfriends: Handleswithtype Handles = Handle[](the alias-suffix rule). Tests that write their own config.idp add the same defaults (with_boundsintests/cli/util.rs).comline new's sample hasmessage: char[max 280], and config.idp has a commentedsettingsblock with the bound defaults.comline build --reconcile <hash>(#128): calls core'scas::reconcile::mark_divergedwith the dropped head, then builds. It's refused for a hash that isn't a commit and conflicts with--watch. Whenever a build starts from two heads (a Git conflict or--reconcile), the output now says so:reconciled the diverged history: continued from <onto>, recorded <other> as the second parent. When nothing needed building, it names the head it continued from. This needs no core change: the CLI reads the heads before building and the new head's parents after.validate_on_decode(decided): the default iscollect. Not running validators on decode is a give-up written with its reason,validate_on_decode = { off = "why" }. A bare"off"is refused with that fix (comline-codegen, ComlineProject/generation#116).--validate-on-decodetakescollectorfirst. The give-up is shown:comline generatenotes it for each target: targetrust: decoding does not run@validatorschecks (validate_on_decodegiven up: "why");comline inspectlists it after the protocols astarget rust (comline.toml)/validators on decode given up/because "why", and--jsonhasvalidate_on_decode_given_up.The
comline newcomment line shows the new values.Round 2 pins: generation
c303722(ComlineProject/generation#116), comline-rust2d50fbf(ComlineProject/comline-rust#104, which counts a bounded string in characters), comline-typescriptea9b9e2(ComlineProject/comline-typescript#127). Core and the runtime are unchanged.Also: the
comline doc openhelp text mentions the "HTML already rendered" case, anddocs/cli.mddocumentsbuild --reconcileand drops the nonexistent--release.Merge after ComlineProject/generation#116, ComlineProject/comline-rust#104 and ComlineProject/comline-typescript#127. Merge before ComlineProject/language-server, ComlineProject/playground, the comline-typescript CI change, and docs (the std drift check passes once this merges).