Skip to content

About

Autobahn and Crossbar.io fleet, cohort & rollout definitions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

autobahn-crossbar-fleet

The definition of the autobahn-crossbar fleet: the Autobahn client libraries, Crossbar.io, and the packages released with them. It records which repositories belong to the fleet, in which cohorts, and the rollouts applied to them.

The tools that read this repository are in wamp-proto/wamp-cicd fleet/ (pinned here as .cicd/); this repository holds only the definition. The rollout records under rollouts/ are written by the fleet driver (the AAIARE Fleet Manager).

Terms

  • Fleet — all the repositories managed together. Every repository belongs to exactly one fleet.
  • Cohort — a named subset of the fleet. A repository may be in several, or in none (then it takes part in nothing).
  • Aspect — a desired state of a repository, defined once in the fleet's aspect repository (e.g. python-package). A member declares the aspects it has in its aspects.toml.
  • Rollout — one aspect applied to the members that declare it, recorded in one file. Once landed the record is not edited; a change is a new rollout.

What is here

path what
fleet.toml the inventory: the cohorts, and every repository with its GitHub slug, default branch and cohorts. Generated - do not edit by hand.
rollouts/<id>/rollout.toml one record per rollout, <id> = YYYYMMDD-<aspect>[-N]; the index is rollouts/README.md (generated).
.ai/, .cicd/ the shared AI policy and CI/CD tooling, as in every repository of the fleet.
.audit/ the AI-assistance disclosure per branch.

This repository is not a member of its own fleet: it cannot contain itself.

The inventory

schema = 2
[[cohort]]   name, description
[[repo]]     name, slug, default_branch, cohorts = [...]

The contract is .cicd/fleet/lib/check-inventory.py; CI runs it on every pull request, and locally:

just check-inventory

fleet.toml is generated from the maintainers' inventory and committed here. To change the fleet's membership or cohorts, change it there and regenerate; a hand edit would be overwritten.

A rollout

rollouts/<id>/rollout.toml      <id> = YYYYMMDD-<aspect>[-N]

The record says what was rolled out, from which inputs, and how it went:

  • the aspect, the revision of the aspect repository it was computed with, and the commit of the maintainers' inventory the member set was read from;
  • per member: the base commit, the files changed and the exact change (with its sha256), the issue and its branch (fix_<issue>), the commit that applied the change, the maintainer's land merge, and a convergence proof - the aspect re-checked on the default branch after the land (an empty change = converged);
  • the fleet issue that tracked the rollout, and its status: planned -> issues-filed -> executed -> landed -> converged.

The fleet driver writes it as the rollout moves through its human gates - filing the issues, cutting the branches, landing - which a maintainer does and signs. While the rollout runs the record lives on this repository's dev branch; it is landed here once the rollout is converged.

Every record is listed in rollouts/README.md, which the fleet driver regenerates from the records at each close-out - a hand-kept table here went stale within a day.

The v1 rollouts (rollouts/way-a/, scripts applied by a runner) are in the Git history before #13.

Using it

On a machine with a clone of wamp-cicd and of this repository:

mkdir -p ~/.config/wamp-cicd/fleet && chmod 700 ~/.config/wamp-cicd/fleet
ln -s "$PWD/fleet.toml" ~/.config/wamp-cicd/fleet/autobahn-crossbar.toml
FLEET_NAME=autobahn-crossbar just -f <wamp-cicd>/fleet/fleet.just fleet-check

and then the recipes described in wamp-cicd's fleet/README.md: fleet-where, fleet-next, fleet-rollout init <name> --cohort <cohort> --rollout <NNNN>-<name>, ...

Contributing

See CONTRIBUTING.md: GitHub issue first, then a branch, with the AI-assistance disclosure in .audit/.

About

Autobahn and Crossbar.io fleet, cohort & rollout definitions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages