Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions docs/docs/guide/idl/protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,12 @@ that out; the schema only says *that* something is unverified and *why*:
}
```

Until it does, the build fails, printing that entry. The list is a snapshot:
if a later version of the dependency gives up more, the build stops again
until it's accepted again.
Nobody writes this by hand: `comline add` shows what a new dependency gives
up and asks before writing it, and `comline accept billing` (or
`billing::Billing`) does the same for one already declared. Until it's
accepted, the build fails, printing the entry. The list is a snapshot: if a
later version of the dependency gives up more, the build stops again until
`comline accept` is run again.

How a call travels between caller and implementation is the
[runtime](../runtime/index.md)'s job, over a pluggable
Expand Down
7 changes: 4 additions & 3 deletions docs/docs/proposals/extensibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,10 @@ What decides a connection under `comline@2`:

> **Built for handshakes** ([core#132](https://github.com/ComlineProject/core/pull/132)):
> `@unverified`, the frozen set, its diagnostics, the version comparison and
> `accept_unverified`. Encodings without vectors and lowered bumps join when
> third-party encodings and releases exist; `comline accept` and the editor's
> quick fix follow.
> `accept_unverified`, and `comline accept` / `comline add` asking before they
> write it ([cli#89](https://github.com/ComlineProject/cli/pull/89)).
> Encodings without vectors and lowered bumps join when third-party encodings
> and releases exist; the editor's quick fix follows.

Between peers, Comline gives four guarantees, each established by something
specific:
Expand Down
5 changes: 3 additions & 2 deletions docs/docs/reference/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ parse → resolve imports → validate → (freeze into .comline/) → (generate
| Command | What it does |
|---|---|
| `comline new <name> [--git]` | Scaffold `<name>/` with `config.idp`, `comline.toml`, `src/main.ids`, `.gitignore`. `--git` also runs `git init`. |
| `comline add <name> <dir>` / `comline add <name> --git <uri> --commit <sha> --version <v>` | Add a dependency to `config.idp`, imported as `use <name>::…`: resolved first (a git pin is fetched into `.comline/deps-cache/`), then written with its `hash` pinned. `--no-hash` skips the pin. |
| `comline add <name> <dir>` / `comline add <name> --git <uri> --commit <sha> --version <v>` | Add a dependency to `config.idp`, imported as `use <name>::…`: resolved first (a git pin is fetched into `.comline/deps-cache/`), then written with its `hash` pinned. `--no-hash` skips the pin. If it has [`@unverified`](../guide/idl/protocol.md#giving-up-a-guarantee) protocols, what each gives up is shown and, on a terminal, you're asked to accept it (default no); without a terminal it refuses (exit `2`) unless `--accept-unverified`. |
| `comline accept <name>[::<protocol>] [--yes]` | Accept what a dependency's [`@unverified`](../guide/idl/protocol.md#giving-up-a-guarantee) protocols give up: shows each one's given-up guarantees and reason, then writes `accept_unverified` into its `config.idp` entry, leaving the rest as written. Only protocols not already accepted for exactly their current set are asked about. On a terminal you're asked (default no); without one it refuses (exit `2`) unless `--yes` (`-y`). |
| `comline check` | Parse, resolve and validate. No `.comline/` write (beyond fetching git dependencies), no version bump — safe for editors, hooks, CI. |
| `comline build [--release] [--watch]` | Compile, validate, freeze a new immutable version into `.comline/`; print the changelog and the bump. `--release` is currently a no-op. |
| `comline generate [--target <lang>] [--out <dir>] [--layout <tpl>] [--mode <m>] [--external-std] [--no-external-std] [--validate-on-decode <when>] [--dry-run] [--list] [--watch]` | Validate (no freeze), then write generated code. Location/layout from [`comline.toml`](congregation/comline-toml.md); targets from there or `config.idp`. |
Expand Down Expand Up @@ -76,7 +77,7 @@ everything else goes to stderr.
|---|---|
| `0` | success |
| `1` | ran but failed — invalid schema, unresolved `diff` argument, generator or filesystem error |
| `2` | precondition not met — not a Comline project, nothing built yet, or `reset` not confirmed (also `clap` usage errors) |
| `2` | precondition not met — not a Comline project, nothing built yet, `reset` not confirmed, or unverified protocols not accepted (also `clap` usage errors) |

## Versioning

Expand Down
Loading