domain/architecture/system/plan/type.bend checks
raw source on the hub · import 0xc4f31b1cf377fad1ed5191443ddd1c20/domain/architecture/system/plan/type.bend as Type
1 import
import Base
Types
type Hub source · line 4 · raw
Data
What the Bend hub has for one declared package.
UnpublishedHub
SameHub
Differs@file:String -> Hub
type Remote source · line 10 · raw
Data
What GitHub and the working tree say about the repository.
Remote@origin:String -> @visibility:String -> @clean:Bool -> @pushed:Bool -> Remote
type Tag source · line 16 · raw
Data
What GitHub has for one declared plugin, next to a fresh build of it: whether its marketplace exists, whether it is tagged <name>-v<version>, the version the build declares ("" when it did not build), and whether the build differs from what the tag holds.
Tag@repository:Bool -> @tagged:Bool -> @built:String -> @differs:Bool -> Tag
type Observed source · line 20 · raw
Data
What the world looks like now, as far as a release is concerned.
Observed@files:List<&2, String> -> @reached:List<&2, String> -> @hubs:List<&2, Hub> -> @remote:Remote -> @tags:List<&2, Tag> -> Observed
type Step source · line 27 · raw
Data
One step of a plan. Publish, Push, ReleasePlugin, Rebuild and ServePort change the world; Current and Change do not (a Change is what a Rebuild would change, shown by a dry run); Blocked stops the deploy. Rebuild: write a nix-darwin node's flake and darwin-rebuild switch it. ServePort: serve a tailnet HTTPS port from a local target, with the given Tailscale command.
Current@what:String -> Step
Publish@name:String -> @version:String -> @entry:String -> Step
Push@repository:String -> Step
ReleasePlugin@name:String -> @version:String -> @marketplace:String -> @create:Bool -> Step
Rebuild@host:String -> @flake:String -> @mac:String -> Step
ServePort@https:U32 -> @target:String -> @tailscale:String -> Step
Change@what:String -> @now:String -> @want:String -> Step
Blocked@what:String -> @why:String -> Step