diff --git a/.github/workflows/drift-check.yml b/.github/workflows/drift-check.yml index 4e858fc..7e35d35 100644 --- a/.github/workflows/drift-check.yml +++ b/.github/workflows/drift-check.yml @@ -15,7 +15,7 @@ jobs: contents: read steps: - uses: actions/checkout@v6 - - uses: TMHSDigital/Developer-Tools-Directory/.github/actions/drift-check@v1.9 + - uses: TMHSDigital/Developer-Tools-Directory/.github/actions/drift-check@v1.15 with: mode: self format: gh-summary diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a77cec6..489ba1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -104,7 +104,7 @@ jobs: with: plugin-version: ${{ steps.new.outputs.version }} previous-version: ${{ steps.current.outputs.version }} - meta-repo-ref: v1.9.1 + meta-repo-ref: v1.15.1 - name: Commit version bump if: steps.check.outputs.skip == 'false' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..2c0d62b --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,23 @@ +name: Stale + +on: + schedule: + - cron: "0 6 * * 1" + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + stale-issue-message: "This issue has been automatically marked as stale due to inactivity. It will be closed in 7 days if no further activity occurs." + stale-pr-message: "This PR has been automatically marked as stale due to inactivity. It will be closed in 7 days if no further activity occurs." + days-before-stale: 30 + days-before-close: 7 + stale-issue-label: stale + stale-pr-label: stale diff --git a/AGENTS.md b/AGENTS.md index b61ca30..52b5ab7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ - + # AGENTS.md @@ -74,7 +74,7 @@ Each skill lives at `skills//SKILL.md`. Frontmatter is YAML: --- name: description: -standards-version: 1.9.4 +standards-version: 1.10.0 --- ``` @@ -93,7 +93,7 @@ Rules are `.mdc` files in `rules/`. Frontmatter: --- description: alwaysApply: true -standards-version: 1.9.4 +standards-version: 1.10.0 --- ``` @@ -107,7 +107,7 @@ way, and a one-paragraph rationale. 30 to 80 lines is the right size. snippets) match filesystem reality. The counts language in `README.md` is load-bearing: the job greps for it. - `drift-check.yml` consumes `Developer-Tools-Directory/.github/actions/ - drift-check@v1.9` to enforce ecosystem standards-version markers. + drift-check@v1.15` to enforce ecosystem standards-version markers. - `release.yml` auto-bumps the version, tags, force-updates floating tags `v0` and `v0.1`, and runs `release-doc-sync@v1` to rewrite CHANGELOG.md, CLAUDE.md `**Version:**`, and ROADMAP.md `**Current:**`. Triggered on diff --git a/CLAUDE.md b/CLAUDE.md index 0209179..fb11a3f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ - + # CLAUDE.md diff --git a/ROADMAP.md b/ROADMAP.md index ed5ec37..ebe037b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,4 +1,4 @@ - + # Roadmap diff --git a/rules/always-free-bmesh.mdc b/rules/always-free-bmesh.mdc index 1454cef..610a532 100644 --- a/rules/always-free-bmesh.mdc +++ b/rules/always-free-bmesh.mdc @@ -3,7 +3,7 @@ description: Flag bmesh.new() calls without a paired bm.free() in a try/finally alwaysApply: true globs: - "**/*.py" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Always free bmesh diff --git a/rules/prefer-data-over-ops-in-loops.mdc b/rules/prefer-data-over-ops-in-loops.mdc index e0f373c..f6e6890 100644 --- a/rules/prefer-data-over-ops-in-loops.mdc +++ b/rules/prefer-data-over-ops-in-loops.mdc @@ -3,7 +3,7 @@ description: Flag bpy.ops.* calls inside iteration over many objects, meshes, or alwaysApply: true globs: - "**/*.py" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Prefer bpy.data over bpy.ops in loops diff --git a/rules/prefer-temp-override-over-context-copy.mdc b/rules/prefer-temp-override-over-context-copy.mdc index 5b61092..d71c28d 100644 --- a/rules/prefer-temp-override-over-context-copy.mdc +++ b/rules/prefer-temp-override-over-context-copy.mdc @@ -3,7 +3,7 @@ description: Flag uses of `bpy.context.copy()` to override context for an operat alwaysApply: true globs: - "**/*.py" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Prefer `temp_override` over `context.copy()` diff --git a/rules/target-extensions-platform-format.mdc b/rules/target-extensions-platform-format.mdc index 02e8d33..46058ee 100644 --- a/rules/target-extensions-platform-format.mdc +++ b/rules/target-extensions-platform-format.mdc @@ -4,7 +4,7 @@ alwaysApply: true globs: - "**/__init__.py" - "**/blender_manifest.toml" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Target Extensions Platform format diff --git a/rules/type-annotate-props-and-defend-context.mdc b/rules/type-annotate-props-and-defend-context.mdc index 69ff24d..f7fdf93 100644 --- a/rules/type-annotate-props-and-defend-context.mdc +++ b/rules/type-annotate-props-and-defend-context.mdc @@ -3,7 +3,7 @@ description: Flag two related anti-patterns. (1) bpy.props defined as class-leve alwaysApply: true globs: - "**/*.py" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Type-annotate props and defend context diff --git a/rules/use-foreach-set-for-bulk-data.mdc b/rules/use-foreach-set-for-bulk-data.mdc index adf8394..7704742 100644 --- a/rules/use-foreach-set-for-bulk-data.mdc +++ b/rules/use-foreach-set-for-bulk-data.mdc @@ -3,7 +3,7 @@ description: Flag Python loops that set vertex coordinates, normals, UVs, or oth alwaysApply: true globs: - "**/*.py" -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Use `foreach_set` and `foreach_get` for bulk mesh data diff --git a/skills/addon-scaffolding/SKILL.md b/skills/addon-scaffolding/SKILL.md index 4845462..6853662 100644 --- a/skills/addon-scaffolding/SKILL.md +++ b/skills/addon-scaffolding/SKILL.md @@ -1,7 +1,7 @@ --- name: addon-scaffolding description: Scaffold a Blender add-on against the Extensions Platform format with blender_manifest.toml, modular file layout, and the register_classes_factory pattern. Targets Blender 5.1 with 4.5 LTS fallback. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Addon Scaffolding (Extensions Platform) diff --git a/skills/bl-info-migration/SKILL.md b/skills/bl-info-migration/SKILL.md index 2f40a7e..d9366f7 100644 --- a/skills/bl-info-migration/SKILL.md +++ b/skills/bl-info-migration/SKILL.md @@ -1,7 +1,7 @@ --- name: bl-info-migration description: Migrate a legacy bl_info-format add-on to the Extensions Platform. Three concrete steps, before-and-after diff, dual-format pattern for backward compatibility, and answers to "is bl_info still supported?" Targets Blender 5.1. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # bl_info Migration to the Extensions Platform diff --git a/skills/custom-properties/SKILL.md b/skills/custom-properties/SKILL.md index d3fa98f..ffda8f9 100644 --- a/skills/custom-properties/SKILL.md +++ b/skills/custom-properties/SKILL.md @@ -1,7 +1,7 @@ --- name: custom-properties description: Define and bind Blender custom properties via bpy.props using the type annotation form, with PropertyGroup for grouping, PointerProperty for binding, and the four storage location options for Scene/Object/WindowManager/AddonPreferences. Targets 5.1. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Custom Properties diff --git a/skills/depsgraph-and-evaluated-data/SKILL.md b/skills/depsgraph-and-evaluated-data/SKILL.md index 25a71d2..714443a 100644 --- a/skills/depsgraph-and-evaluated-data/SKILL.md +++ b/skills/depsgraph-and-evaluated-data/SKILL.md @@ -1,7 +1,7 @@ --- name: depsgraph-and-evaluated-data description: Read the actual evaluated geometry the user sees by going through the dependency graph rather than reading raw `obj.data`. Covers `evaluated_get`, `to_mesh`, `to_mesh_clear`, and the lifetime rules that prevent crashes and memory leaks. Targets Blender 5.1. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Depsgraph and Evaluated Data diff --git a/skills/drivers-and-app-handlers/SKILL.md b/skills/drivers-and-app-handlers/SKILL.md index 63af640..f396596 100644 --- a/skills/drivers-and-app-handlers/SKILL.md +++ b/skills/drivers-and-app-handlers/SKILL.md @@ -1,7 +1,7 @@ --- name: drivers-and-app-handlers description: Drive properties from expressions or other properties via the Driver API, and react to scene events via the bpy.app.handlers callbacks. Covers driver_namespace for Python functions, the new exit_pre handler in 5.1, and the must-be-fast contract for any handler. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Drivers and Application Handlers diff --git a/skills/geometry-nodes-python/SKILL.md b/skills/geometry-nodes-python/SKILL.md index c4f6a05..9b057fb 100644 --- a/skills/geometry-nodes-python/SKILL.md +++ b/skills/geometry-nodes-python/SKILL.md @@ -1,7 +1,7 @@ --- name: geometry-nodes-python description: Programmatically construct Geometry Nodes trees in Blender 5.x via bpy.data.node_groups, interface socket creation, node instantiation by RNA name, link wiring, and applying as a NODES modifier. Includes Bundles for grouped sockets. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Geometry Nodes in Python diff --git a/skills/headless-batch-scripting/SKILL.md b/skills/headless-batch-scripting/SKILL.md index 936fc54..e3b7f56 100644 --- a/skills/headless-batch-scripting/SKILL.md +++ b/skills/headless-batch-scripting/SKILL.md @@ -1,7 +1,7 @@ --- name: headless-batch-scripting description: Run Blender headless via blender --background --python script.py for batch jobs. What changes without a UI, how to avoid UI-dependent operators, the temp_override pattern when ops must be used, and argparse after the -- separator. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Headless Batch Scripting diff --git a/skills/mesh-editing-and-bmesh/SKILL.md b/skills/mesh-editing-and-bmesh/SKILL.md index f648bdb..30a271b 100644 --- a/skills/mesh-editing-and-bmesh/SKILL.md +++ b/skills/mesh-editing-and-bmesh/SKILL.md @@ -1,7 +1,7 @@ --- name: mesh-editing-and-bmesh description: Performant mesh manipulation in Blender. When to use bpy.data vs bpy.ops vs bmesh, the canonical bm.new/free pattern, foreach_set bulk vertex injection, and depsgraph evaluation for modifier-applied geometry. Targets 5.1. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Mesh Editing and bmesh diff --git a/skills/operators/SKILL.md b/skills/operators/SKILL.md index 602d484..6425bf8 100644 --- a/skills/operators/SKILL.md +++ b/skills/operators/SKILL.md @@ -1,7 +1,7 @@ --- name: operators description: Author Blender operators with bpy.types.Operator, bl_idname conventions, the poll/invoke/execute/modal lifecycle, REGISTER and UNDO options, and defensive context handling. Targets 5.1 with 4.5 LTS compatibility. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Operators diff --git a/skills/procedural-materials-and-shaders/SKILL.md b/skills/procedural-materials-and-shaders/SKILL.md index 88ebbf2..51712a5 100644 --- a/skills/procedural-materials-and-shaders/SKILL.md +++ b/skills/procedural-materials-and-shaders/SKILL.md @@ -1,7 +1,7 @@ --- name: procedural-materials-and-shaders description: Build materials and shader graphs from Python by enabling nodes, instantiating shader nodes, setting socket default values, and wiring links. Targets Blender 5.1 EEVEE Next and Cycles. Avoids the (deferred to 2027) Layered Textures roadmap. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Procedural Materials and Shaders diff --git a/skills/slotted-actions-animation/SKILL.md b/skills/slotted-actions-animation/SKILL.md index 8c429f9..cce726b 100644 --- a/skills/slotted-actions-animation/SKILL.md +++ b/skills/slotted-actions-animation/SKILL.md @@ -1,7 +1,7 @@ --- name: slotted-actions-animation description: Animate from Python under the Blender 5.x Slotted Actions architecture. Action contains Layers contain Strips contain Channelbags. The action_ensure_channelbag_for_slot bridge utility for 4.5 LTS and 5.x compatibility. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # Slotted Actions Animation diff --git a/skills/ui-panels/SKILL.md b/skills/ui-panels/SKILL.md index 969bdc4..50760ca 100644 --- a/skills/ui-panels/SKILL.md +++ b/skills/ui-panels/SKILL.md @@ -1,7 +1,7 @@ --- name: ui-panels description: Author Blender UI panels with bpy.types.Panel, declarative draw(), bl_space_type and bl_region_type, layout primitives like row/column/split, and conditional UI via .enabled. Targets 5.1. -standards-version: 1.9.4 +standards-version: 1.10.0 --- # UI Panels