Manifest.Source: type of ezx@1.11.0.0 Import: import ezx@1.11.0.0/src/ledger/manifest.bend as Manifest Lines 9-31 of ezx@1.11.0.0/src/ledger/manifest.bend: https://jend.leeeet.dev/read.txt?path=ezx@1.11.0.0/src/ledger/manifest.bend&start_line=9&end_line=31 import Base # where a package's bytes come from. A hub package needs nothing else, though # one added by its `@` keeps it, which is what its import lines # say and what the hub named the hash by; a git one pins a commit, and # remembers the tag that was asked for so an upgrade knows what to # re-resolve. It also carries the two facts nothing can work out again # without the checkout: the directory inside it the package's paths are written # from, and the NAR hash nix rebuilds it by. They live here, in the file that is # committed, because a clone gets the ledger and not the vendoring cache. # `vend` is the committed tree: the package is allowlisted under `.ez/lib` and # an upgrade that moves it lays the new hash there. Absent, it is not. # # A member of the same workspace is the third kind (EZ-WS-5): a section with # `workspace = true` names the member whose `[package] name` is its key, and # records no hash and no source, because the member's package is a fact about # the committed tree. A member's own ledger reads it with an empty `path` and # `named`; the workspace's joint ledger (ws/joint.bend) fills in the member's # directory from the root, written as `path`, its hash, and, when the member # publishes under a name, the `@` it is imported by, written as # `hub`. No command writes those to a ledger a person keeps. type Source is Data: Hub{named: String} Git{url: String, rev: String, tag: String, root: String, nar: String, vend: Bool} Member{path: String, named: String} Uses (2): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String