Repository navigation
Rationalize CollectGroups behavior. - #25
Merged
Merged
Conversation
bergie
added a commit
that referenced
this pull request
May 23, 2012
Rationalize CollectGroups behavior.
bergie
added a commit
that referenced
this pull request
Oct 9, 2026
The protocol specification is a public reference and carries CC0-1.0, separate from the EUPL-1.2 reference implementation in the same package. The document integrates the amendments from work document #4 updates #6-#11 (announce app_data layout, protocol version byte in the auth response, changeset projection of the 0x14 op taxonomy, Two-Step Cache tolerating signatures without source, the shared component-type enum, and the #25 port field set), and marks the pre-freeze open decisions: the FAILED lifecycle code, pause/step/breakpoint commands, high-water mark surfaces, and stub-error classification.
bergie
added a commit
that referenced
this pull request
Oct 9, 2026
Codecs for the registry handshake, detail exchange, source writes, and library installs: 0x20 sync request, 0x22 manifest (name to sig_hash entries, valid with signature and no source per update #8), 0x23/0x24 detail request/response, 0x25 atomic full-source writes, and 0x27 package install requests. The 0x24 payload carries the declared component kind (elementary, subgraph, stub - never inferred, update #11) and ports as maps with the full #25 field set: id, type, plus optional addressable, description, required, and control; absent optionals are omitted from the wire. Manifest-side names map onto the wire's id convention. sig_hash is SHA-256 over a canonical sorted-key JSON serialization of the kind and port field set, defined here as the cross-repo alignment substrate with noflo-ui #43's canonical serialization (update #10 item 2). SPEC.md pins the payload shapes in the same change set per the AsyncAPI release-gate spirit.
AsherBond
pushed a commit
to AsherBond/noflo
that referenced
this pull request
Oct 12, 2026
Allow to run a graph once. Fixes noflo#25.
bergie
added a commit
that referenced
this pull request
Oct 16, 2026
The work document #25 amendment to the manifest format documentation: the schemas table (id, digest, path, implements closure, examples for the revision-acceptance backstop), the anonymousSchemas and foreignSchemas sections, the port schema/guard fields, and the publish gate's obligations. Committed on master after the #1083 merge, as the work document #37 amendment was the one documentation gap its review left.
This was referenced Oct 18, 2026
AsherBond
pushed a commit
to AsherBond/noflo
that referenced
this pull request
Oct 19, 2026
The noflo.* node-metadata keys apply port-behavior overrides to a component instance after instantiation and before wiring, completing the noflo#594 lineage: a graph can now reuse an ecosystem component while tweaking the knobs its graph needs. - noflo.control: string[] — the instance's complete gate-inport set, replacing the declaration: listed names become gates (standing, non-consumingly-read configuration whose arrivals re-fire pending work per scope), unlisted former gates become direct firing edges (replace semantics makes promotion and demotion both expressible) - noflo.scoped: object — port-name to boolean, with the buffer structures re-prepared on flip (the helper runs pre-wiring, so there is no buffered state to migrate) - noflo.forwardBrackets: object — per-inport rule replacement, including the framing-termination empty rule; forwarded brackets attach to the ports the component's actual sends go through, so an override reroutes the framing when the component sends to the overridden target Applied by the Network after the port-name stamping, before subscribeNode. Overrides are per-instance (the loader instantiates one component per node, so other instances keep their declarations), validated loudly (unknown noflo.* keys — the namespace is core-owned — nonexistent ports, non-string names, and mistyped values are build errors named with the node id), and the zero-regression posture holds: a node without noflo.* metadata is untouched. The schema touchpoint: the keys are declared by the noflo/port-behavior metadata schema — the noflo-namespace catalog entry shipped with the publish-time machinery (work documents noflo#37/noflo#25) — and this module is the runtime consumer, validating the subset a running network can check. No catalog artifact ships in this slice; the publish gate (wd noflo#25) is where the namespace reservation and the opt-in composition enforcement land. Spec: the knob matrix from the work document — promote data to gate, demote gate to data, scoped flips in both directions with per-scope pairing, forwarding replaced and terminated per instance, the zero-regression posture pinned by a second instance of the same component, the validation error class, and the network-level wiring with the node-id error surface
AsherBond
pushed a commit
to AsherBond/noflo
that referenced
this pull request
Nov 2, 2026
The example's elaborate message surface (order to chassis/body assemblies to the released car) becomes the schemas dogfood: eleven named JSON Schemas under example/schemas/ in the free car namespace, schema markers on the message and control ports, and a committed generated noflo.json carrying the schemas table. The example graphs move from .fbp to FBP JSON: exact case significance end to end, where the .fbp loader path folds port names to the 1.x lowercase. A spec validates the end-to-end BuildCar output against car/car through the manifest's table and pins the guard projection and the negative cases. Work document noflo#25 update noflo#7 has the design.
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.
CollectGroupswasn't working for me as I would expect it to, and given the lack of a spec, I didn't really know if it was broken or I just didn't understand the intended behavior. So I made up my own spec that made sense to me, created a test, and changedCollectGroupsaccordingly. If you would prefer to keep the existing behavior, perhaps this could be renamed and added as a new component.