Skip to content

Commit 90d7527

Browse files
committed
Add author identity (and sw_version where a plugin wraps an upstream project); re-pin b3-builder
Declare the author display name on the manifest, kept separate from the publisher signing fingerprint that proves who shipped it. A plugin that wraps an external project also declares sw_version (that project version). Re-pin the b3-builder Action to bac3591, the commit that emits these fields into the index atom, so the released build carries them into the catalog.
1 parent 315ad59 commit 90d7527

4 files changed

Lines changed: 37 additions & 10 deletions

File tree

.github/workflows/pr-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
steps:
3636
- uses: actions/checkout@v4
3737

38-
- uses: Bespok3d/b3-builder@235e6bb8c25616748a795021b14d3ec40f81ee09 # main @ 2026-07-22
38+
- uses: Bespok3d/b3-builder@bac35915867f639b1e9f4c94410222e161af317a # main @ 2026-07-23
3939
with:
4040
unit: repo
4141
bake: 'true'

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
with:
2828
fetch-depth: 0 # full history so the index.json push can rebase on a concurrent update
2929

30-
- uses: Bespok3d/b3-builder@235e6bb8c25616748a795021b14d3ec40f81ee09 # main @ 2026-07-22
30+
- uses: Bespok3d/b3-builder@bac35915867f639b1e9f4c94410222e161af317a # main @ 2026-07-23
3131
with:
3232
unit: repo
3333
# Per-repo Actions secret today (GitHub Free cannot org-secret private repos); becomes ONE org

print-time-human/manifest.json

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "print-time-human",
33
"title": "Print Time (Human)",
44
"version": "0.1.1",
5+
"author": "bespoked",
56
"description": "Adds a PRINT_TIME_HUMAN G-code command that reports the current print's elapsed time in plain words (\"2 hours\", \"a minute\"). It is the reference plugin for a Klipper extra that needs a third-party Python library (humanize): the library is baked into the plugin's own dir at build time and made importable by the extra's own sys.path, so it is never installed into Klipper's shared interpreter (ADR-0036, the never-pip-the-system invariant).",
67
"tagline": "Elapsed print time in plain words; reference Klipper extra with its own Python dep.",
78
"category": "sensors",
@@ -17,10 +18,16 @@
1718
"require": [],
1819
"conflicts": [],
1920
"requires": {
20-
"capabilities": ["klipper-generic"],
21+
"capabilities": [
22+
"klipper-generic"
23+
],
2124
"variables": []
2225
},
23-
"permissions": ["klipper-extra", "klipper-config", "restart"],
26+
"permissions": [
27+
"klipper-extra",
28+
"klipper-config",
29+
"restart"
30+
],
2431
"install": {
2532
"place": [
2633
{
@@ -32,7 +39,9 @@
3239
"src": "files/cfg/klipper/print-time-human.cfg"
3340
}
3441
],
35-
"restart": ["klipper"]
42+
"restart": [
43+
"klipper"
44+
]
3645
},
3746
"endpoints": [],
3847
"conflict_resolutions": [],

status-feed/manifest.json

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "status-feed",
33
"title": "Status Feed",
44
"version": "0.1.0",
5+
"author": "bespoked",
56
"description": "A small sidecar that serves a human-readable print-status summary as JSON at /status-feed/. It runs as its own Python service in a per-plugin virtual environment, so its one dependency (humanize) is fully isolated from the system, Klipper, and Moonraker interpreters.\n\nThis is the reference plugin for the declarative Python-dependency mechanism (ADR-0036): the manifest declares its dependency as data and the daemon provisions and tears down the venv.",
67
"tagline": "Human-readable printer status as a JSON feed.",
78
"category": "sensors",
@@ -21,10 +22,16 @@
2122
"require": [],
2223
"conflicts": [],
2324
"requires": {
24-
"capabilities": ["klipper-generic"],
25+
"capabilities": [
26+
"klipper-generic"
27+
],
2528
"variables": []
2629
},
27-
"permissions": ["web-location", "managed-service", "restart"],
30+
"permissions": [
31+
"web-location",
32+
"managed-service",
33+
"restart"
34+
],
2835
"install": {
2936
"place": [
3037
{
@@ -36,12 +43,23 @@
3643
{
3744
"name": "status-feed",
3845
"command": "$PLUGIN_VENV/bin/python3",
39-
"args": ["-u", "$BESPOK3D_PLUGINS/status-feed/files/bin/status_feed.py", "--bind", "127.0.0.1", "--port", "8097"],
46+
"args": [
47+
"-u",
48+
"$BESPOK3D_PLUGINS/status-feed/files/bin/status_feed.py",
49+
"--bind",
50+
"127.0.0.1",
51+
"--port",
52+
"8097"
53+
],
4054
"autostart": true,
41-
"ports": [8097]
55+
"ports": [
56+
8097
57+
]
4258
}
4359
],
44-
"restart": ["web"]
60+
"restart": [
61+
"web"
62+
]
4563
},
4664
"endpoints": [
4765
{

0 commit comments

Comments
 (0)