Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ jobs:
if: github.event.action != 'closed'
uses: ./.github/workflows/python-ci.yml
with:
# wiring.py imports yaml; the flake's python has it, a bare setup-python does not.
self-test-commands: |
pip install "pyyaml==6.0.3"
bash tests/self-tests.sh

static:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ claude --plugin-dir plugins/marola-devkit # the plugin, from this checkout
| `agents-check` | Compare AGENTS.md's invariants block with the pinned devkit's `agents/invariants.md` |
| `docs-lint` | MIP-0074's stale-content check over `README.md` and `docs/**/*.md` |
| `skills-vendor` | Pin vendored skills to an upstream commit in `skills.lock` (`check`, `outdated`, `update`, `init`) |
| `wiring` | MIP-0076's cross-repo wiring tables (artifacts, dispatches, pin bumps, deploys), parsed from an umbrella checkout and its submodules |
| `ruleset-sync` | Check or apply `.github/rulesets/main-rule.json`'s branch ruleset to a repo, or every repo of an org |
| `api-docs-push` | Force-push a directory as one orphan commit to a branch; the `api-docs` workflow's push step |
| `mip-resolve` | Find a MIP or `.tasks.md` in the repo, the umbrella checkout, or via `gh api` |
Expand Down
4 changes: 4 additions & 0 deletions devkit.just
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ branches-clean *args:
branches-open *args:
branches open {{ args }}

# The cross-repo wiring tables (MIP-0076), printed or rewritten between a file's wiring markers.
wiring *args:
wiring {{ args }}

# The invariants block in AGENTS.md against the pinned devkit's copy.
agents-check *args:
agents-check {{ args }}
Expand Down
1 change: 1 addition & 0 deletions docs/4-reference_tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ extension rather than a devkit tool.
| `ruleset-sync` | `ruleset-sync.sh` | `just rulesets-check`, `just rulesets-apply` | `check [owner/repo…]` diffs a repo's live branch ruleset against `.github/rulesets/main-rule.json`; `apply <owner/repo…>` creates or updates it; `--all-org ORG` covers an org |
| `agents-check` | `agents-check.sh` | `just agents-check` | Compare AGENTS.md's invariants block byte for byte with the pinned devkit's `agents/invariants.md` (`--block` or `MAROLA_INVARIANTS_BLOCK` to use another) |
| `docs-lint` | `docs_lint.py` | (none) | MIP-0074 §7's stale-content check over `README.md` and `docs/**/*.md`: undefined or unmarked foreign recipes, another repo's paths, split-era wording, `docs/index.md`, links leaving the repo |
| `wiring` | `wiring.py` | `just wiring` | MIP-0076 §5.1's four tables (artifact, dispatch, pin bump, deploy), parsed from the umbrella's and every submodule's workflows (pin readers, branch artifacts and cross-repo writes are not read yet), with each devkit workflow call's ref. `wiring [FILE]` prints the block or rewrites it between FILE's `wiring:start`/`wiring:end` markers; run it in an umbrella checkout with submodules |
| `workflow-runners` | `workflow_runners.py` | (none) | Fail when any workflow but the GPU publish one can reach a self-hosted runner ([runners](4-reference_runners.md)) |
| `skills-vendor` | `skills_vendor.py` | `just skills-check`, `just skills-outdated`, `just skills-update` | Pin vendored skills to an upstream commit in `skills.lock` (below) |

Expand Down
5 changes: 3 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
pkgs = import nixpkgs { inherit system; };
lib = pkgs.lib;

# scripts/pr_label_nlp.py imports sklearn, so it has to be inside this python3.
python = pkgs.python3.withPackages (ps: [ ps.scikit-learn ]);
# scripts/pr_label_nlp.py imports sklearn and scripts/wiring.py yaml, so both live in this python3.
python = pkgs.python3.withPackages (ps: [ ps.scikit-learn ps.pyyaml ]);
runtimeDeps = [
pkgs.bash pkgs.coreutils pkgs.findutils pkgs.gnugrep pkgs.gnused pkgs.gawk pkgs.perl
pkgs.git pkgs.gh pkgs.jq pkgs.curl python
Expand Down Expand Up @@ -56,6 +56,7 @@
workflow-runners = "scripts/workflow_runners.py";
docs-lint = "scripts/docs_lint.py";
skills-vendor = "scripts/skills_vendor.py";
wiring = "scripts/wiring.py";
};

# The whole tree is installed with its layout intact under share/marola-devkit: the scripts
Expand Down
Loading
Loading