diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 0d4c195c..6c88390c 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -49,21 +49,13 @@ jobs: - uses: "authzed/actions/golangci-lint@main" extra-lint: - name: "Lint YAML & Markdown" + name: "Lint YAML" runs-on: "depot-ubuntu-24.04" steps: - uses: "actions/checkout@v6" - - uses: "authzed/actions/yaml-lint@main" - uses: "stefanprodan/kube-tools@v1" with: command: "kustomize build ./config" - # Disabled due to issues with Kustomize, see: - # - https://github.com/instrumenta/kubeval-action/pull/3 - # - https://github.com/instrumenta/kubeval/issues/232 - # - uses: "instrumenta/kubeval-action@5915e4adba5adccac07cb156b82e54c3fed74921" - # with: - # files: "config" - - uses: "authzed/actions/markdown-lint@main" codeql: if: "${{ github.event_name == 'pull_request' }}" diff --git a/diff-update-graphs.py b/diff-update-graphs.py new file mode 100644 index 00000000..16dab8e4 --- /dev/null +++ b/diff-update-graphs.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 +""" +Semantic diff of two update-graph YAML files. + +Treats the `channels` list as an unordered set keyed by (name, datastore metadata). +Reports per-channel differences in nodes and edges. + +Usage: + python3 diff-update-graphs.py + python3 diff-update-graphs.py # defaults to old-proposed-update-graph.yaml vs proposed-update-graph.yaml +""" + +import sys +import yaml + + +def load_graph(path): + with open(path) as f: + return yaml.safe_load(f) + + +def index_channels(graph): + idx = {} + for ch in graph.get("channels", []): + key = (ch["name"], ch.get("metadata", {}).get("datastore", "")) + idx[key] = ch + return idx + + +def semver_sort_key(s): + # Simple sort key: split on dots and dashes, numeric parts as ints + import re + return [int(p) if p.isdigit() else p for p in re.split(r"[.\-]", s.lstrip("v"))] + + +def diff_graphs(old_path, new_path): + old = load_graph(old_path) + new = load_graph(new_path) + + old_ch = index_channels(old) + new_ch = index_channels(new) + + old_keys = set(old_ch.keys()) + new_keys = set(new_ch.keys()) + + print(f"Comparing:\n OLD: {old_path}\n NEW: {new_path}\n") + + only_old = sorted(old_keys - new_keys) + only_new = sorted(new_keys - old_keys) + + if only_old: + print("=== Channels only in OLD ===") + for k in only_old: + print(f" {k}") + print() + + if only_new: + print("=== Channels only in NEW ===") + for k in only_new: + print(f" {k}") + print() + + print("=== Per-channel comparison ===") + any_diff = False + for key in sorted(old_keys & new_keys): + oc = old_ch[key] + nc = new_ch[key] + + old_nodes = {n["id"]: n for n in oc.get("nodes", [])} + new_nodes = {n["id"]: n for n in nc.get("nodes", [])} + + only_old_nodes = sorted(set(old_nodes) - set(new_nodes), key=semver_sort_key) + only_new_nodes = sorted(set(new_nodes) - set(old_nodes), key=semver_sort_key) + + old_edges = {k: set(v) for k, v in (oc.get("edges") or {}).items()} + new_edges = {k: set(v) for k, v in (nc.get("edges") or {}).items()} + + all_from_nodes = set(old_edges) | set(new_edges) + edge_diffs = {} + for fn in all_from_nodes: + oe = old_edges.get(fn, set()) + ne = new_edges.get(fn, set()) + only_old_e = sorted(oe - ne, key=semver_sort_key) + only_new_e = sorted(ne - oe, key=semver_sort_key) + if only_old_e or only_new_e: + edge_diffs[fn] = (only_old_e, only_new_e) + + # Node field-level diffs + field_diffs = {} + for nid in sorted(set(old_nodes) & set(new_nodes), key=semver_sort_key): + on = old_nodes[nid] + nn = new_nodes[nid] + diffs = {} + for f in set(on) | set(nn): + if on.get(f) != nn.get(f): + diffs[f] = (on.get(f), nn.get(f)) + if diffs: + field_diffs[nid] = diffs + + channel_label = f"{key[1]}/{key[0]}" + if not only_old_nodes and not only_new_nodes and not edge_diffs and not field_diffs: + print(f"\n {channel_label}: IDENTICAL") + else: + any_diff = True + print(f"\n {channel_label}: DIFFERS") + if only_old_nodes: + print(f" Nodes only in OLD: {only_old_nodes}") + if only_new_nodes: + print(f" Nodes only in NEW: {only_new_nodes}") + for fn in sorted(edge_diffs, key=semver_sort_key): + only_old_e, only_new_e = edge_diffs[fn] + if only_old_e: + print(f" Edge {fn} -> REMOVED targets: {only_old_e}") + if only_new_e: + print(f" Edge {fn} -> ADDED targets: {only_new_e}") + for nid, diffs in sorted(field_diffs.items(), key=lambda x: semver_sort_key(x[0])): + print(f" Node {nid} field diffs: {diffs}") + + if not any_diff and not only_old and not only_new: + print("\nGraphs are SEMANTICALLY EQUIVALENT (order-agnostic).") + + +if __name__ == "__main__": + if len(sys.argv) == 3: + old_path, new_path = sys.argv[1], sys.argv[2] + elif len(sys.argv) == 1: + old_path = "old-proposed-update-graph.yaml" + new_path = "proposed-update-graph.yaml" + else: + print("Usage: diff-update-graphs.py [ ]") + sys.exit(1) + + diff_graphs(old_path, new_path) diff --git a/e2e/go.sum b/e2e/go.sum index 635838d3..60e9e79c 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -102,8 +102,8 @@ github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpv github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= -github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= diff --git a/go.mod b/go.mod index 4022729a..46e26f78 100644 --- a/go.mod +++ b/go.mod @@ -27,6 +27,7 @@ require ( k8s.io/kubectl v0.36.0-alpha.0 k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/kind v0.31.0 + sigs.k8s.io/yaml v1.6.0 ) require ( @@ -59,6 +60,7 @@ require ( github.com/go-openapi/swag v0.23.0 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gobuffalo/flect v1.0.3 // indirect + github.com/goccy/go-yaml v1.19.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.3 // indirect @@ -147,7 +149,6 @@ require ( sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect - sigs.k8s.io/yaml v1.6.0 // indirect ) tool ( diff --git a/go.sum b/go.sum index 95563e52..486325b9 100644 --- a/go.sum +++ b/go.sum @@ -84,8 +84,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gobuffalo/flect v1.0.3 h1:xeWBM2nui+qnVvNM4S3foBhCAL2XgPU+a7FdpelbTq4= github.com/gobuffalo/flect v1.0.3/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs= -github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= -github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= diff --git a/graph-diff-summary.md b/graph-diff-summary.md new file mode 100644 index 00000000..f044d495 --- /dev/null +++ b/graph-diff-summary.md @@ -0,0 +1,74 @@ +# Update Graph Diff: old-proposed-update-graph.yaml vs proposed-update-graph.yaml + +The graphs are **not fully equivalent**. Below is every difference found. + +--- + +## `memory/stable`: IDENTICAL — no differences. + +--- + +## All four DB channels: `v1.37.1` edge set differs + +All of cockroachdb, mysql, postgres, and spanner are affected. + +| Graph | `v1.37.1` edges to | +|-------|-------------------| +| Old | `v1.38.0, v1.39.1, v1.40.1, v1.42.1, v1.45.4, v1.47.1, v1.48.0, v1.49.2, v1.51.1` | +| New | `v1.38.0` only | + +The old code let `v1.37.1` skip past `v1.38.0`; the new waypoint algorithm blocks that +because `v1.38.0` is now a mandatory stop (`waypoint: true`). + +--- + +## Phase nodes have broader outgoing edges in the new graph + +The old code treated phase nodes as strict "step through me to the immediate next version" +nodes. The new waypoint algorithm allows phase nodes to reach any target up to (but not +past) the next waypoint. Affected nodes: + +- **`cockroachdb/stable`**: `v1.30.0-phase1` + - Old: only `→ v1.30.0` + - New: `→ v1.30.0` through `v1.36.2` +- **`postgres/stable`**: `v1.14.0-phase2` + - Old: only `→ v1.14.0` + - New: `→ v1.14.0` through `v1.36.2` +- **`spanner/stable`**: `v1.22.2-phase2` and `v1.29.5-phase1` + - Old: each pointed only to the immediate next version + - New: each can reach further (up to the `v1.38.0` waypoint) + +--- + +## `spanner/stable`: `v1.51.1` node missing from old graph + +The old graph encoded the latest spanner version as a quirk: node `v1.49.2` had `tag: +v1.51.1`. The new graph correctly has `v1.49.2` with `tag: v1.49.2` and a separate +`v1.51.1` node, which adds outgoing edges from all existing spanner nodes to `v1.51.1`. + +--- + +## Node field differences + +| Channel | Node | Field | Old value | New value | +|---------|------|-------|-----------|-----------| +| `cockroachdb/stable` | `v1.30.0-phase1` | `phase` | missing | `write-both-read-new` | +| `spanner/stable` | `v1.29.5-phase1` | `phase` | missing | `write-both-read-new` | +| `spanner/stable` | `v1.49.2` | `tag` | `v1.51.1` | `v1.49.2` | + +--- + +## Bottom line + +The graphs differ in four ways: + +1. **`v1.37.1` edge narrowing** (all DB channels) — likely correct; `v1.38.0` is now a + hard waypoint. +2. **Phase-node outgoing edge expansion** — semantic change: old code was "phase node → + immediate next release only"; new algorithm is "phase node → anything up to the next + waypoint". Whether multi-hop skips from a phase node are safe depends on whether + those intermediate versions require a migration stop. +3. **`spanner/stable` `v1.51.1` node added** — likely a bug fix in the old graph where + `v1.49.2` was carrying the wrong tag. +4. **`phase` field missing on phase nodes in old graph** — old serialization omitted the + `phase` field from those nodes; new graph includes it. diff --git a/magefiles/magefile.go b/magefiles/magefile.go index e426c294..2a1e1b0d 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -9,6 +9,7 @@ import ( "os" "os/exec" "path/filepath" + "strings" "github.com/cespare/xxhash/v2" "github.com/jzelinskie/stringz" @@ -19,8 +20,24 @@ import ( kind "sigs.k8s.io/kind/pkg/cluster" "sigs.k8s.io/kind/pkg/cmd" "sigs.k8s.io/kind/pkg/fs" + "sigs.k8s.io/yaml" ) +const versionsYamlFile = "magefiles/versions.yaml" + +type datastoreConfig struct { + Migration string `json:"migration,omitempty"` + Phase string `json:"phase,omitempty"` + Deprecated bool `json:"deprecated,omitempty"` + Waypoint bool `json:"waypoint,omitempty"` +} + +type versionEntry struct { + ID string `json:"id"` + Tag string `json:"tag"` + Config map[string]datastoreConfig `json:"config"` +} + var Aliases = map[string]interface{}{ "test": Test.Unit, "e2e": Test.E2e, @@ -124,13 +141,76 @@ func (Gen) Graph() error { return sh.RunV("go", "generate", "./tools/generate-update-graph/main.go") } -// If the update graph definition +// Append_version appends a new entry to the version list given a docker tag of a +// SpiceDB release, automatically discovering the migration head for each datastore. +func (Gen) Append_version(tag string) error { + mg.Deps(checkDocker) + + existing, err := os.ReadFile(versionsYamlFile) + if err != nil && !os.IsNotExist(err) { + return err + } + for _, line := range strings.Split(string(existing), "\n") { + if line == "tag: "+tag { + return fmt.Errorf("version %s is already in the version list", tag) + } + } + + versionOutput, err := sh.Output("docker", "run", "--rm", "--platform=linux/amd64", + "ghcr.io/authzed/spicedb:"+tag, "spicedb", "version") + if err != nil { + return fmt.Errorf("failed to get version from image: %w", err) + } + // Output format: "spicedb v1.52.0" + parts := strings.Fields(versionOutput) + if len(parts) < 2 { + return fmt.Errorf("unexpected version output: %q", versionOutput) + } + id := parts[1] + + cfg := make(map[string]datastoreConfig) + for _, ds := range []string{"postgres", "cockroachdb", "spanner", "mysql"} { + migration, err := sh.Output("docker", "run", "--rm", "--platform=linux/amd64", + "ghcr.io/authzed/spicedb:"+tag, "spicedb", + "datastore", "head", "--log-level=error", "--datastore-engine="+ds) + if err != nil { + return fmt.Errorf("failed to get migration head for %s: %w", ds, err) + } + cfg[ds] = datastoreConfig{Migration: strings.TrimSpace(migration)} + } + cfg["memory"] = datastoreConfig{} + + v := versionEntry{ID: id, Tag: tag, Config: cfg} + vBytes, err := yaml.Marshal(v) + if err != nil { + return err + } + + f, err := os.OpenFile(versionsYamlFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) + if err != nil { + return err + } + defer f.Close() + + if _, err := f.WriteString("---\n"); err != nil { + return err + } + _, err = f.Write(vBytes) + return err +} + +// generateGraphIfSourcesChanged regenerates the update graph if versions.yaml or +// the generator source have changed since the last generation. func (g Gen) generateGraphIfSourcesChanged() error { - regen, err := target.Dir("proposed-update-graph.yaml", "tools/generate-update-graph") + versionsChanged, err := target.Path("proposed-update-graph.yaml", versionsYamlFile) + if err != nil { + return err + } + generatorChanged, err := target.Dir("proposed-update-graph.yaml", "tools/generate-update-graph") if err != nil { return err } - if regen { + if versionsChanged || generatorChanged { return g.Graph() } return nil diff --git a/magefiles/versions.yaml b/magefiles/versions.yaml new file mode 100644 index 00000000..753ca7cb --- /dev/null +++ b/magefiles/versions.yaml @@ -0,0 +1,641 @@ +id: v1.51.1 +tag: v1.51.1 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.49.2 +tag: v1.49.2 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.48.0 +tag: v1.48.0 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.47.1 +tag: v1.47.1 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.45.4 +tag: v1.45.4 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.42.1 +tag: v1.42.1 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.40.1 +tag: v1.40.1 +config: + cockroachdb: + migration: add-expiration-support + memory: {} + mysql: + migration: add_expiration_to_relation_tuple + postgres: + migration: add-index-for-transaction-gc + spanner: + migration: add-expiration-support +--- +id: v1.39.1 +tag: v1.39.1 +config: + cockroachdb: + migration: add-transaction-metadata-table + memory: {} + mysql: + migration: add_metadata_to_transaction_table + postgres: + migration: add-watch-api-index-to-relation-tuple-table + spanner: + migration: add-transaction-metadata-table +--- +id: v1.38.0 +tag: v1.38.0 +config: + cockroachdb: + migration: add-transaction-metadata-table + waypoint: true + memory: {} + mysql: + migration: add_metadata_to_transaction_table + waypoint: true + postgres: + migration: add-metadata-to-transaction-table + waypoint: true + spanner: + migration: add-transaction-metadata-table + waypoint: true +--- +id: v1.37.1 +tag: v1.37.1 +config: + cockroachdb: + migration: add-integrity-relationtuple-table + memory: {} + mysql: + migration: add_relationship_counters_table + postgres: + migration: create-relationships-counters-table + spanner: + migration: add-relationship-counter-table +--- +id: v1.36.2 +tag: v1.36.2 +config: + cockroachdb: + migration: add-integrity-relationtuple-table + waypoint: true + memory: {} + mysql: + migration: add_relationship_counters_table + waypoint: true + postgres: + migration: create-relationships-counters-table + waypoint: true + spanner: + migration: add-relationship-counter-table + waypoint: true +--- +id: v1.35.3 +tag: v1.35.3 +config: + cockroachdb: + migration: add-relationship-counters-table + memory: {} + mysql: + migration: add_relationship_counters_table + postgres: + migration: create-relationships-counters-table + spanner: + migration: add-relationship-counter-table +--- +id: v1.34.0 +tag: v1.34.0 +config: + cockroachdb: + migration: add-relationship-counters-table + memory: {} + mysql: + migration: add_relationship_counters_table + postgres: + migration: create-relationships-counters-table + spanner: + migration: add-relationship-counter-table +--- +id: v1.33.1 +tag: v1.33.1 +config: + cockroachdb: + migration: remove-stats-table + memory: {} + mysql: + migration: watch_api_relation_tuple_index + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: delete-older-changestreams +--- +id: v1.32.0 +tag: v1.32.0 +config: + cockroachdb: + migration: remove-stats-table + memory: {} + mysql: + migration: watch_api_relation_tuple_index + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: delete-older-changestreams +--- +id: v1.31.0 +tag: v1.31.0 +config: + cockroachdb: + migration: remove-stats-table + memory: {} + mysql: + migration: watch_api_relation_tuple_index + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: delete-older-changestreams +--- +id: v1.30.0 +tag: v1.30.0 +config: + cockroachdb: + migration: remove-stats-table + memory: {} + mysql: + migration: watch_api_relation_tuple_index + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: delete-older-changestreams +--- +id: v1.30.0-phase1 +tag: v1.30.0 +config: + cockroachdb: + migration: add-caveats + phase: write-both-read-new +--- +id: v1.29.5 +tag: v1.29.5 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: watch_api_relation_tuple_index + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: delete-older-changestreams +--- +id: v1.29.5-phase1 +tag: v1.29.5 +config: + spanner: + migration: register-combined-change-stream + phase: write-both-read-new +--- +id: v1.26.0 +tag: v1.26.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: longblob_definitions + postgres: + migration: add-rel-by-alive-resource-relation-subject + spanner: + migration: drop-changelog-table +--- +id: v1.25.0 +tag: v1.25.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: longblob_definitions + postgres: + migration: add-gc-covering-index + spanner: + migration: drop-changelog-table +--- +id: v1.24.0 +tag: v1.24.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: extend_object_id + postgres: + migration: add-gc-covering-index + spanner: + migration: drop-changelog-table +--- +id: v1.23.1 +tag: v1.23.1 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: extend_object_id + postgres: + migration: add-gc-covering-index + spanner: + migration: drop-changelog-table +--- +id: v1.22.2 +tag: v1.22.2 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: extend_object_id + postgres: + migration: add-gc-covering-index + spanner: + migration: drop-changelog-table +--- +id: v1.22.2-phase2 +tag: v1.22.2 +config: + spanner: + migration: register-tuple-change-stream + phase: write-changelog-read-stream +--- +id: v1.22.2-phase1 +tag: v1.22.2 +config: + spanner: + migration: register-tuple-change-stream + phase: write-changelog-read-changelog +--- +id: v1.21.0 +tag: v1.21.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: extend_object_id + postgres: + migration: add-gc-covering-index + spanner: + migration: add-caveats +--- +id: v1.19.1 +tag: v1.19.1 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: add-gc-covering-index + spanner: + migration: add-caveats +--- +id: v1.18.0 +tag: v1.18.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + migration: add-caveats +--- +id: v1.17.0 +tag: v1.17.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + migration: add-caveats +--- +id: v1.16.2 +tag: v1.16.2 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + migration: add-caveats +--- +id: v1.16.1 +tag: v1.16.1 +config: + cockroachdb: + deprecated: true + migration: add-caveats + memory: + deprecated: true + mysql: + deprecated: true + migration: add_caveat + postgres: + deprecated: true + migration: drop-bigserial-ids + spanner: + deprecated: true + migration: add-caveats +--- +id: v1.16.0 +tag: v1.16.0 +config: + cockroachdb: + deprecated: true + migration: add-caveats + memory: + deprecated: true + mysql: + deprecated: true + migration: add_caveat + postgres: + deprecated: true + migration: drop-bigserial-ids + spanner: + deprecated: true + migration: add-caveats +--- +id: v1.15.0 +tag: v1.15.0 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + migration: add-caveats +--- +id: v1.14.1 +tag: v1.14.1 +config: + cockroachdb: + migration: add-caveats + memory: {} + mysql: + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + migration: add-caveats +--- +id: v1.14.0 +tag: v1.14.0 +config: + cockroachdb: + deprecated: true + migration: add-caveats + memory: + deprecated: true + mysql: + deprecated: true + migration: add_caveat + postgres: + migration: drop-bigserial-ids + spanner: + deprecated: true + migration: add-caveats +--- +id: v1.14.0-phase2 +tag: v1.14.0 +config: + postgres: + migration: add-xid-constraints + phase: write-both-read-new +--- +id: v1.14.0-phase1 +tag: v1.14.0 +config: + postgres: + migration: add-xid-columns + phase: write-both-read-old +--- +id: v1.13.0 +tag: v1.13.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_ns_config_id + postgres: + migration: add-ns-config-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.12.0 +tag: v1.12.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_ns_config_id + postgres: + migration: add-ns-config-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.11.0 +tag: v1.11.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_ns_config_id + postgres: + migration: add-ns-config-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.10.0 +tag: v1.10.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_ns_config_id + postgres: + migration: add-ns-config-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.9.0 +tag: v1.9.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_unique_datastore_id + postgres: + migration: add-unique-datastore-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.8.0 +tag: v1.8.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_unique_datastore_id + postgres: + migration: add-unique-datastore-id + spanner: + migration: add-metadata-and-counters +--- +id: v1.7.1 +tag: v1.7.1 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + mysql: + migration: add_unique_datastore_id + postgres: + migration: add-unique-datastore-id +--- +id: v1.7.0 +tag: v1.7.0 +config: + cockroachdb: + deprecated: true + migration: add-metadata-and-counters + memory: + deprecated: true + mysql: + deprecated: true + migration: add_unique_datastore_id + postgres: + deprecated: true + migration: add-unique-datastore-id +--- +id: v1.6.0 +tag: v1.6.0 +config: + cockroachdb: + migration: add-metadata-and-counters + memory: {} + postgres: + migration: add-unique-datastore-id +--- +id: v1.5.0 +tag: v1.5.0 +config: + cockroachdb: + migration: add-transactions-table + memory: {} + postgres: + migration: add-transaction-timestamp-index +--- +id: v1.4.0 +tag: v1.4.0 +config: + cockroachdb: + migration: add-transactions-table + memory: {} + postgres: + migration: add-transaction-timestamp-index +--- +id: v1.3.0 +tag: v1.3.0 +config: + cockroachdb: + migration: add-transactions-table + memory: {} + postgres: + migration: add-transaction-timestamp-index +--- +id: v1.2.0 +tag: v1.2.0 +config: + cockroachdb: + migration: add-transactions-table + memory: {} + postgres: + migration: add-transaction-timestamp-index diff --git a/old-proposed-update-graph.yaml b/old-proposed-update-graph.yaml new file mode 100644 index 00000000..5a330f3f --- /dev/null +++ b/old-proposed-update-graph.yaml @@ -0,0 +1,3371 @@ +channels: +- edges: + v1.2.0: + - v1.3.0 + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.3.0: + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.4.0: + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.5.0: + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.6.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.7.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.7.1: + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.8.0: + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.9.0: + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.10.0: + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.11.0: + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.12.0: + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.13.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.14.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.14.1: + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.15.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.16.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.16.1: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.16.2: + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.18.0: + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.19.1: + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.21.0: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.22.2: + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.23.1: + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.24.0: + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.25.0: + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 + v1.26.0: + - v1.29.5 + - v1.30.0-phase1 + v1.29.5: + - v1.30.0-phase1 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.30.0-phase1: + - v1.30.0 + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.34.0: + - v1.35.3 + - v1.36.2 + v1.35.3: + - v1.36.2 + v1.36.2: + - v1.37.1 + - v1.38.0 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.47.1: + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.48.0: + - v1.49.2 + - v1.51.1 + v1.49.2: + - v1.51.1 + metadata: + datastore: cockroachdb + default: "true" + name: stable + nodes: + - id: v1.51.1 + migration: add-expiration-support + tag: v1.51.1 + - id: v1.49.2 + migration: add-expiration-support + tag: v1.49.2 + - id: v1.48.0 + migration: add-expiration-support + tag: v1.48.0 + - id: v1.47.1 + migration: add-expiration-support + tag: v1.47.1 + - id: v1.45.4 + migration: add-expiration-support + tag: v1.45.4 + - id: v1.42.1 + migration: add-expiration-support + tag: v1.42.1 + - id: v1.40.1 + migration: add-expiration-support + tag: v1.40.1 + - id: v1.39.1 + migration: add-transaction-metadata-table + tag: v1.39.1 + - id: v1.38.0 + migration: add-transaction-metadata-table + tag: v1.38.0 + - id: v1.37.1 + migration: add-integrity-relationtuple-table + tag: v1.37.1 + - id: v1.36.2 + migration: add-integrity-relationtuple-table + tag: v1.36.2 + - id: v1.35.3 + migration: add-relationship-counters-table + tag: v1.35.3 + - id: v1.34.0 + migration: add-relationship-counters-table + tag: v1.34.0 + - id: v1.33.1 + migration: remove-stats-table + tag: v1.33.1 + - id: v1.32.0 + migration: remove-stats-table + tag: v1.32.0 + - id: v1.31.0 + migration: remove-stats-table + tag: v1.31.0 + - id: v1.30.0 + migration: remove-stats-table + tag: v1.30.0 + - id: v1.30.0-phase1 + migration: add-caveats + tag: v1.30.0 + - id: v1.29.5 + migration: add-caveats + tag: v1.29.5 + - id: v1.26.0 + migration: add-caveats + tag: v1.26.0 + - id: v1.25.0 + migration: add-caveats + tag: v1.25.0 + - id: v1.24.0 + migration: add-caveats + tag: v1.24.0 + - id: v1.23.1 + migration: add-caveats + tag: v1.23.1 + - id: v1.22.2 + migration: add-caveats + tag: v1.22.2 + - id: v1.21.0 + migration: add-caveats + tag: v1.21.0 + - id: v1.19.1 + migration: add-caveats + tag: v1.19.1 + - id: v1.18.0 + migration: add-caveats + tag: v1.18.0 + - id: v1.17.0 + migration: add-caveats + tag: v1.17.0 + - id: v1.16.2 + migration: add-caveats + tag: v1.16.2 + - id: v1.16.1 + migration: add-caveats + tag: v1.16.1 + - id: v1.16.0 + migration: add-caveats + tag: v1.16.0 + - id: v1.15.0 + migration: add-caveats + tag: v1.15.0 + - id: v1.14.1 + migration: add-caveats + tag: v1.14.1 + - id: v1.14.0 + migration: add-caveats + tag: v1.14.0 + - id: v1.13.0 + migration: add-metadata-and-counters + tag: v1.13.0 + - id: v1.12.0 + migration: add-metadata-and-counters + tag: v1.12.0 + - id: v1.11.0 + migration: add-metadata-and-counters + tag: v1.11.0 + - id: v1.10.0 + migration: add-metadata-and-counters + tag: v1.10.0 + - id: v1.9.0 + migration: add-metadata-and-counters + tag: v1.9.0 + - id: v1.8.0 + migration: add-metadata-and-counters + tag: v1.8.0 + - id: v1.7.1 + migration: add-metadata-and-counters + tag: v1.7.1 + - id: v1.7.0 + migration: add-metadata-and-counters + tag: v1.7.0 + - id: v1.6.0 + migration: add-metadata-and-counters + tag: v1.6.0 + - id: v1.5.0 + migration: add-transactions-table + tag: v1.5.0 + - id: v1.4.0 + migration: add-transactions-table + tag: v1.4.0 + - id: v1.3.0 + migration: add-transactions-table + tag: v1.3.0 + - id: v1.2.0 + migration: add-transactions-table + tag: v1.2.0 +- edges: + v1.2.0: + - v1.3.0 + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.3.0: + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.4.0: + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.5.0: + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.6.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.7.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.7.1: + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.8.0: + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.9.0: + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.10.0: + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.11.0: + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.12.0: + - v1.13.0 + - v1.14.0-phase1 + v1.13.0: + - v1.14.0-phase1 + v1.14.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.14.0-phase1: + - v1.14.0-phase2 + v1.14.0-phase2: + - v1.14.0 + v1.14.1: + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.15.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.1: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.2: + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.18.0: + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.19.1: + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.21.0: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.22.2: + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.23.1: + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.24.0: + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.25.0: + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.26.0: + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.29.5: + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.34.0: + - v1.35.3 + - v1.36.2 + v1.35.3: + - v1.36.2 + v1.36.2: + - v1.37.1 + - v1.38.0 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.47.1: + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.48.0: + - v1.49.2 + - v1.51.1 + v1.49.2: + - v1.51.1 + metadata: + datastore: postgres + default: "true" + name: stable + nodes: + - id: v1.51.1 + migration: add-index-for-transaction-gc + tag: v1.51.1 + - id: v1.49.2 + migration: add-index-for-transaction-gc + tag: v1.49.2 + - id: v1.48.0 + migration: add-index-for-transaction-gc + tag: v1.48.0 + - id: v1.47.1 + migration: add-index-for-transaction-gc + tag: v1.47.1 + - id: v1.45.4 + migration: add-index-for-transaction-gc + tag: v1.45.4 + - id: v1.42.1 + migration: add-index-for-transaction-gc + tag: v1.42.1 + - id: v1.40.1 + migration: add-index-for-transaction-gc + tag: v1.40.1 + - id: v1.39.1 + migration: add-watch-api-index-to-relation-tuple-table + tag: v1.39.1 + - id: v1.38.0 + migration: add-metadata-to-transaction-table + tag: v1.38.0 + - id: v1.37.1 + migration: create-relationships-counters-table + tag: v1.37.1 + - id: v1.36.2 + migration: create-relationships-counters-table + tag: v1.36.2 + - id: v1.35.3 + migration: create-relationships-counters-table + tag: v1.35.3 + - id: v1.34.0 + migration: create-relationships-counters-table + tag: v1.34.0 + - id: v1.33.1 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.33.1 + - id: v1.32.0 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.32.0 + - id: v1.31.0 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.31.0 + - id: v1.30.0 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.30.0 + - id: v1.29.5 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.29.5 + - id: v1.26.0 + migration: add-rel-by-alive-resource-relation-subject + tag: v1.26.0 + - id: v1.25.0 + migration: add-gc-covering-index + tag: v1.25.0 + - id: v1.24.0 + migration: add-gc-covering-index + tag: v1.24.0 + - id: v1.23.1 + migration: add-gc-covering-index + tag: v1.23.1 + - id: v1.22.2 + migration: add-gc-covering-index + tag: v1.22.2 + - id: v1.21.0 + migration: add-gc-covering-index + tag: v1.21.0 + - id: v1.19.1 + migration: add-gc-covering-index + tag: v1.19.1 + - id: v1.18.0 + migration: drop-bigserial-ids + tag: v1.18.0 + - id: v1.17.0 + migration: drop-bigserial-ids + tag: v1.17.0 + - id: v1.16.2 + migration: drop-bigserial-ids + tag: v1.16.2 + - id: v1.16.1 + migration: drop-bigserial-ids + tag: v1.16.1 + - id: v1.16.0 + migration: drop-bigserial-ids + tag: v1.16.0 + - id: v1.15.0 + migration: drop-bigserial-ids + tag: v1.15.0 + - id: v1.14.1 + migration: drop-bigserial-ids + tag: v1.14.1 + - id: v1.14.0 + migration: drop-bigserial-ids + tag: v1.14.0 + - id: v1.14.0-phase2 + migration: add-xid-constraints + phase: write-both-read-new + tag: v1.14.0 + - id: v1.14.0-phase1 + migration: add-xid-columns + phase: write-both-read-old + tag: v1.14.0 + - id: v1.13.0 + migration: add-ns-config-id + tag: v1.13.0 + - id: v1.12.0 + migration: add-ns-config-id + tag: v1.12.0 + - id: v1.11.0 + migration: add-ns-config-id + tag: v1.11.0 + - id: v1.10.0 + migration: add-ns-config-id + tag: v1.10.0 + - id: v1.9.0 + migration: add-unique-datastore-id + tag: v1.9.0 + - id: v1.8.0 + migration: add-unique-datastore-id + tag: v1.8.0 + - id: v1.7.1 + migration: add-unique-datastore-id + tag: v1.7.1 + - id: v1.7.0 + migration: add-unique-datastore-id + tag: v1.7.0 + - id: v1.6.0 + migration: add-unique-datastore-id + tag: v1.6.0 + - id: v1.5.0 + migration: add-transaction-timestamp-index + tag: v1.5.0 + - id: v1.4.0 + migration: add-transaction-timestamp-index + tag: v1.4.0 + - id: v1.3.0 + migration: add-transaction-timestamp-index + tag: v1.3.0 + - id: v1.2.0 + migration: add-transaction-timestamp-index + tag: v1.2.0 +- edges: + v1.7.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.7.1: + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.8.0: + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.9.0: + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.10.0: + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.11.0: + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.12.0: + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.13.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.14.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.14.1: + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.15.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.1: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.16.2: + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.18.0: + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.19.1: + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.21.0: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.22.2: + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.23.1: + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.24.0: + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.25.0: + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.26.0: + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.29.5: + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.34.0: + - v1.35.3 + - v1.36.2 + v1.35.3: + - v1.36.2 + v1.36.2: + - v1.37.1 + - v1.38.0 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.47.1: + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.48.0: + - v1.49.2 + - v1.51.1 + v1.49.2: + - v1.51.1 + metadata: + datastore: mysql + default: "true" + name: stable + nodes: + - id: v1.51.1 + migration: add_expiration_to_relation_tuple + tag: v1.51.1 + - id: v1.49.2 + migration: add_expiration_to_relation_tuple + tag: v1.49.2 + - id: v1.48.0 + migration: add_expiration_to_relation_tuple + tag: v1.48.0 + - id: v1.47.1 + migration: add_expiration_to_relation_tuple + tag: v1.47.1 + - id: v1.45.4 + migration: add_expiration_to_relation_tuple + tag: v1.45.4 + - id: v1.42.1 + migration: add_expiration_to_relation_tuple + tag: v1.42.1 + - id: v1.40.1 + migration: add_expiration_to_relation_tuple + tag: v1.40.1 + - id: v1.39.1 + migration: add_metadata_to_transaction_table + tag: v1.39.1 + - id: v1.38.0 + migration: add_metadata_to_transaction_table + tag: v1.38.0 + - id: v1.37.1 + migration: add_relationship_counters_table + tag: v1.37.1 + - id: v1.36.2 + migration: add_relationship_counters_table + tag: v1.36.2 + - id: v1.35.3 + migration: add_relationship_counters_table + tag: v1.35.3 + - id: v1.34.0 + migration: add_relationship_counters_table + tag: v1.34.0 + - id: v1.33.1 + migration: watch_api_relation_tuple_index + tag: v1.33.1 + - id: v1.32.0 + migration: watch_api_relation_tuple_index + tag: v1.32.0 + - id: v1.31.0 + migration: watch_api_relation_tuple_index + tag: v1.31.0 + - id: v1.30.0 + migration: watch_api_relation_tuple_index + tag: v1.30.0 + - id: v1.29.5 + migration: watch_api_relation_tuple_index + tag: v1.29.5 + - id: v1.26.0 + migration: longblob_definitions + tag: v1.26.0 + - id: v1.25.0 + migration: longblob_definitions + tag: v1.25.0 + - id: v1.24.0 + migration: extend_object_id + tag: v1.24.0 + - id: v1.23.1 + migration: extend_object_id + tag: v1.23.1 + - id: v1.22.2 + migration: extend_object_id + tag: v1.22.2 + - id: v1.21.0 + migration: extend_object_id + tag: v1.21.0 + - id: v1.19.1 + migration: add_caveat + tag: v1.19.1 + - id: v1.18.0 + migration: add_caveat + tag: v1.18.0 + - id: v1.17.0 + migration: add_caveat + tag: v1.17.0 + - id: v1.16.2 + migration: add_caveat + tag: v1.16.2 + - id: v1.16.1 + migration: add_caveat + tag: v1.16.1 + - id: v1.16.0 + migration: add_caveat + tag: v1.16.0 + - id: v1.15.0 + migration: add_caveat + tag: v1.15.0 + - id: v1.14.1 + migration: add_caveat + tag: v1.14.1 + - id: v1.14.0 + migration: add_caveat + tag: v1.14.0 + - id: v1.13.0 + migration: add_ns_config_id + tag: v1.13.0 + - id: v1.12.0 + migration: add_ns_config_id + tag: v1.12.0 + - id: v1.11.0 + migration: add_ns_config_id + tag: v1.11.0 + - id: v1.10.0 + migration: add_ns_config_id + tag: v1.10.0 + - id: v1.9.0 + migration: add_unique_datastore_id + tag: v1.9.0 + - id: v1.8.0 + migration: add_unique_datastore_id + tag: v1.8.0 + - id: v1.7.1 + migration: add_unique_datastore_id + tag: v1.7.1 + - id: v1.7.0 + migration: add_unique_datastore_id + tag: v1.7.0 +- edges: + v1.8.0: + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.9.0: + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.10.0: + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.11.0: + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.12.0: + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.13.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.14.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.14.1: + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.15.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.16.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.16.1: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.16.2: + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.18.0: + - v1.19.1 + - v1.21.0 + - v1.22.2-phase1 + v1.19.1: + - v1.21.0 + - v1.22.2-phase1 + v1.21.0: + - v1.22.2-phase1 + v1.22.2: + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5-phase1 + v1.22.2-phase1: + - v1.22.2-phase2 + v1.22.2-phase2: + - v1.22.2 + v1.23.1: + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5-phase1 + v1.24.0: + - v1.25.0 + - v1.26.0 + - v1.29.5-phase1 + v1.25.0: + - v1.26.0 + - v1.29.5-phase1 + v1.26.0: + - v1.29.5-phase1 + v1.29.5: + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.29.5-phase1: + - v1.29.5 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.34.0: + - v1.35.3 + - v1.36.2 + v1.35.3: + - v1.36.2 + v1.36.2: + - v1.37.1 + - v1.38.0 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + v1.47.1: + - v1.48.0 + - v1.49.2 + v1.48.0: + - v1.49.2 + metadata: + datastore: spanner + default: "true" + name: stable + nodes: + - id: v1.49.2 + migration: add-expiration-support + tag: v1.51.1 + - id: v1.48.0 + migration: add-expiration-support + tag: v1.48.0 + - id: v1.47.1 + migration: add-expiration-support + tag: v1.47.1 + - id: v1.45.4 + migration: add-expiration-support + tag: v1.45.4 + - id: v1.42.1 + migration: add-expiration-support + tag: v1.42.1 + - id: v1.40.1 + migration: add-expiration-support + tag: v1.40.1 + - id: v1.39.1 + migration: add-transaction-metadata-table + tag: v1.39.1 + - id: v1.38.0 + migration: add-transaction-metadata-table + tag: v1.38.0 + - id: v1.37.1 + migration: add-relationship-counter-table + tag: v1.37.1 + - id: v1.36.2 + migration: add-relationship-counter-table + tag: v1.36.2 + - id: v1.35.3 + migration: add-relationship-counter-table + tag: v1.35.3 + - id: v1.34.0 + migration: add-relationship-counter-table + tag: v1.34.0 + - id: v1.33.1 + migration: delete-older-changestreams + tag: v1.33.1 + - id: v1.32.0 + migration: delete-older-changestreams + tag: v1.32.0 + - id: v1.31.0 + migration: delete-older-changestreams + tag: v1.31.0 + - id: v1.30.0 + migration: delete-older-changestreams + tag: v1.30.0 + - id: v1.29.5 + migration: delete-older-changestreams + tag: v1.29.5 + - id: v1.29.5-phase1 + migration: register-combined-change-stream + tag: v1.29.5 + - id: v1.26.0 + migration: drop-changelog-table + tag: v1.26.0 + - id: v1.25.0 + migration: drop-changelog-table + tag: v1.25.0 + - id: v1.24.0 + migration: drop-changelog-table + tag: v1.24.0 + - id: v1.23.1 + migration: drop-changelog-table + tag: v1.23.1 + - id: v1.22.2 + migration: drop-changelog-table + tag: v1.22.2 + - id: v1.22.2-phase2 + migration: register-tuple-change-stream + phase: write-changelog-read-stream + tag: v1.22.2 + - id: v1.22.2-phase1 + migration: register-tuple-change-stream + phase: write-changelog-read-changelog + tag: v1.22.2 + - id: v1.21.0 + migration: add-caveats + tag: v1.21.0 + - id: v1.19.1 + migration: add-caveats + tag: v1.19.1 + - id: v1.18.0 + migration: add-caveats + tag: v1.18.0 + - id: v1.17.0 + migration: add-caveats + tag: v1.17.0 + - id: v1.16.2 + migration: add-caveats + tag: v1.16.2 + - id: v1.16.1 + migration: add-caveats + tag: v1.16.1 + - id: v1.16.0 + migration: add-caveats + tag: v1.16.0 + - id: v1.15.0 + migration: add-caveats + tag: v1.15.0 + - id: v1.14.1 + migration: add-caveats + tag: v1.14.1 + - id: v1.14.0 + migration: add-caveats + tag: v1.14.0 + - id: v1.13.0 + migration: add-metadata-and-counters + tag: v1.13.0 + - id: v1.12.0 + migration: add-metadata-and-counters + tag: v1.12.0 + - id: v1.11.0 + migration: add-metadata-and-counters + tag: v1.11.0 + - id: v1.10.0 + migration: add-metadata-and-counters + tag: v1.10.0 + - id: v1.9.0 + migration: add-metadata-and-counters + tag: v1.9.0 + - id: v1.8.0 + migration: add-metadata-and-counters + tag: v1.8.0 +- edges: + v1.2.0: + - v1.3.0 + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.3.0: + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.4.0: + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.5.0: + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.6.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.7.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.7.1: + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.8.0: + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.9.0: + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.10.0: + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.11.0: + - v1.12.0 + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.12.0: + - v1.13.0 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.13.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.14.0: + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.14.1: + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.15.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.16.0: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.16.1: + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.16.2: + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.18.0: + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.19.1: + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.21.0: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.22.2: + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.23.1: + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.24.0: + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.25.0: + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.26.0: + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.29.5: + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.34.0: + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.35.3: + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.36.2: + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.47.1: + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.48.0: + - v1.49.2 + - v1.51.1 + v1.49.2: + - v1.51.1 + metadata: + datastore: memory + default: "true" + name: stable + nodes: + - id: v1.51.1 + tag: v1.51.1 + - id: v1.49.2 + tag: v1.49.2 + - id: v1.48.0 + tag: v1.48.0 + - id: v1.47.1 + tag: v1.47.1 + - id: v1.45.4 + tag: v1.45.4 + - id: v1.42.1 + tag: v1.42.1 + - id: v1.40.1 + tag: v1.40.1 + - id: v1.39.1 + tag: v1.39.1 + - id: v1.38.0 + tag: v1.38.0 + - id: v1.37.1 + tag: v1.37.1 + - id: v1.36.2 + tag: v1.36.2 + - id: v1.35.3 + tag: v1.35.3 + - id: v1.34.0 + tag: v1.34.0 + - id: v1.33.1 + tag: v1.33.1 + - id: v1.32.0 + tag: v1.32.0 + - id: v1.31.0 + tag: v1.31.0 + - id: v1.30.0 + tag: v1.30.0 + - id: v1.29.5 + tag: v1.29.5 + - id: v1.26.0 + tag: v1.26.0 + - id: v1.25.0 + tag: v1.25.0 + - id: v1.24.0 + tag: v1.24.0 + - id: v1.23.1 + tag: v1.23.1 + - id: v1.22.2 + tag: v1.22.2 + - id: v1.21.0 + tag: v1.21.0 + - id: v1.19.1 + tag: v1.19.1 + - id: v1.18.0 + tag: v1.18.0 + - id: v1.17.0 + tag: v1.17.0 + - id: v1.16.2 + tag: v1.16.2 + - id: v1.16.1 + tag: v1.16.1 + - id: v1.16.0 + tag: v1.16.0 + - id: v1.15.0 + tag: v1.15.0 + - id: v1.14.1 + tag: v1.14.1 + - id: v1.14.0 + tag: v1.14.0 + - id: v1.13.0 + tag: v1.13.0 + - id: v1.12.0 + tag: v1.12.0 + - id: v1.11.0 + tag: v1.11.0 + - id: v1.10.0 + tag: v1.10.0 + - id: v1.9.0 + tag: v1.9.0 + - id: v1.8.0 + tag: v1.8.0 + - id: v1.7.1 + tag: v1.7.1 + - id: v1.7.0 + tag: v1.7.0 + - id: v1.6.0 + tag: v1.6.0 + - id: v1.5.0 + tag: v1.5.0 + - id: v1.4.0 + tag: v1.4.0 + - id: v1.3.0 + tag: v1.3.0 + - id: v1.2.0 + tag: v1.2.0 +imageName: ghcr.io/authzed/spicedb diff --git a/proposed-update-graph.yaml b/proposed-update-graph.yaml index 017c159a..985d9aa5 100644 --- a/proposed-update-graph.yaml +++ b/proposed-update-graph.yaml @@ -12,7 +12,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.3.0: - v1.4.0 - v1.5.0 @@ -24,7 +37,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.4.0: - v1.5.0 - v1.6.0 @@ -35,7 +61,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.5.0: - v1.6.0 - v1.7.1 @@ -45,7 +84,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.6.0: - v1.7.1 - v1.8.0 @@ -54,7 +106,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.7.0: - v1.7.1 - v1.8.0 @@ -63,7 +128,20 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.7.1: - v1.8.0 - v1.9.0 @@ -71,34 +149,125 @@ channels: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.8.0: - v1.9.0 - v1.10.0 - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.9.0: - v1.10.0 - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.10.0: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.11.0: - v1.12.0 - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.12.0: - v1.13.0 - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.13.0: - - v1.14.0-phase1 + - v1.14.1 + - v1.15.0 + - v1.16.2 + - v1.17.0 + - v1.18.0 + - v1.19.1 + - v1.21.0 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0-phase1 v1.14.0: - v1.14.1 - v1.15.0 @@ -113,17 +282,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - v1.14.0-phase1: - - v1.14.0-phase2 - v1.14.0-phase2: - - v1.14.0 + - v1.30.0-phase1 v1.14.1: - v1.15.0 - v1.16.2 @@ -137,13 +296,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.15.0: - v1.16.2 - v1.17.0 @@ -156,13 +309,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.16.0: - v1.16.2 - v1.17.0 @@ -175,13 +322,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.16.1: - v1.16.2 - v1.17.0 @@ -194,13 +335,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.16.2: - v1.17.0 - v1.18.0 @@ -212,13 +347,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.17.0: - v1.18.0 - v1.19.1 @@ -229,13 +358,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.18.0: - v1.19.1 - v1.21.0 @@ -245,13 +368,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.19.1: - v1.21.0 - v1.22.2 @@ -260,13 +377,7 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.21.0: - v1.22.2 - v1.23.1 @@ -274,77 +385,43 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.22.2: - v1.23.1 - v1.24.0 - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.23.1: - v1.24.0 - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.24.0: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.25.0: - v1.26.0 - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.26.0: - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 + - v1.30.0-phase1 v1.29.5: - - v1.30.0 + - v1.30.0-phase1 + v1.30.0: - v1.31.0 - v1.32.0 - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - v1.30.0: + v1.30.0-phase1: + - v1.30.0 - v1.31.0 - v1.32.0 - v1.33.1 @@ -376,14 +453,6 @@ channels: - v1.38.0 v1.37.1: - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.38.0: - v1.39.1 - v1.40.1 @@ -429,155 +498,151 @@ channels: v1.49.2: - v1.51.1 metadata: - datastore: postgres + datastore: cockroachdb default: "true" name: stable nodes: - id: v1.51.1 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.51.1 - id: v1.49.2 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.49.2 - id: v1.48.0 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.48.0 - id: v1.47.1 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.47.1 - id: v1.45.4 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.45.4 - id: v1.42.1 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.42.1 - id: v1.40.1 - migration: add-index-for-transaction-gc + migration: add-expiration-support tag: v1.40.1 - id: v1.39.1 - migration: add-watch-api-index-to-relation-tuple-table + migration: add-transaction-metadata-table tag: v1.39.1 - id: v1.38.0 - migration: add-metadata-to-transaction-table + migration: add-transaction-metadata-table tag: v1.38.0 - id: v1.37.1 - migration: create-relationships-counters-table + migration: add-integrity-relationtuple-table tag: v1.37.1 - id: v1.36.2 - migration: create-relationships-counters-table + migration: add-integrity-relationtuple-table tag: v1.36.2 - id: v1.35.3 - migration: create-relationships-counters-table + migration: add-relationship-counters-table tag: v1.35.3 - id: v1.34.0 - migration: create-relationships-counters-table + migration: add-relationship-counters-table tag: v1.34.0 - id: v1.33.1 - migration: add-rel-by-alive-resource-relation-subject + migration: remove-stats-table tag: v1.33.1 - id: v1.32.0 - migration: add-rel-by-alive-resource-relation-subject + migration: remove-stats-table tag: v1.32.0 - id: v1.31.0 - migration: add-rel-by-alive-resource-relation-subject + migration: remove-stats-table tag: v1.31.0 - id: v1.30.0 - migration: add-rel-by-alive-resource-relation-subject + migration: remove-stats-table + tag: v1.30.0 + - id: v1.30.0-phase1 + migration: add-caveats + phase: write-both-read-new tag: v1.30.0 - id: v1.29.5 - migration: add-rel-by-alive-resource-relation-subject + migration: add-caveats tag: v1.29.5 - id: v1.26.0 - migration: add-rel-by-alive-resource-relation-subject + migration: add-caveats tag: v1.26.0 - id: v1.25.0 - migration: add-gc-covering-index + migration: add-caveats tag: v1.25.0 - id: v1.24.0 - migration: add-gc-covering-index + migration: add-caveats tag: v1.24.0 - id: v1.23.1 - migration: add-gc-covering-index + migration: add-caveats tag: v1.23.1 - id: v1.22.2 - migration: add-gc-covering-index + migration: add-caveats tag: v1.22.2 - id: v1.21.0 - migration: add-gc-covering-index + migration: add-caveats tag: v1.21.0 - id: v1.19.1 - migration: add-gc-covering-index + migration: add-caveats tag: v1.19.1 - id: v1.18.0 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.18.0 - id: v1.17.0 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.17.0 - id: v1.16.2 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.16.2 - id: v1.16.1 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.16.1 - id: v1.16.0 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.16.0 - id: v1.15.0 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.15.0 - id: v1.14.1 - migration: drop-bigserial-ids + migration: add-caveats tag: v1.14.1 - id: v1.14.0 - migration: drop-bigserial-ids - tag: v1.14.0 - - id: v1.14.0-phase2 - migration: add-xid-constraints - phase: write-both-read-new - tag: v1.14.0 - - id: v1.14.0-phase1 - migration: add-xid-columns - phase: write-both-read-old + migration: add-caveats tag: v1.14.0 - id: v1.13.0 - migration: add-ns-config-id + migration: add-metadata-and-counters tag: v1.13.0 - id: v1.12.0 - migration: add-ns-config-id + migration: add-metadata-and-counters tag: v1.12.0 - id: v1.11.0 - migration: add-ns-config-id + migration: add-metadata-and-counters tag: v1.11.0 - id: v1.10.0 - migration: add-ns-config-id + migration: add-metadata-and-counters tag: v1.10.0 - id: v1.9.0 - migration: add-unique-datastore-id + migration: add-metadata-and-counters tag: v1.9.0 - id: v1.8.0 - migration: add-unique-datastore-id + migration: add-metadata-and-counters tag: v1.8.0 - id: v1.7.1 - migration: add-unique-datastore-id + migration: add-metadata-and-counters tag: v1.7.1 - id: v1.7.0 - migration: add-unique-datastore-id + migration: add-metadata-and-counters tag: v1.7.0 - id: v1.6.0 - migration: add-unique-datastore-id + migration: add-metadata-and-counters tag: v1.6.0 - id: v1.5.0 - migration: add-transaction-timestamp-index + migration: add-transactions-table tag: v1.5.0 - id: v1.4.0 - migration: add-transaction-timestamp-index + migration: add-transactions-table tag: v1.4.0 - id: v1.3.0 - migration: add-transaction-timestamp-index + migration: add-transactions-table tag: v1.3.0 - id: v1.2.0 - migration: add-transaction-timestamp-index + migration: add-transactions-table tag: v1.2.0 - edges: v1.2.0: @@ -605,7 +670,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.3.0: - v1.4.0 - v1.5.0 @@ -630,7 +711,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.4.0: - v1.5.0 - v1.6.0 @@ -654,7 +751,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.5.0: - v1.6.0 - v1.7.1 @@ -677,7 +790,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.6.0: - v1.7.1 - v1.8.0 @@ -699,7 +828,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.7.0: - v1.7.1 - v1.8.0 @@ -721,7 +866,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.7.1: - v1.8.0 - v1.9.0 @@ -742,7 +903,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.8.0: - v1.9.0 - v1.10.0 @@ -762,7 +939,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.9.0: - v1.10.0 - v1.11.0 @@ -781,7 +974,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.10.0: - v1.11.0 - v1.12.0 @@ -799,7 +1008,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.11.0: - v1.12.0 - v1.13.0 @@ -816,7 +1041,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.12.0: - v1.13.0 - v1.14.1 @@ -832,7 +1073,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.13.0: - v1.14.1 - v1.15.0 @@ -847,7 +1104,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.14.0: - v1.14.1 - v1.15.0 @@ -862,7 +1135,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.14.1: - v1.15.0 - v1.16.2 @@ -876,7 +1165,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.15.0: - v1.16.2 - v1.17.0 @@ -889,7 +1194,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.16.0: - v1.16.2 - v1.17.0 @@ -902,7 +1223,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.16.1: - v1.16.2 - v1.17.0 @@ -915,7 +1252,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.16.2: - v1.17.0 - v1.18.0 @@ -927,18 +1280,50 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 - v1.17.0: - - v1.18.0 - - v1.19.1 - - v1.21.0 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.17.0: + - v1.18.0 + - v1.19.1 + - v1.21.0 - v1.22.2 - v1.23.1 - v1.24.0 - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.18.0: - v1.19.1 - v1.21.0 @@ -948,7 +1333,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.19.1: - v1.21.0 - v1.22.2 @@ -957,7 +1358,23 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.21.0: - v1.22.2 - v1.23.1 @@ -965,68 +1382,155 @@ channels: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.22.2: - v1.23.1 - v1.24.0 - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.23.1: - v1.24.0 - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.24.0: - v1.25.0 - v1.26.0 - v1.29.5 - - v1.30.0-phase1 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 v1.25.0: - v1.26.0 - v1.29.5 - - v1.30.0-phase1 - v1.26.0: - - v1.29.5 - - v1.30.0-phase1 - v1.29.5: - - v1.30.0-phase1 - v1.30.0: + - v1.30.0 - v1.31.0 - v1.32.0 - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - v1.30.0-phase1: + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.26.0: + - v1.29.5 - v1.30.0 - v1.31.0: + - v1.31.0 - v1.32.0 - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - v1.32.0: + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.29.5: + - v1.30.0 + - v1.31.0 + - v1.32.0 - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - v1.33.1: + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.30.0: + - v1.31.0 + - v1.32.0 + - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - v1.34.0: - - v1.35.3 - - v1.36.2 - v1.35.3: - - v1.36.2 - v1.36.2: - v1.37.1 - v1.38.0 - v1.37.1: - - v1.38.0 - v1.39.1 - v1.40.1 - v1.42.1 @@ -1035,7 +1539,14 @@ channels: - v1.48.0 - v1.49.2 - v1.51.1 - v1.38.0: + v1.31.0: + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 - v1.39.1 - v1.40.1 - v1.42.1 @@ -1044,7 +1555,14 @@ channels: - v1.48.0 - v1.49.2 - v1.51.1 - v1.39.1: + v1.32.0: + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 - v1.40.1 - v1.42.1 - v1.45.4 @@ -1052,27 +1570,104 @@ channels: - v1.48.0 - v1.49.2 - v1.51.1 - v1.40.1: + v1.33.1: + - v1.34.0 + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 - v1.42.1 - v1.45.4 - v1.47.1 - v1.48.0 - v1.49.2 - v1.51.1 - v1.42.1: + v1.34.0: + - v1.35.3 + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 - v1.45.4 - v1.47.1 - v1.48.0 - v1.49.2 - v1.51.1 - v1.45.4: + v1.35.3: + - v1.36.2 + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 - v1.47.1 - v1.48.0 - v1.49.2 - v1.51.1 - v1.47.1: - - v1.48.0 - - v1.49.2 + v1.36.2: + - v1.37.1 + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.37.1: + - v1.38.0 + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.38.0: + - v1.39.1 + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.39.1: + - v1.40.1 + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.40.1: + - v1.42.1 + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.42.1: + - v1.45.4 + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.45.4: + - v1.47.1 + - v1.48.0 + - v1.49.2 + - v1.51.1 + v1.47.1: + - v1.48.0 + - v1.49.2 - v1.51.1 v1.48.0: - v1.49.2 @@ -1080,150 +1675,101 @@ channels: v1.49.2: - v1.51.1 metadata: - datastore: cockroachdb + datastore: memory default: "true" name: stable nodes: - id: v1.51.1 - migration: add-expiration-support tag: v1.51.1 - id: v1.49.2 - migration: add-expiration-support tag: v1.49.2 - id: v1.48.0 - migration: add-expiration-support tag: v1.48.0 - id: v1.47.1 - migration: add-expiration-support tag: v1.47.1 - id: v1.45.4 - migration: add-expiration-support tag: v1.45.4 - id: v1.42.1 - migration: add-expiration-support tag: v1.42.1 - id: v1.40.1 - migration: add-expiration-support tag: v1.40.1 - id: v1.39.1 - migration: add-transaction-metadata-table tag: v1.39.1 - id: v1.38.0 - migration: add-transaction-metadata-table tag: v1.38.0 - id: v1.37.1 - migration: add-integrity-relationtuple-table tag: v1.37.1 - id: v1.36.2 - migration: add-integrity-relationtuple-table tag: v1.36.2 - id: v1.35.3 - migration: add-relationship-counters-table tag: v1.35.3 - id: v1.34.0 - migration: add-relationship-counters-table tag: v1.34.0 - id: v1.33.1 - migration: remove-stats-table tag: v1.33.1 - id: v1.32.0 - migration: remove-stats-table tag: v1.32.0 - id: v1.31.0 - migration: remove-stats-table tag: v1.31.0 - id: v1.30.0 - migration: remove-stats-table - tag: v1.30.0 - - id: v1.30.0-phase1 - migration: add-caveats tag: v1.30.0 - id: v1.29.5 - migration: add-caveats tag: v1.29.5 - id: v1.26.0 - migration: add-caveats tag: v1.26.0 - id: v1.25.0 - migration: add-caveats tag: v1.25.0 - id: v1.24.0 - migration: add-caveats tag: v1.24.0 - id: v1.23.1 - migration: add-caveats tag: v1.23.1 - id: v1.22.2 - migration: add-caveats tag: v1.22.2 - id: v1.21.0 - migration: add-caveats tag: v1.21.0 - id: v1.19.1 - migration: add-caveats tag: v1.19.1 - id: v1.18.0 - migration: add-caveats tag: v1.18.0 - id: v1.17.0 - migration: add-caveats tag: v1.17.0 - id: v1.16.2 - migration: add-caveats tag: v1.16.2 - id: v1.16.1 - migration: add-caveats tag: v1.16.1 - id: v1.16.0 - migration: add-caveats tag: v1.16.0 - id: v1.15.0 - migration: add-caveats tag: v1.15.0 - id: v1.14.1 - migration: add-caveats tag: v1.14.1 - id: v1.14.0 - migration: add-caveats tag: v1.14.0 - id: v1.13.0 - migration: add-metadata-and-counters tag: v1.13.0 - id: v1.12.0 - migration: add-metadata-and-counters tag: v1.12.0 - id: v1.11.0 - migration: add-metadata-and-counters tag: v1.11.0 - id: v1.10.0 - migration: add-metadata-and-counters tag: v1.10.0 - id: v1.9.0 - migration: add-metadata-and-counters tag: v1.9.0 - id: v1.8.0 - migration: add-metadata-and-counters tag: v1.8.0 - id: v1.7.1 - migration: add-metadata-and-counters tag: v1.7.1 - id: v1.7.0 - migration: add-metadata-and-counters tag: v1.7.0 - id: v1.6.0 - migration: add-metadata-and-counters tag: v1.6.0 - id: v1.5.0 - migration: add-transactions-table tag: v1.5.0 - id: v1.4.0 - migration: add-transactions-table tag: v1.4.0 - id: v1.3.0 - migration: add-transactions-table tag: v1.3.0 - id: v1.2.0 - migration: add-transactions-table tag: v1.2.0 - edges: v1.7.0: @@ -1695,14 +2241,6 @@ channels: - v1.38.0 v1.37.1: - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.38.0: - v1.39.1 - v1.40.1 @@ -1876,67 +2414,106 @@ channels: migration: add_unique_datastore_id tag: v1.7.0 - edges: + v1.2.0: + - v1.3.0 + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.3.0: + - v1.4.0 + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.4.0: + - v1.5.0 + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.5.0: + - v1.6.0 + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.6.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.7.0: + - v1.7.1 + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 + v1.7.1: + - v1.8.0 + - v1.9.0 + - v1.10.0 + - v1.11.0 + - v1.12.0 + - v1.13.0 + - v1.14.0-phase1 v1.8.0: - v1.9.0 - v1.10.0 - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2-phase1 + - v1.14.0-phase1 v1.9.0: - v1.10.0 - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2-phase1 + - v1.14.0-phase1 v1.10.0: - v1.11.0 - v1.12.0 - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2-phase1 + - v1.14.0-phase1 v1.11.0: - v1.12.0 - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2-phase1 + - v1.14.0-phase1 v1.12.0: - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2-phase1 + - v1.14.0-phase1 v1.13.0: + - v1.14.0-phase1 + v1.14.0: - v1.14.1 - v1.15.0 - v1.16.2 @@ -1944,8 +2521,23 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 - v1.14.0: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 + v1.14.0-phase1: + - v1.14.0-phase2 + v1.14.0-phase2: + - v1.14.0 - v1.14.1 - v1.15.0 - v1.16.2 @@ -1953,7 +2545,19 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.14.1: - v1.15.0 - v1.16.2 @@ -1961,72 +2565,211 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.15.0: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.16.0: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.16.1: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.16.2: - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.17.0: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.18.0: - v1.19.1 - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.19.1: - v1.21.0 - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.21.0: - - v1.22.2-phase1 + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.22.2: - v1.23.1 - v1.24.0 - v1.25.0 - v1.26.0 - - v1.29.5-phase1 - v1.22.2-phase1: - - v1.22.2-phase2 - v1.22.2-phase2: - - v1.22.2 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.23.1: - v1.24.0 - v1.25.0 - v1.26.0 - - v1.29.5-phase1 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.24.0: - v1.25.0 - v1.26.0 - - v1.29.5-phase1 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.25.0: - v1.26.0 - - v1.29.5-phase1 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.26.0: - - v1.29.5-phase1 + - v1.29.5 + - v1.30.0 + - v1.31.0 + - v1.32.0 + - v1.33.1 + - v1.34.0 + - v1.35.3 + - v1.36.2 v1.29.5: - v1.30.0 - v1.31.0 @@ -2035,8 +2778,6 @@ channels: - v1.34.0 - v1.35.3 - v1.36.2 - v1.29.5-phase1: - - v1.29.5 v1.30.0: - v1.31.0 - v1.32.0 @@ -2069,13 +2810,6 @@ channels: - v1.38.0 v1.37.1: - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 v1.38.0: - v1.39.1 - v1.40.1 @@ -2084,6 +2818,7 @@ channels: - v1.47.1 - v1.48.0 - v1.49.2 + - v1.51.1 v1.39.1: - v1.40.1 - v1.42.1 @@ -2091,164 +2826,187 @@ channels: - v1.47.1 - v1.48.0 - v1.49.2 + - v1.51.1 v1.40.1: - v1.42.1 - v1.45.4 - v1.47.1 - v1.48.0 - v1.49.2 + - v1.51.1 v1.42.1: - v1.45.4 - v1.47.1 - v1.48.0 - v1.49.2 + - v1.51.1 v1.45.4: - v1.47.1 - v1.48.0 - v1.49.2 + - v1.51.1 v1.47.1: - v1.48.0 - v1.49.2 + - v1.51.1 v1.48.0: - v1.49.2 + - v1.51.1 + v1.49.2: + - v1.51.1 metadata: - datastore: spanner + datastore: postgres default: "true" name: stable nodes: - - id: v1.49.2 - migration: add-expiration-support + - id: v1.51.1 + migration: add-index-for-transaction-gc tag: v1.51.1 + - id: v1.49.2 + migration: add-index-for-transaction-gc + tag: v1.49.2 - id: v1.48.0 - migration: add-expiration-support + migration: add-index-for-transaction-gc tag: v1.48.0 - id: v1.47.1 - migration: add-expiration-support + migration: add-index-for-transaction-gc tag: v1.47.1 - id: v1.45.4 - migration: add-expiration-support + migration: add-index-for-transaction-gc tag: v1.45.4 - id: v1.42.1 - migration: add-expiration-support + migration: add-index-for-transaction-gc tag: v1.42.1 - id: v1.40.1 - migration: add-expiration-support + migration: add-index-for-transaction-gc tag: v1.40.1 - id: v1.39.1 - migration: add-transaction-metadata-table + migration: add-watch-api-index-to-relation-tuple-table tag: v1.39.1 - id: v1.38.0 - migration: add-transaction-metadata-table + migration: add-metadata-to-transaction-table tag: v1.38.0 - id: v1.37.1 - migration: add-relationship-counter-table + migration: create-relationships-counters-table tag: v1.37.1 - id: v1.36.2 - migration: add-relationship-counter-table + migration: create-relationships-counters-table tag: v1.36.2 - id: v1.35.3 - migration: add-relationship-counter-table + migration: create-relationships-counters-table tag: v1.35.3 - id: v1.34.0 - migration: add-relationship-counter-table + migration: create-relationships-counters-table tag: v1.34.0 - id: v1.33.1 - migration: delete-older-changestreams + migration: add-rel-by-alive-resource-relation-subject tag: v1.33.1 - id: v1.32.0 - migration: delete-older-changestreams + migration: add-rel-by-alive-resource-relation-subject tag: v1.32.0 - id: v1.31.0 - migration: delete-older-changestreams + migration: add-rel-by-alive-resource-relation-subject tag: v1.31.0 - id: v1.30.0 - migration: delete-older-changestreams + migration: add-rel-by-alive-resource-relation-subject tag: v1.30.0 - id: v1.29.5 - migration: delete-older-changestreams - tag: v1.29.5 - - id: v1.29.5-phase1 - migration: register-combined-change-stream + migration: add-rel-by-alive-resource-relation-subject tag: v1.29.5 - id: v1.26.0 - migration: drop-changelog-table + migration: add-rel-by-alive-resource-relation-subject tag: v1.26.0 - id: v1.25.0 - migration: drop-changelog-table + migration: add-gc-covering-index tag: v1.25.0 - id: v1.24.0 - migration: drop-changelog-table + migration: add-gc-covering-index tag: v1.24.0 - id: v1.23.1 - migration: drop-changelog-table + migration: add-gc-covering-index tag: v1.23.1 - id: v1.22.2 - migration: drop-changelog-table - tag: v1.22.2 - - id: v1.22.2-phase2 - migration: register-tuple-change-stream - phase: write-changelog-read-stream - tag: v1.22.2 - - id: v1.22.2-phase1 - migration: register-tuple-change-stream - phase: write-changelog-read-changelog + migration: add-gc-covering-index tag: v1.22.2 - id: v1.21.0 - migration: add-caveats + migration: add-gc-covering-index tag: v1.21.0 - id: v1.19.1 - migration: add-caveats + migration: add-gc-covering-index tag: v1.19.1 - id: v1.18.0 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.18.0 - id: v1.17.0 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.17.0 - id: v1.16.2 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.16.2 - id: v1.16.1 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.16.1 - id: v1.16.0 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.16.0 - id: v1.15.0 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.15.0 - id: v1.14.1 - migration: add-caveats + migration: drop-bigserial-ids tag: v1.14.1 - id: v1.14.0 - migration: add-caveats + migration: drop-bigserial-ids + tag: v1.14.0 + - id: v1.14.0-phase2 + migration: add-xid-constraints + phase: write-both-read-new + tag: v1.14.0 + - id: v1.14.0-phase1 + migration: add-xid-columns + phase: write-both-read-old tag: v1.14.0 - id: v1.13.0 - migration: add-metadata-and-counters + migration: add-ns-config-id tag: v1.13.0 - id: v1.12.0 - migration: add-metadata-and-counters + migration: add-ns-config-id tag: v1.12.0 - id: v1.11.0 - migration: add-metadata-and-counters + migration: add-ns-config-id tag: v1.11.0 - id: v1.10.0 - migration: add-metadata-and-counters + migration: add-ns-config-id tag: v1.10.0 - id: v1.9.0 - migration: add-metadata-and-counters + migration: add-unique-datastore-id tag: v1.9.0 - id: v1.8.0 - migration: add-metadata-and-counters + migration: add-unique-datastore-id tag: v1.8.0 + - id: v1.7.1 + migration: add-unique-datastore-id + tag: v1.7.1 + - id: v1.7.0 + migration: add-unique-datastore-id + tag: v1.7.0 + - id: v1.6.0 + migration: add-unique-datastore-id + tag: v1.6.0 + - id: v1.5.0 + migration: add-transaction-timestamp-index + tag: v1.5.0 + - id: v1.4.0 + migration: add-transaction-timestamp-index + tag: v1.4.0 + - id: v1.3.0 + migration: add-transaction-timestamp-index + tag: v1.3.0 + - id: v1.2.0 + migration: add-transaction-timestamp-index + tag: v1.2.0 - edges: - v1.2.0: - - v1.3.0 - - v1.4.0 - - v1.5.0 - - v1.6.0 - - v1.7.1 - - v1.8.0 + v1.8.0: - v1.9.0 - v1.10.0 - v1.11.0 @@ -2261,36 +3019,8 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.3.0: - - v1.4.0 - - v1.5.0 - - v1.6.0 - - v1.7.1 - - v1.8.0 - - v1.9.0 + - v1.22.2-phase1 + v1.9.0: - v1.10.0 - v1.11.0 - v1.12.0 @@ -2302,36 +3032,8 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.4.0: - - v1.5.0 - - v1.6.0 - - v1.7.1 - - v1.8.0 - - v1.9.0 - - v1.10.0 + - v1.22.2-phase1 + v1.10.0: - v1.11.0 - v1.12.0 - v1.13.0 @@ -2342,36 +3044,8 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.5.0: - - v1.6.0 - - v1.7.1 - - v1.8.0 - - v1.9.0 - - v1.10.0 - - v1.11.0 + - v1.22.2-phase1 + v1.11.0: - v1.12.0 - v1.13.0 - v1.14.1 @@ -2381,36 +3055,8 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.6.0: - - v1.7.1 - - v1.8.0 - - v1.9.0 - - v1.10.0 - - v1.11.0 - - v1.12.0 + - v1.22.2-phase1 + v1.12.0: - v1.13.0 - v1.14.1 - v1.15.0 @@ -2419,37 +3065,8 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.7.0: - - v1.7.1 - - v1.8.0 - - v1.9.0 - - v1.10.0 - - v1.11.0 - - v1.12.0 - - v1.13.0 + - v1.22.2-phase1 + v1.13.0: - v1.14.1 - v1.15.0 - v1.16.2 @@ -2457,267 +3074,7 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.7.1: - - v1.8.0 - - v1.9.0 - - v1.10.0 - - v1.11.0 - - v1.12.0 - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.8.0: - - v1.9.0 - - v1.10.0 - - v1.11.0 - - v1.12.0 - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.9.0: - - v1.10.0 - - v1.11.0 - - v1.12.0 - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.10.0: - - v1.11.0 - - v1.12.0 - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.11.0: - - v1.12.0 - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.12.0: - - v1.13.0 - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.13.0: - - v1.14.1 - - v1.15.0 - - v1.16.2 - - v1.17.0 - - v1.18.0 - - v1.19.1 - - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.14.0: - v1.14.1 - v1.15.0 @@ -2726,29 +3083,7 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.14.1: - v1.15.0 - v1.16.2 @@ -2756,334 +3091,78 @@ channels: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.15.0: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.16.0: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.16.1: - v1.16.2 - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.16.2: - v1.17.0 - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.17.0: - v1.18.0 - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.18.0: - v1.19.1 - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 v1.19.1: - v1.21.0 - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.21.0: - - v1.22.2 - - v1.23.1 - - v1.24.0 - - v1.25.0 - - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.22.2-phase1 + v1.21.0: + - v1.22.2-phase1 v1.22.2: - v1.23.1 - v1.24.0 - v1.25.0 - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.29.5-phase1 + v1.22.2-phase1: + - v1.22.2-phase2 + v1.22.2-phase2: + - v1.22.2 + - v1.23.1 + - v1.24.0 + - v1.25.0 + - v1.26.0 + - v1.29.5-phase1 v1.23.1: - v1.24.0 - v1.25.0 - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.29.5-phase1 v1.24.0: - v1.25.0 - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.29.5-phase1 v1.25.0: - v1.26.0 - - v1.29.5 - - v1.30.0 - - v1.31.0 - - v1.32.0 - - v1.33.1 - - v1.34.0 - - v1.35.3 - - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 + - v1.29.5-phase1 v1.26.0: - - v1.29.5 + - v1.29.5-phase1 + v1.29.5: - v1.30.0 - v1.31.0 - v1.32.0 @@ -3091,17 +3170,8 @@ channels: - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 - v1.29.5: + v1.29.5-phase1: + - v1.29.5 - v1.30.0 - v1.31.0 - v1.32.0 @@ -3109,16 +3179,6 @@ channels: - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.30.0: - v1.31.0 - v1.32.0 @@ -3126,107 +3186,31 @@ channels: - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.31.0: - v1.32.0 - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.32.0: - v1.33.1 - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.33.1: - v1.34.0 - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.34.0: - v1.35.3 - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.35.3: - v1.36.2 - - v1.37.1 - - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.36.2: - v1.37.1 - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.37.1: - v1.38.0 - - v1.39.1 - - v1.40.1 - - v1.42.1 - - v1.45.4 - - v1.47.1 - - v1.48.0 - - v1.49.2 - - v1.51.1 v1.38.0: - v1.39.1 - v1.40.1 @@ -3272,100 +3256,137 @@ channels: v1.49.2: - v1.51.1 metadata: - datastore: memory + datastore: spanner default: "true" name: stable nodes: - id: v1.51.1 + migration: add-expiration-support tag: v1.51.1 - id: v1.49.2 + migration: add-expiration-support tag: v1.49.2 - id: v1.48.0 + migration: add-expiration-support tag: v1.48.0 - id: v1.47.1 + migration: add-expiration-support tag: v1.47.1 - id: v1.45.4 + migration: add-expiration-support tag: v1.45.4 - id: v1.42.1 + migration: add-expiration-support tag: v1.42.1 - id: v1.40.1 + migration: add-expiration-support tag: v1.40.1 - id: v1.39.1 + migration: add-transaction-metadata-table tag: v1.39.1 - id: v1.38.0 + migration: add-transaction-metadata-table tag: v1.38.0 - id: v1.37.1 + migration: add-relationship-counter-table tag: v1.37.1 - id: v1.36.2 + migration: add-relationship-counter-table tag: v1.36.2 - id: v1.35.3 + migration: add-relationship-counter-table tag: v1.35.3 - id: v1.34.0 + migration: add-relationship-counter-table tag: v1.34.0 - id: v1.33.1 + migration: delete-older-changestreams tag: v1.33.1 - id: v1.32.0 + migration: delete-older-changestreams tag: v1.32.0 - id: v1.31.0 + migration: delete-older-changestreams tag: v1.31.0 - id: v1.30.0 + migration: delete-older-changestreams tag: v1.30.0 - id: v1.29.5 + migration: delete-older-changestreams + tag: v1.29.5 + - id: v1.29.5-phase1 + migration: register-combined-change-stream + phase: write-both-read-new tag: v1.29.5 - id: v1.26.0 + migration: drop-changelog-table tag: v1.26.0 - id: v1.25.0 + migration: drop-changelog-table tag: v1.25.0 - id: v1.24.0 + migration: drop-changelog-table tag: v1.24.0 - id: v1.23.1 + migration: drop-changelog-table tag: v1.23.1 - id: v1.22.2 + migration: drop-changelog-table + tag: v1.22.2 + - id: v1.22.2-phase2 + migration: register-tuple-change-stream + phase: write-changelog-read-stream + tag: v1.22.2 + - id: v1.22.2-phase1 + migration: register-tuple-change-stream + phase: write-changelog-read-changelog tag: v1.22.2 - id: v1.21.0 + migration: add-caveats tag: v1.21.0 - id: v1.19.1 + migration: add-caveats tag: v1.19.1 - id: v1.18.0 + migration: add-caveats tag: v1.18.0 - id: v1.17.0 + migration: add-caveats tag: v1.17.0 - id: v1.16.2 + migration: add-caveats tag: v1.16.2 - id: v1.16.1 + migration: add-caveats tag: v1.16.1 - id: v1.16.0 + migration: add-caveats tag: v1.16.0 - id: v1.15.0 + migration: add-caveats tag: v1.15.0 - id: v1.14.1 + migration: add-caveats tag: v1.14.1 - id: v1.14.0 + migration: add-caveats tag: v1.14.0 - id: v1.13.0 + migration: add-metadata-and-counters tag: v1.13.0 - id: v1.12.0 + migration: add-metadata-and-counters tag: v1.12.0 - id: v1.11.0 + migration: add-metadata-and-counters tag: v1.11.0 - id: v1.10.0 + migration: add-metadata-and-counters tag: v1.10.0 - id: v1.9.0 + migration: add-metadata-and-counters tag: v1.9.0 - id: v1.8.0 + migration: add-metadata-and-counters tag: v1.8.0 - - id: v1.7.1 - tag: v1.7.1 - - id: v1.7.0 - tag: v1.7.0 - - id: v1.6.0 - tag: v1.6.0 - - id: v1.5.0 - tag: v1.5.0 - - id: v1.4.0 - tag: v1.4.0 - - id: v1.3.0 - tag: v1.3.0 - - id: v1.2.0 - tag: v1.2.0 imageName: ghcr.io/authzed/spicedb diff --git a/script-output.txt b/script-output.txt new file mode 100644 index 00000000..ca3817d3 --- /dev/null +++ b/script-output.txt @@ -0,0 +1,35 @@ +Comparing: + OLD: old-proposed-update-graph.yaml + NEW: proposed-update-graph.yaml + +=== Per-channel comparison === + + cockroachdb/stable: DIFFERS + Edge v1.30.0-phase1 -> ADDED targets: ['v1.31.0', 'v1.32.0', 'v1.33.1', 'v1.34.0', 'v1.35.3', 'v1.36.2'] + Edge v1.37.1 -> REMOVED targets: ['v1.39.1', 'v1.40.1', 'v1.42.1', 'v1.45.4', 'v1.47.1', 'v1.48.0', 'v1.49.2', 'v1.51.1'] + Node v1.30.0-phase1 field diffs: {'phase': (None, 'write-both-read-new')} + + memory/stable: IDENTICAL + + mysql/stable: DIFFERS + Edge v1.37.1 -> REMOVED targets: ['v1.39.1', 'v1.40.1', 'v1.42.1', 'v1.45.4', 'v1.47.1', 'v1.48.0', 'v1.49.2', 'v1.51.1'] + + postgres/stable: DIFFERS + Edge v1.14.0-phase2 -> ADDED targets: ['v1.14.1', 'v1.15.0', 'v1.16.2', 'v1.17.0', 'v1.18.0', 'v1.19.1', 'v1.21.0', 'v1.22.2', 'v1.23.1', 'v1.24.0', 'v1.25.0', 'v1.26.0', 'v1.29.5', 'v1.30.0', 'v1.31.0', 'v1.32.0', 'v1.33.1', 'v1.34.0', 'v1.35.3', 'v1.36.2'] + Edge v1.37.1 -> REMOVED targets: ['v1.39.1', 'v1.40.1', 'v1.42.1', 'v1.45.4', 'v1.47.1', 'v1.48.0', 'v1.49.2', 'v1.51.1'] + + spanner/stable: DIFFERS + Nodes only in NEW: ['v1.51.1'] + Edge v1.22.2-phase2 -> ADDED targets: ['v1.23.1', 'v1.24.0', 'v1.25.0', 'v1.26.0', 'v1.29.5-phase1'] + Edge v1.29.5-phase1 -> ADDED targets: ['v1.30.0', 'v1.31.0', 'v1.32.0', 'v1.33.1', 'v1.34.0', 'v1.35.3', 'v1.36.2'] + Edge v1.37.1 -> REMOVED targets: ['v1.39.1', 'v1.40.1', 'v1.42.1', 'v1.45.4', 'v1.47.1', 'v1.48.0', 'v1.49.2'] + Edge v1.38.0 -> ADDED targets: ['v1.51.1'] + Edge v1.39.1 -> ADDED targets: ['v1.51.1'] + Edge v1.40.1 -> ADDED targets: ['v1.51.1'] + Edge v1.42.1 -> ADDED targets: ['v1.51.1'] + Edge v1.45.4 -> ADDED targets: ['v1.51.1'] + Edge v1.47.1 -> ADDED targets: ['v1.51.1'] + Edge v1.48.0 -> ADDED targets: ['v1.51.1'] + Edge v1.49.2 -> ADDED targets: ['v1.51.1'] + Node v1.29.5-phase1 field diffs: {'phase': (None, 'write-both-read-new')} + Node v1.49.2 field diffs: {'tag': ('v1.51.1', 'v1.49.2')} diff --git a/tools/generate-update-graph/main.go b/tools/generate-update-graph/main.go index 3b33b1b1..54f7cfeb 100644 --- a/tools/generate-update-graph/main.go +++ b/tools/generate-update-graph/main.go @@ -13,533 +13,200 @@ import ( "github.com/authzed/spicedb-operator/pkg/updates" ) -//go:generate go run main.go ../../proposed-update-graph.yaml +//go:generate go run . ../../magefiles/versions.yaml ../../proposed-update-graph.yaml + +// DatastoreConfig holds per-datastore configuration for a version. +type DatastoreConfig struct { + Migration string + Phase string + Deprecated bool + Waypoint bool +} + +// Version is a single entry in the versions YAML file. +type Version struct { + ID string + Tag string + Config map[string]DatastoreConfig +} func main() { - if len(os.Args) != 2 { - fmt.Println("must provide filename") + if len(os.Args) != 3 { + fmt.Fprintln(os.Stderr, "usage: generate-update-graph ") os.Exit(1) } - opconfig := config.OperatorConfig{ - ImageName: "ghcr.io/authzed/spicedb", - UpdateGraph: updates.UpdateGraph{Channels: []updates.Channel{ - postgresChannel(), - crdbChannel(), - mysqlChannel(), - spannerChannel(), - memoryChannel(), - }}, + versions, err := readVersions(os.Args[1]) + if err != nil { + panic(err) } - yamlBytes, err := yaml.Marshal(&opconfig) + opconfig := generateGraph(versions) + + out, err := yaml.Marshal(&opconfig) if err != nil { panic(err) } - if err := os.WriteFile(os.Args[1], yamlBytes, 0o600); err != nil { + if err := os.WriteFile(os.Args[2], out, 0o600); err != nil { panic(err) } } -func postgresChannel() updates.Channel { - releases := []updates.State{ - {ID: "v1.51.1", Tag: "v1.51.1", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.49.2", Tag: "v1.49.2", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.48.0", Tag: "v1.48.0", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.47.1", Tag: "v1.47.1", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.45.4", Tag: "v1.45.4", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.42.1", Tag: "v1.42.1", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.40.1", Tag: "v1.40.1", Migration: "add-index-for-transaction-gc"}, - {ID: "v1.39.1", Tag: "v1.39.1", Migration: "add-watch-api-index-to-relation-tuple-table"}, - {ID: "v1.38.0", Tag: "v1.38.0", Migration: "add-metadata-to-transaction-table"}, - {ID: "v1.37.1", Tag: "v1.37.1", Migration: "create-relationships-counters-table"}, - {ID: "v1.36.2", Tag: "v1.36.2", Migration: "create-relationships-counters-table"}, - {ID: "v1.35.3", Tag: "v1.35.3", Migration: "create-relationships-counters-table"}, - {ID: "v1.34.0", Tag: "v1.34.0", Migration: "create-relationships-counters-table"}, - {ID: "v1.33.1", Tag: "v1.33.1", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.32.0", Tag: "v1.32.0", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.31.0", Tag: "v1.31.0", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.30.0", Tag: "v1.30.0", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.29.5", Tag: "v1.29.5", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.26.0", Tag: "v1.26.0", Migration: "add-rel-by-alive-resource-relation-subject"}, - {ID: "v1.25.0", Tag: "v1.25.0", Migration: "add-gc-covering-index"}, - {ID: "v1.24.0", Tag: "v1.24.0", Migration: "add-gc-covering-index"}, - {ID: "v1.23.1", Tag: "v1.23.1", Migration: "add-gc-covering-index"}, - {ID: "v1.22.2", Tag: "v1.22.2", Migration: "add-gc-covering-index"}, - {ID: "v1.21.0", Tag: "v1.21.0", Migration: "add-gc-covering-index"}, - {ID: "v1.19.1", Tag: "v1.19.1", Migration: "add-gc-covering-index"}, - {ID: "v1.18.0", Tag: "v1.18.0", Migration: "drop-bigserial-ids"}, - {ID: "v1.17.0", Tag: "v1.17.0", Migration: "drop-bigserial-ids"}, - {ID: "v1.16.2", Tag: "v1.16.2", Migration: "drop-bigserial-ids"}, - {ID: "v1.16.1", Tag: "v1.16.1", Migration: "drop-bigserial-ids", Deprecated: true}, - {ID: "v1.16.0", Tag: "v1.16.0", Migration: "drop-bigserial-ids", Deprecated: true}, - {ID: "v1.15.0", Tag: "v1.15.0", Migration: "drop-bigserial-ids"}, - {ID: "v1.14.1", Tag: "v1.14.1", Migration: "drop-bigserial-ids"}, - {ID: "v1.14.0", Tag: "v1.14.0", Migration: "drop-bigserial-ids"}, - {ID: "v1.14.0-phase2", Tag: "v1.14.0", Migration: "add-xid-constraints", Phase: "write-both-read-new"}, - {ID: "v1.14.0-phase1", Tag: "v1.14.0", Migration: "add-xid-columns", Phase: "write-both-read-old"}, - {ID: "v1.13.0", Tag: "v1.13.0", Migration: "add-ns-config-id"}, - {ID: "v1.12.0", Tag: "v1.12.0", Migration: "add-ns-config-id"}, - {ID: "v1.11.0", Tag: "v1.11.0", Migration: "add-ns-config-id"}, - {ID: "v1.10.0", Tag: "v1.10.0", Migration: "add-ns-config-id"}, - {ID: "v1.9.0", Tag: "v1.9.0", Migration: "add-unique-datastore-id"}, - {ID: "v1.8.0", Tag: "v1.8.0", Migration: "add-unique-datastore-id"}, - {ID: "v1.7.1", Tag: "v1.7.1", Migration: "add-unique-datastore-id"}, - {ID: "v1.7.0", Tag: "v1.7.0", Migration: "add-unique-datastore-id", Deprecated: true}, - {ID: "v1.6.0", Tag: "v1.6.0", Migration: "add-unique-datastore-id"}, - {ID: "v1.5.0", Tag: "v1.5.0", Migration: "add-transaction-timestamp-index"}, - {ID: "v1.4.0", Tag: "v1.4.0", Migration: "add-transaction-timestamp-index"}, - {ID: "v1.3.0", Tag: "v1.3.0", Migration: "add-transaction-timestamp-index"}, - {ID: "v1.2.0", Tag: "v1.2.0", Migration: "add-transaction-timestamp-index"}, - } - edgePatterns := map[string]string{ - "v1.49.2": ">=1.51.1", - "v1.48.0": ">=1.49.2", - "v1.47.1": ">=1.48.0", - "v1.45.4": ">=1.47.1", - "v1.42.1": ">=1.45.4", - "v1.40.1": ">=1.42.1", - "v1.39.1": ">=1.40.1", - "v1.38.0": ">=1.39.1", - "v1.37.1": ">=1.38.0", - "v1.36.2": ">=1.37.1 <=1.38.0", - "v1.35.3": "1.36.2", - "v1.34.0": ">=1.35.3 <=1.36.2", - "v1.33.1": ">=1.34.0 <=1.36.2", - "v1.32.0": ">=1.33.1 <=1.36.2", - "v1.31.0": ">=1.32.0 <=1.36.2", - "v1.30.0": ">=1.31.0 <=1.36.2", - "v1.29.5": ">=1.30.0 <=1.36.2", - "v1.26.0": ">=1.29.5 <=1.36.2", - "v1.25.0": ">=1.26.0 <=1.36.2", - "v1.24.0": ">=1.25.0 <=1.36.2", - "v1.23.1": ">=1.24.0 <=1.36.2", - "v1.22.2": ">=1.23.1 <=1.36.2", - "v1.21.0": ">=1.22.2 <=1.36.2", - "v1.19.1": ">=1.21.0 <=1.36.2", - "v1.18.0": ">=1.19.1 <=1.36.2", - "v1.17.0": ">=1.18.0 <=1.36.2", - "v1.16.2": ">=1.17.0 <=1.36.2", - "v1.16.1": ">=1.16.2 <=1.36.2", - "v1.16.0": ">=1.16.2 <=1.36.2", - "v1.15.0": ">=1.16.2 <=1.36.2", - "v1.14.1": ">=1.15.0 <=1.36.2", - "v1.14.0": ">=1.14.1 <=1.36.2", - "v1.14.0-phase2": "1.14.0", - "v1.14.0-phase1": "1.14.0-phase2", - "v1.13.0": "1.14.0-phase1", - "v1.12.0": ">=1.13.0 <=1.14.0-phase1", - "v1.11.0": ">=1.12.0 <=1.14.0-phase1", - "v1.10.0": ">=1.11.0 <=1.14.0-phase1", - "v1.9.0": ">=1.10.0 <=1.14.0-phase1", - "v1.8.0": ">=1.9.0 <=1.14.0-phase1", - "v1.7.1": ">=1.8.0 <=1.14.0-phase1", - "v1.7.0": ">=1.7.1 <=1.14.0-phase1", - "v1.6.0": ">=1.7.1 <=1.14.0-phase1", - "v1.5.0": ">=1.6.0 <=1.14.0-phase1", - "v1.4.0": ">=1.5.0 <=1.14.0-phase1", - "v1.3.0": ">=1.4.0 <=1.14.0-phase1", - "v1.2.0": ">=1.3.0 <=1.14.0-phase1", +func readVersions(path string) ([]Version, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, err } - return updates.Channel{ - Name: "stable", - Metadata: map[string]string{ - "datastore": "postgres", - "default": "true", - }, - Nodes: releases, - Edges: edgesFromPatterns(edgePatterns, releases), + var versions []Version + for _, doc := range strings.Split(string(data), "\n---\n") { + doc = strings.TrimSpace(doc) + if doc == "" { + continue + } + var v Version + if err := yaml.Unmarshal([]byte(doc), &v); err != nil { + return nil, err + } + if v.ID != "" { + versions = append(versions, v) + } } + return versions, nil } -func crdbChannel() updates.Channel { - releases := []updates.State{ - {ID: "v1.51.1", Tag: "v1.51.1", Migration: "add-expiration-support"}, - {ID: "v1.49.2", Tag: "v1.49.2", Migration: "add-expiration-support"}, - {ID: "v1.48.0", Tag: "v1.48.0", Migration: "add-expiration-support"}, - {ID: "v1.47.1", Tag: "v1.47.1", Migration: "add-expiration-support"}, - {ID: "v1.45.4", Tag: "v1.45.4", Migration: "add-expiration-support"}, - {ID: "v1.42.1", Tag: "v1.42.1", Migration: "add-expiration-support"}, - {ID: "v1.40.1", Tag: "v1.40.1", Migration: "add-expiration-support"}, - {ID: "v1.39.1", Tag: "v1.39.1", Migration: "add-transaction-metadata-table"}, - {ID: "v1.38.0", Tag: "v1.38.0", Migration: "add-transaction-metadata-table"}, - {ID: "v1.37.1", Tag: "v1.37.1", Migration: "add-integrity-relationtuple-table"}, - {ID: "v1.36.2", Tag: "v1.36.2", Migration: "add-integrity-relationtuple-table"}, - {ID: "v1.35.3", Tag: "v1.35.3", Migration: "add-relationship-counters-table"}, - {ID: "v1.34.0", Tag: "v1.34.0", Migration: "add-relationship-counters-table"}, - {ID: "v1.33.1", Tag: "v1.33.1", Migration: "remove-stats-table"}, - {ID: "v1.32.0", Tag: "v1.32.0", Migration: "remove-stats-table"}, - {ID: "v1.31.0", Tag: "v1.31.0", Migration: "remove-stats-table"}, - {ID: "v1.30.0", Tag: "v1.30.0", Migration: "remove-stats-table"}, - {ID: "v1.30.0-phase1", Tag: "v1.30.0", Migration: "add-caveats"}, - {ID: "v1.29.5", Tag: "v1.29.5", Migration: "add-caveats"}, - {ID: "v1.26.0", Tag: "v1.26.0", Migration: "add-caveats"}, - {ID: "v1.25.0", Tag: "v1.25.0", Migration: "add-caveats"}, - {ID: "v1.24.0", Tag: "v1.24.0", Migration: "add-caveats"}, - {ID: "v1.23.1", Tag: "v1.23.1", Migration: "add-caveats"}, - {ID: "v1.22.2", Tag: "v1.22.2", Migration: "add-caveats"}, - {ID: "v1.21.0", Tag: "v1.21.0", Migration: "add-caveats"}, - {ID: "v1.19.1", Tag: "v1.19.1", Migration: "add-caveats"}, - {ID: "v1.18.0", Tag: "v1.18.0", Migration: "add-caveats"}, - {ID: "v1.17.0", Tag: "v1.17.0", Migration: "add-caveats"}, - {ID: "v1.16.2", Tag: "v1.16.2", Migration: "add-caveats"}, - {ID: "v1.16.1", Tag: "v1.16.1", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.16.0", Tag: "v1.16.0", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.15.0", Tag: "v1.15.0", Migration: "add-caveats"}, - {ID: "v1.14.1", Tag: "v1.14.1", Migration: "add-caveats"}, - {ID: "v1.14.0", Tag: "v1.14.0", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.13.0", Tag: "v1.13.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.12.0", Tag: "v1.12.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.11.0", Tag: "v1.11.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.10.0", Tag: "v1.10.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.9.0", Tag: "v1.9.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.8.0", Tag: "v1.8.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.7.1", Tag: "v1.7.1", Migration: "add-metadata-and-counters"}, - {ID: "v1.7.0", Tag: "v1.7.0", Migration: "add-metadata-and-counters", Deprecated: true}, - {ID: "v1.6.0", Tag: "v1.6.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.5.0", Tag: "v1.5.0", Migration: "add-transactions-table"}, - {ID: "v1.4.0", Tag: "v1.4.0", Migration: "add-transactions-table"}, - {ID: "v1.3.0", Tag: "v1.3.0", Migration: "add-transactions-table"}, - {ID: "v1.2.0", Tag: "v1.2.0", Migration: "add-transactions-table"}, +func generateGraph(versions []Version) config.OperatorConfig { + datastores := make(map[string]struct{}) + for _, v := range versions { + for ds := range v.Config { + datastores[ds] = struct{}{} + } } - edgePatterns := map[string]string{ - "v1.49.2": ">=1.51.1", - "v1.48.0": ">=1.49.2", - "v1.47.1": ">=1.48.0", - "v1.45.4": ">=1.47.1", - "v1.42.1": ">=1.45.4", - "v1.40.1": ">=1.42.1", - "v1.39.1": ">=1.40.1", - "v1.38.0": ">=1.39.1", - "v1.37.1": ">=1.38.0", - "v1.36.2": ">=1.37.1 <=1.38.0", - "v1.35.3": "1.36.2", - "v1.34.0": ">=1.35.3 <=1.36.2", - "v1.33.1": ">=1.34.0 <=1.36.2", - "v1.32.0": ">=1.33.1 <=1.36.2", - "v1.31.0": ">=1.32.0 <=1.36.2", - "v1.30.0": ">=1.31.0 <=1.36.2", - "v1.30.0-phase1": "1.30.0", - "v1.29.5": "1.30.0-phase1", - "v1.26.0": ">=1.29.5 <=1.30.0-phase1", - "v1.25.0": ">=1.26.0 <=1.30.0-phase1", - "v1.24.0": ">=1.25.0 <=1.30.0-phase1", - "v1.23.1": ">=1.24.0 <=1.30.0-phase1", - "v1.22.2": ">=1.23.1 <=1.30.0-phase1", - "v1.21.0": ">=1.22.2 <=1.30.0-phase1", - "v1.19.1": ">=1.21.0 <=1.30.0-phase1", - "v1.18.0": ">=1.19.1 <=1.30.0-phase1", - "v1.17.0": ">=1.18.0 <=1.30.0-phase1", - "v1.16.2": ">=1.17.0 <=1.30.0-phase1", - "v1.16.1": ">=1.16.2 <=1.30.0-phase1", - "v1.16.0": ">=1.16.2 <=1.30.0-phase1", - "v1.15.0": ">=1.16.2 <=1.30.0-phase1", - "v1.14.1": ">=1.15.0 <=1.30.0-phase1", - "v1.14.0": ">=1.14.1 <=1.30.0-phase1", - "v1.13.0": ">=1.14.1 <=1.30.0-phase1", - "v1.12.0": ">=1.13.0 <=1.30.0-phase1", - "v1.11.0": ">=1.12.0 <=1.30.0-phase1", - "v1.10.0": ">=1.11.0 <=1.30.0-phase1", - "v1.9.0": ">=1.10.0 <=1.30.0-phase1", - "v1.8.0": ">=1.9.0 <=1.30.0-phase1", - "v1.7.1": ">=1.8.0 <=1.30.0-phase1", - "v1.7.0": ">=1.7.1 <=1.30.0-phase1", - "v1.6.0": ">=1.7.1 <=1.30.0-phase1", - "v1.5.0": ">=1.6.0 <=1.30.0-phase1", - "v1.4.0": ">=1.5.0 <=1.30.0-phase1", - "v1.3.0": ">=1.4.0 <=1.30.0-phase1", - "v1.2.0": ">=1.3.0 <=1.30.0-phase1", + + channels := make([]updates.Channel, 0, len(datastores)) + for ds := range datastores { + nodes := nodesForDatastore(versions, ds) + channels = append(channels, updates.Channel{ + Name: "stable", + Metadata: map[string]string{ + "datastore": ds, + "default": "true", + }, + Nodes: toStates(nodes), + Edges: generateEdges(nodes), + }) } - return updates.Channel{ - Name: "stable", - Metadata: map[string]string{ - "datastore": "cockroachdb", - "default": "true", - }, - Nodes: releases, - Edges: edgesFromPatterns(edgePatterns, releases), + sort.Slice(channels, func(i, j int) bool { + return channels[i].Metadata["datastore"] < channels[j].Metadata["datastore"] + }) + + return config.OperatorConfig{ + ImageName: "ghcr.io/authzed/spicedb", + UpdateGraph: updates.UpdateGraph{Channels: channels}, } } -func mysqlChannel() updates.Channel { - releases := []updates.State{ - {ID: "v1.51.1", Tag: "v1.51.1", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.49.2", Tag: "v1.49.2", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.48.0", Tag: "v1.48.0", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.47.1", Tag: "v1.47.1", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.45.4", Tag: "v1.45.4", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.42.1", Tag: "v1.42.1", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.40.1", Tag: "v1.40.1", Migration: "add_expiration_to_relation_tuple"}, - {ID: "v1.39.1", Tag: "v1.39.1", Migration: "add_metadata_to_transaction_table"}, - {ID: "v1.38.0", Tag: "v1.38.0", Migration: "add_metadata_to_transaction_table"}, - {ID: "v1.37.1", Tag: "v1.37.1", Migration: "add_relationship_counters_table"}, - {ID: "v1.36.2", Tag: "v1.36.2", Migration: "add_relationship_counters_table"}, - {ID: "v1.35.3", Tag: "v1.35.3", Migration: "add_relationship_counters_table"}, - {ID: "v1.34.0", Tag: "v1.34.0", Migration: "add_relationship_counters_table"}, - {ID: "v1.33.1", Tag: "v1.33.1", Migration: "watch_api_relation_tuple_index"}, - {ID: "v1.32.0", Tag: "v1.32.0", Migration: "watch_api_relation_tuple_index"}, - {ID: "v1.31.0", Tag: "v1.31.0", Migration: "watch_api_relation_tuple_index"}, - {ID: "v1.30.0", Tag: "v1.30.0", Migration: "watch_api_relation_tuple_index"}, - {ID: "v1.29.5", Tag: "v1.29.5", Migration: "watch_api_relation_tuple_index"}, - {ID: "v1.26.0", Tag: "v1.26.0", Migration: "longblob_definitions"}, - {ID: "v1.25.0", Tag: "v1.25.0", Migration: "longblob_definitions"}, - {ID: "v1.24.0", Tag: "v1.24.0", Migration: "extend_object_id"}, - {ID: "v1.23.1", Tag: "v1.23.1", Migration: "extend_object_id"}, - {ID: "v1.22.2", Tag: "v1.22.2", Migration: "extend_object_id"}, - {ID: "v1.21.0", Tag: "v1.21.0", Migration: "extend_object_id"}, - {ID: "v1.19.1", Tag: "v1.19.1", Migration: "add_caveat"}, - {ID: "v1.18.0", Tag: "v1.18.0", Migration: "add_caveat"}, - {ID: "v1.17.0", Tag: "v1.17.0", Migration: "add_caveat"}, - {ID: "v1.16.2", Tag: "v1.16.2", Migration: "add_caveat"}, - {ID: "v1.16.1", Tag: "v1.16.1", Migration: "add_caveat", Deprecated: true}, - {ID: "v1.16.0", Tag: "v1.16.0", Migration: "add_caveat", Deprecated: true}, - {ID: "v1.15.0", Tag: "v1.15.0", Migration: "add_caveat"}, - {ID: "v1.14.1", Tag: "v1.14.1", Migration: "add_caveat"}, - {ID: "v1.14.0", Tag: "v1.14.0", Migration: "add_caveat", Deprecated: true}, - {ID: "v1.13.0", Tag: "v1.13.0", Migration: "add_ns_config_id"}, - {ID: "v1.12.0", Tag: "v1.12.0", Migration: "add_ns_config_id"}, - {ID: "v1.11.0", Tag: "v1.11.0", Migration: "add_ns_config_id"}, - {ID: "v1.10.0", Tag: "v1.10.0", Migration: "add_ns_config_id"}, - {ID: "v1.9.0", Tag: "v1.9.0", Migration: "add_unique_datastore_id"}, - {ID: "v1.8.0", Tag: "v1.8.0", Migration: "add_unique_datastore_id"}, - {ID: "v1.7.1", Tag: "v1.7.1", Migration: "add_unique_datastore_id"}, - {ID: "v1.7.0", Tag: "v1.7.0", Migration: "add_unique_datastore_id", Deprecated: true}, - } - edgePatterns := map[string]string{ - "v1.49.2": ">=1.51.1", - "v1.48.0": ">=1.49.2", - "v1.47.1": ">=1.48.0", - "v1.45.4": ">=1.47.1", - "v1.42.1": ">=1.45.4", - "v1.40.1": ">=1.42.1", - "v1.39.1": ">=1.40.1", - "v1.38.0": ">=1.39.1", - "v1.37.1": ">=1.38.0", - "v1.36.2": ">=1.37.1 <=1.38.0", - "v1.35.3": "1.36.2", - "v1.34.0": ">=1.35.3 <=1.36.2", - "v1.33.1": ">=1.34.0 <=1.36.2", - "v1.32.0": ">=1.33.1 <=1.36.2", - "v1.31.0": ">=1.32.0 <=1.36.2", - "v1.30.0": ">=1.31.0 <=1.36.2", - "v1.29.5": ">=1.30.0 <=1.36.2", - "v1.26.0": ">=1.29.5 <=1.36.2", - "v1.25.0": ">=1.26.0 <=1.36.2", - "v1.24.0": ">=1.25.0 <=1.36.2", - "v1.23.1": ">=1.24.0 <=1.36.2", - "v1.22.2": ">=1.23.1 <=1.36.2", - "v1.21.0": ">=1.22.2 <=1.36.2", - "v1.19.1": ">=1.21.0 <=1.36.2", - "v1.18.0": ">=1.19.1 <=1.36.2", - "v1.17.0": ">=1.18.0 <=1.36.2", - "v1.16.2": ">=1.17.0 <=1.36.2", - "v1.16.1": ">=1.16.2 <=1.36.2", - "v1.16.0": ">=1.16.2 <=1.36.2", - "v1.15.0": ">=1.16.2 <=1.36.2", - "v1.14.1": ">=1.15.0 <=1.36.2", - "v1.14.0": ">=1.14.1 <=1.36.2", - "v1.13.0": ">=1.14.1 <=1.36.2", - "v1.12.0": ">=1.13.0 <=1.36.2", - "v1.11.0": ">=1.12.0 <=1.36.2", - "v1.10.0": ">=1.11.0 <=1.36.2", - "v1.9.0": ">=1.10.0 <=1.36.2", - "v1.8.0": ">=1.9.0 <=1.36.2", - "v1.7.1": ">=1.8.0 <=1.36.2", - "v1.7.0": ">=1.7.1 <=1.36.2", - } - return updates.Channel{ - Name: "stable", - Metadata: map[string]string{ - "datastore": "mysql", - "default": "true", - }, - Nodes: releases, - Edges: edgesFromPatterns(edgePatterns, releases), - } +type versionNode struct { + id string + tag string + migration string + phase string + deprecated bool + waypoint bool + sv semver.Version } -func spannerChannel() updates.Channel { - releases := []updates.State{ - {ID: "v1.49.2", Tag: "v1.51.1", Migration: "add-expiration-support"}, - {ID: "v1.48.0", Tag: "v1.48.0", Migration: "add-expiration-support"}, - {ID: "v1.47.1", Tag: "v1.47.1", Migration: "add-expiration-support"}, - {ID: "v1.45.4", Tag: "v1.45.4", Migration: "add-expiration-support"}, - {ID: "v1.42.1", Tag: "v1.42.1", Migration: "add-expiration-support"}, - {ID: "v1.40.1", Tag: "v1.40.1", Migration: "add-expiration-support"}, - {ID: "v1.39.1", Tag: "v1.39.1", Migration: "add-transaction-metadata-table"}, - {ID: "v1.38.0", Tag: "v1.38.0", Migration: "add-transaction-metadata-table"}, - {ID: "v1.37.1", Tag: "v1.37.1", Migration: "add-relationship-counter-table"}, - {ID: "v1.36.2", Tag: "v1.36.2", Migration: "add-relationship-counter-table"}, - {ID: "v1.35.3", Tag: "v1.35.3", Migration: "add-relationship-counter-table"}, - {ID: "v1.34.0", Tag: "v1.34.0", Migration: "add-relationship-counter-table"}, - {ID: "v1.33.1", Tag: "v1.33.1", Migration: "delete-older-changestreams"}, - {ID: "v1.32.0", Tag: "v1.32.0", Migration: "delete-older-changestreams"}, - {ID: "v1.31.0", Tag: "v1.31.0", Migration: "delete-older-changestreams"}, - {ID: "v1.30.0", Tag: "v1.30.0", Migration: "delete-older-changestreams"}, - {ID: "v1.29.5", Tag: "v1.29.5", Migration: "delete-older-changestreams"}, - {ID: "v1.29.5-phase1", Tag: "v1.29.5", Migration: "register-combined-change-stream"}, - {ID: "v1.26.0", Tag: "v1.26.0", Migration: "drop-changelog-table"}, - {ID: "v1.25.0", Tag: "v1.25.0", Migration: "drop-changelog-table"}, - {ID: "v1.24.0", Tag: "v1.24.0", Migration: "drop-changelog-table"}, - {ID: "v1.23.1", Tag: "v1.23.1", Migration: "drop-changelog-table"}, - {ID: "v1.22.2", Tag: "v1.22.2", Migration: "drop-changelog-table"}, - {ID: "v1.22.2-phase2", Tag: "v1.22.2", Migration: "register-tuple-change-stream", Phase: "write-changelog-read-stream"}, - {ID: "v1.22.2-phase1", Tag: "v1.22.2", Migration: "register-tuple-change-stream", Phase: "write-changelog-read-changelog"}, - {ID: "v1.21.0", Tag: "v1.21.0", Migration: "add-caveats"}, - {ID: "v1.19.1", Tag: "v1.19.1", Migration: "add-caveats"}, - {ID: "v1.18.0", Tag: "v1.18.0", Migration: "add-caveats"}, - {ID: "v1.17.0", Tag: "v1.17.0", Migration: "add-caveats"}, - {ID: "v1.16.2", Tag: "v1.16.2", Migration: "add-caveats"}, - {ID: "v1.16.1", Tag: "v1.16.1", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.16.0", Tag: "v1.16.0", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.15.0", Tag: "v1.15.0", Migration: "add-caveats"}, - {ID: "v1.14.1", Tag: "v1.14.1", Migration: "add-caveats"}, - {ID: "v1.14.0", Tag: "v1.14.0", Migration: "add-caveats", Deprecated: true}, - {ID: "v1.13.0", Tag: "v1.13.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.12.0", Tag: "v1.12.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.11.0", Tag: "v1.11.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.10.0", Tag: "v1.10.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.9.0", Tag: "v1.9.0", Migration: "add-metadata-and-counters"}, - {ID: "v1.8.0", Tag: "v1.8.0", Migration: "add-metadata-and-counters"}, - } - edgePatterns := map[string]string{ - "v1.49.2": ">=1.51.1", - "v1.48.0": ">=1.49.2", - "v1.47.1": ">=1.48.0", - "v1.45.4": ">=1.47.1", - "v1.42.1": ">=1.45.4", - "v1.40.1": ">=1.42.1", - "v1.39.1": ">=1.40.1", - "v1.38.0": ">=1.39.1", - "v1.37.1": ">=1.38.0", - "v1.36.2": ">=1.37.1 <=1.38.0", - "v1.35.3": "1.36.2", - "v1.34.0": ">=1.35.3 <=1.36.2", - "v1.33.1": ">=1.34.0 <=1.36.2", - "v1.32.0": ">=1.33.1 <=1.36.2", - "v1.31.0": ">=1.32.0 <=1.36.2", - "v1.30.0": ">=1.31.0 <=1.36.2", - "v1.29.5": ">=1.30.0 <=1.36.2", - "v1.29.5-phase1": "1.29.5", - "v1.26.0": "1.29.5-phase1", - "v1.25.0": ">=1.26.0 <=1.29.5-phase1", - "v1.24.0": ">=1.25.0 <=1.29.5-phase1", - "v1.23.1": ">=1.24.0 <=1.29.5-phase1", - "v1.22.2": ">=1.23.1 <=1.29.5-phase1", - "v1.22.2-phase2": "1.22.2", - "v1.22.2-phase1": "1.22.2-phase2", - "v1.21.0": "1.22.2-phase1", - "v1.19.1": ">=1.21.0 <=1.22.2-phase1", - "v1.18.0": ">=1.19.1 <=1.22.2-phase1", - "v1.17.0": ">=1.18.0 <=1.22.2-phase1", - "v1.16.2": ">=1.17.0 <=1.22.2-phase1", - "v1.16.1": ">=1.16.2 <=1.22.2-phase1", - "v1.16.0": ">=1.16.2 <=1.22.2-phase1", - "v1.15.0": ">=1.16.2 <=1.22.2-phase1", - "v1.14.1": ">=1.15.0 <=1.22.2-phase1", - "v1.14.0": ">=1.14.1 <=1.22.2-phase1", - "v1.13.0": ">=1.14.1 <=1.22.2-phase1", - "v1.12.0": ">=1.13.0 <=1.22.2-phase1", - "v1.11.0": ">=1.12.0 <=1.22.2-phase1", - "v1.10.0": ">=1.11.0 <=1.22.2-phase1", - "v1.9.0": ">=1.10.0 <=1.22.2-phase1", - "v1.8.0": ">=1.9.0 <=1.22.2-phase1", - } - return updates.Channel{ - Name: "stable", - Metadata: map[string]string{ - "datastore": "spanner", - "default": "true", - }, - Nodes: releases, - Edges: edgesFromPatterns(edgePatterns, releases), - } +func parseSemver(id string) (semver.Version, error) { + return semver.ParseTolerant(strings.TrimPrefix(id, "v")) } -func memoryChannel() updates.Channel { - releases := []updates.State{ - {ID: "v1.51.1", Tag: "v1.51.1"}, - {ID: "v1.49.2", Tag: "v1.49.2"}, - {ID: "v1.48.0", Tag: "v1.48.0"}, - {ID: "v1.47.1", Tag: "v1.47.1"}, - {ID: "v1.45.4", Tag: "v1.45.4"}, - {ID: "v1.42.1", Tag: "v1.42.1"}, - {ID: "v1.40.1", Tag: "v1.40.1"}, - {ID: "v1.39.1", Tag: "v1.39.1"}, - {ID: "v1.38.0", Tag: "v1.38.0"}, - {ID: "v1.37.1", Tag: "v1.37.1"}, - {ID: "v1.36.2", Tag: "v1.36.2"}, - {ID: "v1.35.3", Tag: "v1.35.3"}, - {ID: "v1.34.0", Tag: "v1.34.0"}, - {ID: "v1.33.1", Tag: "v1.33.1"}, - {ID: "v1.32.0", Tag: "v1.32.0"}, - {ID: "v1.31.0", Tag: "v1.31.0"}, - {ID: "v1.30.0", Tag: "v1.30.0"}, - {ID: "v1.29.5", Tag: "v1.29.5"}, - {ID: "v1.26.0", Tag: "v1.26.0"}, - {ID: "v1.25.0", Tag: "v1.25.0"}, - {ID: "v1.24.0", Tag: "v1.24.0"}, - {ID: "v1.23.1", Tag: "v1.23.1"}, - {ID: "v1.22.2", Tag: "v1.22.2"}, - {ID: "v1.21.0", Tag: "v1.21.0"}, - {ID: "v1.19.1", Tag: "v1.19.1"}, - {ID: "v1.18.0", Tag: "v1.18.0"}, - {ID: "v1.17.0", Tag: "v1.17.0"}, - {ID: "v1.16.2", Tag: "v1.16.2"}, - {ID: "v1.16.1", Tag: "v1.16.1", Deprecated: true}, - {ID: "v1.16.0", Tag: "v1.16.0", Deprecated: true}, - {ID: "v1.15.0", Tag: "v1.15.0"}, - {ID: "v1.14.1", Tag: "v1.14.1"}, - {ID: "v1.14.0", Tag: "v1.14.0", Deprecated: true}, - {ID: "v1.13.0", Tag: "v1.13.0"}, - {ID: "v1.12.0", Tag: "v1.12.0"}, - {ID: "v1.11.0", Tag: "v1.11.0"}, - {ID: "v1.10.0", Tag: "v1.10.0"}, - {ID: "v1.9.0", Tag: "v1.9.0"}, - {ID: "v1.8.0", Tag: "v1.8.0"}, - {ID: "v1.7.1", Tag: "v1.7.1"}, - {ID: "v1.7.0", Tag: "v1.7.0", Deprecated: true}, - {ID: "v1.6.0", Tag: "v1.6.0"}, - {ID: "v1.5.0", Tag: "v1.5.0"}, - {ID: "v1.4.0", Tag: "v1.4.0"}, - {ID: "v1.3.0", Tag: "v1.3.0"}, - {ID: "v1.2.0", Tag: "v1.2.0"}, +func mustParseSemver(id string) semver.Version { + v, err := parseSemver(id) + if err != nil { + panic(fmt.Sprintf("invalid semver %q: %v", id, err)) } - edgePatterns := make(map[string]string) - for _, from := range releases { - edgePatterns[from.ID] = ">" + strings.TrimPrefix(from.ID, "v") + return v +} + +func nodesForDatastore(versions []Version, ds string) []versionNode { + nodes := make([]versionNode, 0, len(versions)) + for _, v := range versions { + cfg, ok := v.Config[ds] + if !ok { + continue + } + nodes = append(nodes, versionNode{ + id: v.ID, + tag: v.Tag, + migration: cfg.Migration, + phase: cfg.Phase, + deprecated: cfg.Deprecated, + waypoint: cfg.Waypoint, + sv: mustParseSemver(v.ID), + }) } + // Sort newest first for the channel node list. + sort.Slice(nodes, func(i, j int) bool { + return nodes[j].sv.LT(nodes[i].sv) + }) + return nodes +} - return updates.Channel{ - Name: "stable", - Metadata: map[string]string{ - "datastore": "memory", - "default": "true", - }, - Nodes: releases, - Edges: edgesFromPatterns(edgePatterns, releases), +func toStates(nodes []versionNode) []updates.State { + states := make([]updates.State, len(nodes)) + for i, n := range nodes { + states[i] = updates.State{ + ID: n.id, + Tag: n.tag, + Migration: n.migration, + Phase: n.phase, + Deprecated: n.deprecated, + } } + return states } -func edgesFromPatterns(patterns map[string]string, releases []updates.State) map[string][]string { +// generateEdges creates upgrade edges between versions. +// +// Rules: +// - Every version gets edges to all newer non-deprecated versions. +// - Phase nodes (nodes with a Phase set) and explicit waypoints act as mandatory +// stops: if a waypoint W exists between `from` and `to`, the edge is omitted. +func generateEdges(nodes []versionNode) map[string][]string { + waypoints := make([]semver.Version, 0) + for _, n := range nodes { + if n.phase != "" || n.waypoint { + waypoints = append(waypoints, n.sv) + } + } + sort.Slice(waypoints, func(i, j int) bool { + return waypoints[i].LT(waypoints[j]) + }) + edges := make(map[string][]string) - for from, to := range patterns { - toRange := semver.MustParseRange(to) - for _, release := range releases { - if release.Deprecated { + for _, from := range nodes { + for _, to := range nodes { + if to.deprecated { + continue + } + if !from.sv.LT(to.sv) { continue } - if !toRange(semver.MustParse(strings.TrimPrefix(release.ID, "v"))) { + skip := false + for _, w := range waypoints { + if from.sv.LT(w) && w.LT(to.sv) { + skip = true + break + } + } + if skip { continue } - edges[from] = append(edges[from], release.ID) + edges[from.id] = append(edges[from.id], to.id) } - sort.Slice(edges[from], func(i, j int) bool { - v1 := semver.MustParse(strings.TrimPrefix(edges[from][i], "v")) - v2 := semver.MustParse(strings.TrimPrefix(edges[from][j], "v")) - return v1.LT(v2) + sort.Slice(edges[from.id], func(i, j int) bool { + return mustParseSemver(edges[from.id][i]).LT(mustParseSemver(edges[from.id][j])) }) } return edges diff --git a/tools/generate-update-graph/main_test.go b/tools/generate-update-graph/main_test.go index dad9fa0b..af183984 100644 --- a/tools/generate-update-graph/main_test.go +++ b/tools/generate-update-graph/main_test.go @@ -4,96 +4,86 @@ import ( "testing" "github.com/stretchr/testify/require" - - "github.com/authzed/spicedb-operator/pkg/updates" ) -func TestEdgesFromPatterns(t *testing.T) { +func TestGenerateEdges(t *testing.T) { tests := []struct { - name string - patterns map[string]string - releases []updates.State - want map[string][]string + name string + nodes []versionNode + want map[string][]string }{ { - name: "single edge", - releases: []updates.State{ - {ID: "v1.0.0"}, - {ID: "v1.1.0"}, - }, - patterns: map[string]string{ - "v1.0.0": "1.1.0", + name: "single upgrade path", + nodes: []versionNode{ + {id: "v1.0.0", sv: mustParseSemver("v1.0.0")}, + {id: "v1.1.0", sv: mustParseSemver("v1.1.0")}, }, want: map[string][]string{ "v1.0.0": {"v1.1.0"}, }, }, { - name: "open edge range", - releases: []updates.State{ - {ID: "v1.0.0"}, - {ID: "v1.1.0"}, - {ID: "v1.2.0"}, - }, - patterns: map[string]string{ - "v1.0.0": ">1.0.0", + name: "open upgrade path", + nodes: []versionNode{ + {id: "v1.0.0", sv: mustParseSemver("v1.0.0")}, + {id: "v1.1.0", sv: mustParseSemver("v1.1.0")}, + {id: "v1.2.0", sv: mustParseSemver("v1.2.0")}, }, want: map[string][]string{ "v1.0.0": {"v1.1.0", "v1.2.0"}, + "v1.1.0": {"v1.2.0"}, }, }, { - name: "closed edge range", - releases: []updates.State{ - {ID: "v1.0.0"}, - {ID: "v1.1.0"}, - {ID: "v1.2.0"}, - }, - patterns: map[string]string{ - "v1.0.0": ">1.0.0 <=1.1.0", + name: "deprecated version excluded from targets", + nodes: []versionNode{ + {id: "v1.0.0", sv: mustParseSemver("v1.0.0")}, + {id: "v1.1.0", sv: mustParseSemver("v1.1.0"), deprecated: true}, + {id: "v1.2.0", sv: mustParseSemver("v1.2.0")}, }, want: map[string][]string{ - "v1.0.0": {"v1.1.0"}, + "v1.0.0": {"v1.2.0"}, + "v1.1.0": {"v1.2.0"}, }, }, { - name: "edge range with deprecated release in range", - releases: []updates.State{ - {ID: "v1.0.0"}, - {ID: "v1.1.0", Deprecated: true}, - {ID: "v1.2.0"}, - }, - patterns: map[string]string{ - "v1.0.0": ">1.0.0", + name: "phase node acts as waypoint", + nodes: []versionNode{ + {id: "v1.0.0", sv: mustParseSemver("v1.0.0")}, + {id: "v1.1.0-phase1", sv: mustParseSemver("v1.1.0-phase1"), phase: "write-old-read-new"}, + {id: "v1.1.0", sv: mustParseSemver("v1.1.0")}, + {id: "v1.2.0", sv: mustParseSemver("v1.2.0")}, }, want: map[string][]string{ - "v1.0.0": {"v1.2.0"}, + // v1.0.0 must stop at phase1 (can't skip past the waypoint) + "v1.0.0": {"v1.1.0-phase1"}, + "v1.1.0-phase1": {"v1.1.0", "v1.2.0"}, + "v1.1.0": {"v1.2.0"}, }, }, { - name: "edge range with omitted version", - releases: []updates.State{ - {ID: "v1.0.0"}, - {ID: "v1.1.0"}, - {ID: "v1.2.0"}, - {ID: "v1.3.0"}, - }, - patterns: map[string]string{ - "v1.0.0": ">1.0.0 !1.2.0", + name: "two-phase migration", + nodes: []versionNode{ + {id: "v1.0.0", sv: mustParseSemver("v1.0.0")}, + {id: "v1.1.0-phase1", sv: mustParseSemver("v1.1.0-phase1"), phase: "phase1"}, + {id: "v1.1.0-phase2", sv: mustParseSemver("v1.1.0-phase2"), phase: "phase2"}, + {id: "v1.1.0", sv: mustParseSemver("v1.1.0")}, + {id: "v1.2.0", sv: mustParseSemver("v1.2.0")}, }, want: map[string][]string{ - "v1.0.0": {"v1.1.0", "v1.3.0"}, + "v1.0.0": {"v1.1.0-phase1"}, + "v1.1.0-phase1": {"v1.1.0-phase2"}, + "v1.1.0-phase2": {"v1.1.0", "v1.2.0"}, + "v1.1.0": {"v1.2.0"}, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got := edgesFromPatterns(tt.patterns, tt.releases) + got := generateEdges(tt.nodes) + require.Equal(t, len(tt.want), len(got), "edge map length mismatch") for from, to := range tt.want { - require.ElementsMatch(t, to, got[from]) - } - for from, to := range got { - require.ElementsMatch(t, to, tt.want[from]) + require.ElementsMatch(t, to, got[from], "edges from %s", from) } }) }