Skip to content

Commit 78ab5c5

Browse files
ci(language-policy): drop SaltStack Python carveout (closes reposystem#32) (#316)
## Summary - Removes the SaltStack Python exception from `governance-reusable.yml` (RSR antipattern check + summary banner) and 4× `language-policy.yml` (rhodium-standard-repositories root, consent-aware-http, +2 satellites). - Estate-wide rule: Python is fully banned, no exceptions (removed 2026-01-03; canonical `.claude/CLAUDE.md` already reflects this). - Infrastructure now uses Terraform + Ansible — neither needs first-party Python, so no replacement exemption. ## Test plan - [ ] Existing repos with no \`.py\` files: language policy still passes (no behavioural change). - [ ] A hypothetical new \`*.py\` file (regardless of \`salt\`/\`_states\`/\`_modules\`/\`pillar\` in path) is now blocked. - [ ] Estate-wide reusable callers (governance-reusable consumers) pick up the corrected enforce-message. ## Closes - hyperpolymath/reposystem#32 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 3e50a15 commit 78ab5c5

5 files changed

Lines changed: 11 additions & 13 deletions

File tree

.github/workflows/governance-reusable.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,7 @@ jobs:
312312
RES_FILES=$(git ls-files '*.res' || true)
313313
GO_FILES=$(git ls-files '*.go' || true)
314314
PY_FILES=$(git ls-files '*.py' \
315-
| grep -v salt | grep -v _states \
316-
| grep -v _modules | grep -v pillar | grep -v venv \
317-
| grep -v __pycache__ || true)
315+
| grep -v venv | grep -v __pycache__ || true)
318316
MAKE_FILES=$(git ls-files 'Makefile' 'Makefile.*' '*.mk' \
319317
| grep -v '\.github/' || true)
320318
JAVA_FILES=$(git ls-files '*.java' '*.kt' '*.kts' || true)
@@ -328,7 +326,7 @@ jobs:
328326
329327
enforce "ReScript files" "use AffineScript instead" "$RES_FILES"
330328
enforce "Go files" "use Rust/WASM instead" "$GO_FILES"
331-
enforce "Python files" "only allowed for SaltStack" "$PY_FILES"
329+
enforce "Python files" "Python is fully banned — use AffineScript/Rust/SPARK/Julia (SaltStack carveout removed 2026-01-03)" "$PY_FILES"
332330
enforce "Makefiles" "use Mustfile/justfile instead" "$MAKE_FILES"
333331
enforce "Java/Kotlin files" "use Rust/Tauri/Dioxus instead" "$JAVA_FILES"
334332
enforce "Swift files" "use Tauri/Dioxus instead" "$SWIFT_FILES"
@@ -430,7 +428,7 @@ jobs:
430428
- name: Summary
431429
run: |
432430
echo "RSR language/package policy passed — allowed: AffineScript, Deno,"
433-
echo "WASM, Rust, OCaml, Haskell, Guile/Scheme, SaltStack (Python)."
431+
echo "WASM, Rust, OCaml, Haskell, Guile/Scheme."
434432
435433
package-policy:
436434
name: Guix primary / Nix fallback policy

consent-aware-http/.github/workflows/language-policy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ jobs:
88
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
99
- name: Enforce language policies
1010
run: |
11-
# Block new Python files (except SaltStack)
12-
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true)
11+
# Block new Python files (Python fully banned 2026-01-03 — SaltStack carveout removed)
12+
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' || true)
1313
if [ -n "$NEW_PY" ]; then
1414
echo "❌ New Python files detected. Use Rust or AffineScript instead."
1515
echo "$NEW_PY"

rhodium-standard-repositories/.github/workflows/language-policy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ jobs:
1111
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
1212
- name: Enforce language policies
1313
run: |
14-
# Block new Python files (except SaltStack)
15-
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true)
14+
# Block new Python files (Python fully banned 2026-01-03 — SaltStack carveout removed)
15+
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' || true)
1616
if [ -n "$NEW_PY" ]; then
1717
echo "❌ New Python files detected. Use Rust or AffineScript instead."
1818
echo "$NEW_PY"

rhodium-standard-repositories/satellites/consent-aware-http/.github/workflows/language-policy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ jobs:
77
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
88
- name: Enforce language policies
99
run: |
10-
# Block new Python files (except SaltStack)
11-
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true)
10+
# Block new Python files (Python fully banned 2026-01-03 — SaltStack carveout removed)
11+
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' || true)
1212
if [ -n "$NEW_PY" ]; then
1313
echo "❌ New Python files detected. Use Rust or AffineScript instead."
1414
echo "$NEW_PY"

rhodium-standard-repositories/satellites/palimpsest-license/.github/workflows/language-policy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ jobs:
77
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
88
- name: Enforce language policies
99
run: |
10-
# Block new Python files (except SaltStack)
11-
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true)
10+
# Block new Python files (Python fully banned 2026-01-03 — SaltStack carveout removed)
11+
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' || true)
1212
if [ -n "$NEW_PY" ]; then
1313
echo "❌ New Python files detected. Use Rust or AffineScript instead."
1414
echo "$NEW_PY"

0 commit comments

Comments
 (0)