diff --git a/.hyperhive/review-classifier.yml b/.hyperhive/review-classifier.yml index c65d0d662..df801cadd 100644 --- a/.hyperhive/review-classifier.yml +++ b/.hyperhive/review-classifier.yml @@ -111,3 +111,24 @@ classifications: docs/5-project/ and the options reference. polarity: negative threshold: 70 + - name: option-in-the-wrong-namespace + description: >- + A nix option the diff adds or moves under `services.hyperhive.` sits in + the wrong tree for what it is. `swarm.*` holds swarm-wide facts that + are the same on every host: the swarm's name and domain, its hives, and + where each service lives. `deploy.*` holds this host's own deployment + decisions, which differ from host to host: whether a component runs + here, and its ports, modes, schedules, packages and file paths, grouped + under the component that is deployed, as in + `deploy.hive-controller.egress.forward`. A setting an operator chooses + per host that lands under `swarm.*`, or under another module's + namespace such as `network.*` while it configures a component that + `deploy.*` already names, such as a service or the hive controller, is + in the wrong tree. So is a per-agent setting placed outside the agent + options. A read-only output or derived value (a rendered ruleset, a + script path), an option declared `internal = true` or `visible = + false`, and a rename that moves an option into the right tree are not + wrong. A diff that adds or moves no nix option makes the question not + applicable. + polarity: negative + threshold: 70 diff --git a/swarm-controller/src/review_classifier.rs b/swarm-controller/src/review_classifier.rs index 06cb88c6b..d990e14c8 100644 --- a/swarm-controller/src/review_classifier.rs +++ b/swarm-controller/src/review_classifier.rs @@ -1419,6 +1419,7 @@ classifications: "one-purpose", "message-claims-match-diff", "no-code-units-in-operator-docs", + "option-in-the-wrong-namespace", ] ); }