Documentation
¶
Overview ¶
Package arch holds the module boundary lint (boundaries_test.go): which internal package belongs to which module, and which module may import which (zero-downtime design §2.6, S19 9e).
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Roles = []string{"ingest", "api", "jobs"}
Roles are the process roles a merge can change (RIVOLT_ROLE without all; S19 9g).
Functions ¶
func IngestAffecting ¶
IngestAffecting counts how many of the merges' role lists include ingest.
Types ¶
type RoleMap ¶
type RoleMap struct {
// contains filtered or unexported fields
}
RoleMap answers which roles a changed path affects. Build it with NewRoleMap from the repository's import graph.
func NewRoleMap ¶
NewRoleMap reads the import graph under root (the repository) and builds each role's dependency set.
func (*RoleMap) For ¶
For returns the roles the changed paths (relative to the repository root, slash-separated) affect, in Roles order:
- a Go package's directory (any file in it, embedded assets and migrations included): nothing when the server binary does not link it (test helpers, other commands); every role for platform and cmd/rivolt; otherwise each role whose dependency set has it, and every role when none does (linked, but no role claims it);
- go.mod, go.sum, the Dockerfile and the chart (deploy/helm, every role's Deployment and values): every role;
- the web app (web/, served on the public routes): api;
- the iPhone app, docs, CI, scripts, tools and top-level text: none (they do not ship in the server);
- anything else: every role, so an unclassified path is never under-counted.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
mergeroles
command
Command mergeroles reports which process roles a change affects (S19 9g), from the module map and import graph in internal/arch.
|
Command mergeroles reports which process roles a change affects (S19 9g), from the module map and import graph in internal/arch. |
Click to show internal directories.
Click to hide internal directories.