Skip to content

Commit a106916

Browse files
TMHSDigitalclaude
andcommitted
docs: template exit-code prose, copyright step and bl_info rationale match the code
The template READMEs and CLAUDE.md said failures exit 2+ while their own tables and code reserve 2 for argparse usage (#490). The extension template README never told users to replace copyright, so following it shipped an add-on credited to the template author, and its 'from inside Blender' heading led into a shell command. The bl_info comment claimed a pre-manifest fallback that its 4.5 floor makes impossible. Closes #539 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LpkeXRvikhJZSVGBFM91Dv Signed-off-by: TM Hospitality Strategies <TMHospitalityStrategies@gmail.com>
1 parent 159586a commit a106916

5 files changed

Lines changed: 16 additions & 13 deletions

File tree

‎CLAUDE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ matching its `globs` does. Changing a glob changes when the rule fires.
105105
- Import, unit-scale check, transform apply, origin, normals, evaluated tris
106106
- LOD chain and optional convex/box collider
107107
- Unity / Godot / Unreal glTF export via the engine-export-presets contract
108-
- Explicit exit codes matching `headless-batch-script-template` (0, then 2+)
108+
- Explicit exit codes matching `headless-batch-script-template` (0, then 3+; 2 is argparse usage only)
109109

110110
## Snippets (31)
111111

‎templates/ai-asset-pipeline-template/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ header; templates are not a package.
7373
## Exit codes
7474

7575
Same convention as `templates/headless-batch-script-template/`
76-
(`script.py` / its README: 0 success, 2+ distinct failure modes;
77-
argparse usage errors also exit 2). Not a repo-wide table; examples such
76+
(`script.py` / its README: 0 success, 3 and up for distinct failure
77+
modes; 2 is argparse usage only). Not a repo-wide table; examples such
7878
as `export-preset-axis` number their own checks independently.
7979

8080
| Code | Meaning |

‎templates/extension-addon-template/README.md‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ Targets Blender 4.5 LTS and 5.x.
1818
`id` (Python identifier, no hyphens) that is unique in your namespace.
1919
2. Edit `blender_manifest.toml`:
2020
- Change `id`, `name`, `tagline` (max 64 characters, no trailing
21-
period), `maintainer`, `version`, and `website`.
21+
period), `maintainer`, `version`, `website`, and `copyright` (it
22+
ships as the template author's; put your own name and year).
23+
- Review `license`: the template ships `SPDX:GPL-3.0-or-later`; the
24+
Extensions Platform hosts add-ons only under GPL-compatible licenses.
2225
- Adjust `tags` to match your add-on's category. Allowed values come
2326
from the Extensions Platform tag list.
2427
- Set `blender_version_min` to the lowest Blender you actually
@@ -32,12 +35,10 @@ Targets Blender 4.5 LTS and 5.x.
3235

3336
## Install for development
3437

35-
From inside Blender:
36-
37-
1. Build a package from the template directory (it holds
38+
1. From a shell, build a package from the template directory (it holds
3839
`blender_manifest.toml`):
3940
`blender --command extension build --source-dir . --output-dir dist`
40-
2. Edit > Preferences > Get Extensions > the drop-down menu > Install from
41+
2. In Blender: Edit > Preferences > Get Extensions > the drop-down menu > Install from
4142
Disk, and pick the `.zip` in `dist/`. "Install from Disk" takes a `.zip`
4243
(or a `.py`), not a directory.
4344
3. Enable the add-on.

‎templates/extension-addon-template/__init__.py‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
# because the unregister_class call invalidates the type the binding
1313
# points at.
1414
#
15-
# bl_info is kept alongside the manifest for backward compatibility with
16-
# Blender versions before manifests were honored. The manifest is the
17-
# source of truth.
15+
# bl_info is read only when the package is installed as a legacy add-on
16+
# (no manifest, for example dropped into scripts/addons) and is ignored when
17+
# it installs as an extension. Its "blender" floor is 4.5, so it does not make
18+
# the add-on load on Blender older than the manifest era either. The manifest
19+
# is the source of truth.
1820

1921
bl_info = {
2022
"name": "Example Addon",

‎templates/headless-batch-script-template/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ it is forwarded to `script.py` as `sys.argv`.
3737
operator per object. The new modifier runs after any existing ones.
3838
Every modifier on the object is applied, not only the new one.
3939
4. Exports the scene to a `.glb` at the given output path.
40-
5. Returns explicit exit codes (0 success, 2-4 different failure modes)
41-
so a CI pipeline can detect failures.
40+
5. Returns explicit exit codes (0 success, 3 and up for distinct failure
41+
modes; 2 is argparse usage only) so a CI pipeline can detect failures.
4242

4343
## Exit codes
4444

0 commit comments

Comments
 (0)