WIP: feat(rulebook): bazel rules + first Rulebook #7

Draft
arrdem wants to merge 1 commit from arrdem/rulebook-bazel into arrdem/rulebook-dsl
Owner

Stacked on PR #4. Adds the rulebook_schema Bazel rule that compiles a Rulebook to its JSON catalog at build time, the rulebook_library rule for shared policy modules, and the first real Rulebook in projects/doorman/. Shared policy helpers land under tools/arstotzka/.

Scope guard

The rule emits JSON only. starlark-pyo3 is a build-time dependency and never enters the runtime closure of any deployable image — PR #6's auth-server loader consumes the JSON action output, nothing downstream parses Starlark. See projects/rulebook/bazel/SCOPE.md for the full in/out-of-scope breakdown and open questions.

Status

This PR is open as a stub: only the SCOPE document has been committed so the PR exists with a Forgejo number that the rest of the stack can reference. Implementation commits will follow.

Stack

  • PR #4 — Rulebook DSL (this PR's base)
  • PR #5 — bazel rules + first Rulebook (this PR)
  • PR #6arstotzka_catalog aggregator + server-side loader
  • PR #7authctl integration
Stacked on PR #4. Adds the `rulebook_schema` Bazel rule that compiles a `Rulebook` to its JSON catalog at build time, the `rulebook_library` rule for shared policy modules, and the first real Rulebook in `projects/doorman/`. Shared policy helpers land under `tools/arstotzka/`. ### Scope guard The rule emits **JSON only**. `starlark-pyo3` is a build-time dependency and never enters the runtime closure of any deployable image — PR #6's auth-server loader consumes the JSON action output, nothing downstream parses Starlark. See `projects/rulebook/bazel/SCOPE.md` for the full in/out-of-scope breakdown and open questions. ### Status This PR is open as a stub: only the SCOPE document has been committed so the PR exists with a Forgejo number that the rest of the stack can reference. Implementation commits will follow. ### Stack - PR #4 — Rulebook DSL (this PR's base) - **PR #5 — bazel rules + first Rulebook (this PR)** - PR #6 — `arstotzka_catalog` aggregator + server-side loader - PR #7 — `authctl` integration
Placeholder commit so PR #5 has a real Forgejo number that PR #4 can
reference. Real work follows in subsequent commits on this branch:
the rulebook_schema rule, rulebook_library, the first projects/doorman
Rulebook, and the shared tools/arstotzka policy module.
arrdem force-pushed arrdem/rulebook-bazel from fc511de347 to 00f437e8cb 2026-04-26 19:35:43 +00:00 Compare
arrdem force-pushed arrdem/rulebook-bazel from 00f437e8cb to 24642431f8 2026-04-26 19:41:41 +00:00 Compare
arrdem force-pushed arrdem/rulebook-bazel from 24642431f8 to e9f55532d6 2026-04-26 20:01:38 +00:00 Compare
arrdem force-pushed arrdem/rulebook-bazel from e9f55532d6 to 71c913bb9c 2026-04-26 20:19:28 +00:00 Compare
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin arrdem/rulebook-bazel:arrdem/rulebook-bazel
git switch arrdem/rulebook-bazel

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch arrdem/rulebook-dsl
git merge --no-ff arrdem/rulebook-bazel
git switch arrdem/rulebook-bazel
git rebase arrdem/rulebook-dsl
git switch arrdem/rulebook-dsl
git merge --ff-only arrdem/rulebook-bazel
git switch arrdem/rulebook-bazel
git rebase arrdem/rulebook-dsl
git switch arrdem/rulebook-dsl
git merge --no-ff arrdem/rulebook-bazel
git switch arrdem/rulebook-dsl
git merge --squash arrdem/rulebook-bazel
git switch arrdem/rulebook-dsl
git merge --ff-only arrdem/rulebook-bazel
git switch arrdem/rulebook-dsl
git merge arrdem/rulebook-bazel
git push origin arrdem/rulebook-dsl
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
arrdem/source!7
No description provided.