From e48b656fcada07525ed2267846cc9c3204b89ee3 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Nov 2026 00:53:30 +0000 Subject: [PATCH 1/2] Adopt the org CI Add .github/workflows/ci.yml (pkgs org-ci caller, minor 0) and the org ruleset file, gitignore _site/ and site/, bump org-pkgs and the dev presenting pin. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01E5NrkgmtBE4jpQ1PUPbs6v --- .github/rulesets/default.json | 41 +++++++++ .github/workflows/ci.yml | 33 ++++++++ .gitignore | 2 + dev/flake.lock | 6 +- flake.lock | 153 ++++++++++++++++++++++++++++++++-- 5 files changed, 227 insertions(+), 8 deletions(-) create mode 100644 .github/rulesets/default.json create mode 100644 .github/workflows/ci.yml diff --git a/.github/rulesets/default.json b/.github/rulesets/default.json new file mode 100644 index 0000000..44e36da --- /dev/null +++ b/.github/rulesets/default.json @@ -0,0 +1,41 @@ +{ + "name": "default", + "target": "branch", + "enforcement": "active", + "conditions": { + "ref_name": { + "include": ["~DEFAULT_BRANCH"], + "exclude": [] + } + }, + "rules": [ + { "type": "deletion" }, + { "type": "non_fast_forward" }, + { "type": "required_linear_history" }, + { "type": "required_signatures" }, + { + "type": "pull_request", + "parameters": { + "required_approving_review_count": 0, + "dismiss_stale_reviews_on_push": false, + "require_code_owner_review": false, + "require_last_push_approval": false, + "required_review_thread_resolution": false, + "allowed_merge_methods": ["squash"] + } + }, + { + "type": "required_status_checks", + "parameters": { + "strict_required_status_checks_policy": true, + "do_not_enforce_on_create": false, + "required_status_checks": [ + { "context": "ci / flake-check", "integration_id": 15368 } + ] + } + } + ], + "bypass_actors": [ + { "actor_id": null, "actor_type": "OrganizationAdmin", "bypass_mode": "pull_request" } + ] +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..abfcfef --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +# Org standard CI: the external-systems/pkgs org-ci workflow. `nix flake +# check` on PRs, the merge queue and main; on main, after it passes, the +# docs/slides deploy to GitHub Pages and a 0.. release. +# +# Required status check for the ruleset: "ci / flake-check". +# +# Private flake inputs (e.g. external-systems/secrets): give the repo the +# NIX_APP_ID + NIX_APP_PRIVATE_KEY org secrets and add +# `private-repos: secrets` under `with:`. +name: ci + +on: + push: + branches: [main] + pull_request: + merge_group: + workflow_dispatch: + +permissions: {} + +jobs: + ci: + uses: external-systems/pkgs/.github/workflows/org-ci.yml@main + # The union org-ci's jobs need; each job narrows it to its own. + permissions: + contents: write + actions: write + pages: write + id-token: write + with: + # Release series x in 0.x.y. + minor: 0 + secrets: inherit diff --git a/.gitignore b/.gitignore index bbab5c7..2171403 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ result result-* .devenv* devenv.local.nix +_site/ +site/ diff --git a/dev/flake.lock b/dev/flake.lock index 4a11f11..4c8eeac 100644 --- a/dev/flake.lock +++ b/dev/flake.lock @@ -193,11 +193,11 @@ "reveal-js": "reveal-js" }, "locked": { - "lastModified": 1793448092, - "narHash": "sha256-9trY8O1dwLErztqJWTR44tisHywG/ngYGxiHhLgF/80=", + "lastModified": 1793453920, + "narHash": "sha256-NPjWRnrPSJfSTHXLo7iCJOMTaanjpBLwazdhksGygIE=", "owner": "external-systems", "repo": "presenting", - "rev": "9edeeb79edbb11c3b1aa8f3444b7237b797dc493", + "rev": "91b03e751f0ef4c479054361d2e7b18e6707611b", "type": "github" }, "original": { diff --git a/flake.lock b/flake.lock index 1645a2f..9fb0f56 100644 --- a/flake.lock +++ b/flake.lock @@ -44,7 +44,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1731533236, @@ -138,6 +138,30 @@ "type": "github" } }, + "moscripts": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "nixpkgs" + ], + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "systems": "systems", + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1776608080, + "narHash": "sha256-4vVq0KIJe/no8+6RMDLFgc6PhbsKas45+vvJBzkKw7k=", + "rev": "c7b7977f4494fc1d48eada86d6f8e9174a74d0e1", + "revCount": 77, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/andrewthomaslee/moscripts/0.1.0/019da619-cbca-7990-81d0-6071370e1994/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/andrewthomaslee/moscripts/%2A" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -196,14 +220,16 @@ "inputs": { "flake-parts": "flake-parts", "import-tree": "import-tree", - "nixpkgs": "nixpkgs_2" + "moscripts": "moscripts", + "nixpkgs": "nixpkgs_2", + "zen-browser": "zen-browser" }, "locked": { - "lastModified": 1793551278, - "narHash": "sha256-7seV8b4LiNozjcmFL+QVW8AZJy7YcaaxGBLXQSsL6u8=", + "lastModified": 1793666333, + "narHash": "sha256-mgGnU2A7gcLhPVu6gsMHJ4TqO5wHIDxV+6N9xbFfVE4=", "owner": "external-systems", "repo": "pkgs", - "rev": "eda36b1fe7d4ea04b6ac6f3b66a6643a2b2bab74", + "rev": "c66adf4c5f91d4da541ff9d896c86eb5414886c3", "type": "github" }, "original": { @@ -235,6 +261,60 @@ "type": "github" } }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "org-pkgs", + "moscripts", + "pyproject-nix" + ], + "uv2nix": [ + "org-pkgs", + "moscripts", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1756087852, + "narHash": "sha256-4jc3JDQt75fYXFrglgqyzF6C6zLU0QGLymzian4aP+U=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "6edb3ae27395cd88be3d64b732d1539957dad59c", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756395552, + "narHash": "sha256-5aJM14MpoLk2cdZAetu60OkLQrtFLWTICAyn1EP7ZpM=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "030dffc235dcf240d918c651c78dc5f158067b51", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": [ @@ -457,6 +537,48 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "org-pkgs", + "moscripts", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1756466761, + "narHash": "sha256-ALXRHIMXQ4qVNfCbcWykC23MjMwUoHn9BreoBfqmq0Y=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "0529e6d8227517205afcd1b37eee3088db745730", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, "whisper-dictation": { "inputs": { "flake-utils": "flake-utils", @@ -477,6 +599,27 @@ "repo": "whisper-dictation", "type": "github" } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1793356942, + "narHash": "sha256-3ddg7v2Ya11zEeQghXELyFwYIpv+nCTm2uVmu3LmvfU=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "532b9a848c6b96d9f607e8856d1a458bdb7dcf66", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", From 2daef50c77d3f440a5d10ebcabb6d30633a51a8a Mon Sep 17 00:00:00 2001 From: andrewthomaslee Date: Mon, 2 Nov 2026 19:26:14 -0600 Subject: [PATCH 2/2] update locks --- dev/flake.lock | 165 ++++++++++++++++++++++++++++++++++++++++++++++--- devenv.lock | 153 +++++++++++++++++++++++++++++++++++++++++++-- devenv.yaml | 2 +- flake.lock | 6 +- 4 files changed, 310 insertions(+), 16 deletions(-) diff --git a/dev/flake.lock b/dev/flake.lock index 4c8eeac..34613a3 100644 --- a/dev/flake.lock +++ b/dev/flake.lock @@ -100,6 +100,31 @@ "type": "github" } }, + "moscripts": { + "inputs": { + "nixpkgs": [ + "presenting", + "org-pkgs", + "nixpkgs" + ], + "pyproject-build-systems": "pyproject-build-systems_2", + "pyproject-nix": "pyproject-nix_2", + "systems": "systems_3", + "uv2nix": "uv2nix_2" + }, + "locked": { + "lastModified": 1776608080, + "narHash": "sha256-4vVq0KIJe/no8+6RMDLFgc6PhbsKas45+vvJBzkKw7k=", + "rev": "c7b7977f4494fc1d48eada86d6f8e9174a74d0e1", + "revCount": 77, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/andrewthomaslee/moscripts/0.1.0/019da619-cbca-7990-81d0-6071370e1994/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/andrewthomaslee/moscripts/%2A" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -127,16 +152,18 @@ "inputs": { "flake-parts": "flake-parts", "import-tree": "import-tree", + "moscripts": "moscripts", "nixpkgs": [ "dev-nixpkgs" - ] + ], + "zen-browser": "zen-browser" }, "locked": { - "lastModified": 1793444658, - "narHash": "sha256-Fk+uJAmFS0FbZqH48EoqRifwiJM1Z1TlfX5f4hZS4/M=", + "lastModified": 1793666333, + "narHash": "sha256-mgGnU2A7gcLhPVu6gsMHJ4TqO5wHIDxV+6N9xbFfVE4=", "owner": "external-systems", "repo": "pkgs", - "rev": "e058d99fe9f04de4fc47ce892d0efbfebba7929b", + "rev": "c66adf4c5f91d4da541ff9d896c86eb5414886c3", "type": "github" }, "original": { @@ -193,11 +220,11 @@ "reveal-js": "reveal-js" }, "locked": { - "lastModified": 1793453920, - "narHash": "sha256-NPjWRnrPSJfSTHXLo7iCJOMTaanjpBLwazdhksGygIE=", + "lastModified": 1793668922, + "narHash": "sha256-p2XDFE6xC8JXVcV910EZCk0kWWp5l/2NyGDvYFzUNwI=", "owner": "external-systems", "repo": "presenting", - "rev": "91b03e751f0ef4c479054361d2e7b18e6707611b", + "rev": "714681f88cd64435ec50c2cbde3fb293272a4146", "type": "github" }, "original": { @@ -238,6 +265,41 @@ "type": "github" } }, + "pyproject-build-systems_2": { + "inputs": { + "nixpkgs": [ + "presenting", + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "presenting", + "org-pkgs", + "moscripts", + "pyproject-nix" + ], + "uv2nix": [ + "presenting", + "org-pkgs", + "moscripts", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1756087852, + "narHash": "sha256-4jc3JDQt75fYXFrglgqyzF6C6zLU0QGLymzian4aP+U=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "6edb3ae27395cd88be3d64b732d1539957dad59c", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, "pyproject-nix": { "inputs": { "nixpkgs": [ @@ -260,6 +322,29 @@ "type": "github" } }, + "pyproject-nix_2": { + "inputs": { + "nixpkgs": [ + "presenting", + "org-pkgs", + "moscripts", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756395552, + "narHash": "sha256-5aJM14MpoLk2cdZAetu60OkLQrtFLWTICAyn1EP7ZpM=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "030dffc235dcf240d918c651c78dc5f158067b51", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "reveal-js": { "flake": false, "locked": { @@ -314,6 +399,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -383,6 +483,57 @@ "repo": "uv2nix", "type": "github" } + }, + "uv2nix_2": { + "inputs": { + "nixpkgs": [ + "presenting", + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "presenting", + "org-pkgs", + "moscripts", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1756466761, + "narHash": "sha256-ALXRHIMXQ4qVNfCbcWykC23MjMwUoHn9BreoBfqmq0Y=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "0529e6d8227517205afcd1b37eee3088db745730", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "presenting", + "org-pkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1793356942, + "narHash": "sha256-3ddg7v2Ya11zEeQghXELyFwYIpv+nCTm2uVmu3LmvfU=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "532b9a848c6b96d9f607e8856d1a458bdb7dcf66", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/devenv.lock b/devenv.lock index 2b1dcc7..2006446 100644 --- a/devenv.lock +++ b/devenv.lock @@ -53,6 +53,30 @@ "type": "github" } }, + "moscripts": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "nixpkgs" + ], + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "systems": "systems", + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1776608080, + "narHash": "sha256-4vVq0KIJe/no8+6RMDLFgc6PhbsKas45+vvJBzkKw7k=", + "rev": "c7b7977f4494fc1d48eada86d6f8e9174a74d0e1", + "revCount": 77, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/andrewthomaslee/moscripts/0.1.0/019da619-cbca-7990-81d0-6071370e1994/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/andrewthomaslee/moscripts/%2A" + } + }, "nixpkgs": { "locked": { "lastModified": 1793110635, @@ -73,20 +97,76 @@ "inputs": { "flake-parts": "flake-parts", "import-tree": "import-tree", - "nixpkgs": "nixpkgs" + "moscripts": "moscripts", + "nixpkgs": "nixpkgs", + "zen-browser": "zen-browser" }, "locked": { - "lastModified": 1793551278, - "narHash": "sha256-7seV8b4LiNozjcmFL+QVW8AZJy7YcaaxGBLXQSsL6u8=", + "lastModified": 1793666333, + "narHash": "sha256-mgGnU2A7gcLhPVu6gsMHJ4TqO5wHIDxV+6N9xbFfVE4=", "owner": "external-systems", "repo": "pkgs", - "rev": "eda36b1fe7d4ea04b6ac6f3b66a6643a2b2bab74", + "rev": "c66adf4c5f91d4da541ff9d896c86eb5414886c3", "type": "github" }, "original": { "owner": "external-systems", "repo": "pkgs", - "rev": "eda36b1fe7d4ea04b6ac6f3b66a6643a2b2bab74", + "rev": "c66adf4c5f91d4da541ff9d896c86eb5414886c3", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "org-pkgs", + "moscripts", + "pyproject-nix" + ], + "uv2nix": [ + "org-pkgs", + "moscripts", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1756087852, + "narHash": "sha256-4jc3JDQt75fYXFrglgqyzF6C6zLU0QGLymzian4aP+U=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "6edb3ae27395cd88be3d64b732d1539957dad59c", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756395552, + "narHash": "sha256-5aJM14MpoLk2cdZAetu60OkLQrtFLWTICAyn1EP7ZpM=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "030dffc235dcf240d918c651c78dc5f158067b51", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", "type": "github" } }, @@ -99,6 +179,69 @@ ], "org-pkgs": "org-pkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "moscripts", + "nixpkgs" + ], + "pyproject-nix": [ + "org-pkgs", + "moscripts", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1756466761, + "narHash": "sha256-ALXRHIMXQ4qVNfCbcWykC23MjMwUoHn9BreoBfqmq0Y=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "0529e6d8227517205afcd1b37eee3088db745730", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "org-pkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1793356942, + "narHash": "sha256-3ddg7v2Ya11zEeQghXELyFwYIpv+nCTm2uVmu3LmvfU=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "532b9a848c6b96d9f607e8856d1a458bdb7dcf66", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/devenv.yaml b/devenv.yaml index afc6de9..eb3934e 100644 --- a/devenv.yaml +++ b/devenv.yaml @@ -6,7 +6,7 @@ # pkgs ("attribute 'bash' missing"). inputs: org-pkgs: - url: github:external-systems/pkgs/eda36b1fe7d4ea04b6ac6f3b66a6643a2b2bab74 + url: github:external-systems/pkgs/c66adf4c5f91d4da541ff9d896c86eb5414886c3 nixpkgs: follows: org-pkgs/nixpkgs imports: diff --git a/flake.lock b/flake.lock index 9fb0f56..4dc20b3 100644 --- a/flake.lock +++ b/flake.lock @@ -364,11 +364,11 @@ "skills-terraform": "skills-terraform" }, "locked": { - "lastModified": 1793657851, - "narHash": "sha256-PO0KeeB0hGYj6FDtloAk08MbG3IFCupKH4C7G1sb8kw=", + "lastModified": 1793668321, + "narHash": "sha256-xXLiUMAL43T6T/feUtg1LgyffP9DurZLTQd0+DGK32I=", "owner": "external-systems", "repo": "skills", - "rev": "e02232e389d570b67fe8a8f23f95ecbe8846cdb4", + "rev": "5b618769c65b40452d54fe424c7e4504b9e86654", "type": "github" }, "original": {