@synopackageland/cli 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -794
- package/README.md +15 -4
- package/dist/bin.js +2 -1
- package/dist/cli.js +20 -2
- package/dist/ctl/cli.js +1 -1
- package/dist/ctl/json.js +36 -2
- package/dist/ctl/service.js +1 -1
- package/dist/error-registry.js +3 -0
- package/dist/host/credentials.js +1 -1
- package/dist/host/dsm-http.js +19 -4
- package/dist/init-upstream.d.ts +4 -0
- package/dist/init-upstream.js +19 -0
- package/dist/init.d.ts +4 -0
- package/dist/load-env.js +4 -1
- package/dist/package-metadata.d.ts +1 -0
- package/dist/package-metadata.js +2 -0
- package/dist/standalone/inspect-spk.js +5 -0
- package/dist/standalone/spk.js +9 -4
- package/dist/terminal-text.d.ts +1 -0
- package/dist/terminal-text.js +5 -0
- package/dist/upstream-attribution.d.ts +7 -0
- package/dist/upstream-attribution.js +56 -0
- package/dist/validate.js +2 -1
- package/package.json +2 -2
- package/schema/package-metadata.schema.json +5 -0
- package/schema/synology-app.schema.json +5 -0
- package/skills/SKILL.md +9 -1
- package/skills/reference/compose.md +1 -1
- package/skills/reference/upstream-fork.md +38 -3
|
@@ -11,6 +11,30 @@ under `synology/`, such as DSM install wizards and gateway pages; leave upstream
|
|
|
11
11
|
UI/locale strings and release notes unchanged, and exclude upstream source from
|
|
12
12
|
any future punctuation checker.
|
|
13
13
|
|
|
14
|
+
## Maintainer and distributor
|
|
15
|
+
|
|
16
|
+
If you package someone else's open-source project, set `maintainer` to the original
|
|
17
|
+
project/owner (prefer the project's own team/org name, else the owner's display
|
|
18
|
+
name, else login), `metadata.maintainer_url` to the upstream repository, and
|
|
19
|
+
**yourself** as `metadata.distributor` / `metadata.distributor_url`. Only your own
|
|
20
|
+
Apps use your publisher as maintainer. Syno Package Land is the distributor only
|
|
21
|
+
when it distributes the App; this rule applies to every third-party developer.
|
|
22
|
+
|
|
23
|
+
Pass `--upstream <repo-url>` (or retain the `upstream` Git remote), your verified
|
|
24
|
+
`--upstream-maintainer <project-team>` when known, and `--publisher <name>` /
|
|
25
|
+
`--publisher-url <url>` to `init --upstream-fork`. Publisher defaults come from
|
|
26
|
+
`SYNOPKGLAND_PUBLISHER` / `SYNOPKGLAND_PUBLISHER_URL`. The CLI tries the public
|
|
27
|
+
GitHub owner profile with a bounded lookup, using its display name then login.
|
|
28
|
+
Offline or unsupported hosts leave an explicit maintainer TODO. Missing publisher
|
|
29
|
+
configuration leaves a distributor TODO. Resolve these manually before release.
|
|
30
|
+
`metadata.upstream` records the repository; `check` warns, without failing, for
|
|
31
|
+
missing attribution or a maintainer that equals the distributor. The fork layout
|
|
32
|
+
also enables this warning without `metadata.upstream`.
|
|
33
|
+
|
|
34
|
+
These metadata fields become standard SPK INFO fields; upstream source stays
|
|
35
|
+
unchanged. Catalog attribution may change before rebuilding; installed INFO
|
|
36
|
+
changes only after an SPK upgrade.
|
|
37
|
+
|
|
14
38
|
## Decide whether to expose AI control
|
|
15
39
|
|
|
16
40
|
Ask whether the user needs AI control unless they have already explicitly requested it.
|
|
@@ -37,11 +61,12 @@ git clone <your-fork-url> app
|
|
|
37
61
|
cd app
|
|
38
62
|
git remote add upstream <upstream-url>
|
|
39
63
|
synopkgland init -t compose --upstream-fork --package MyApp \
|
|
40
|
-
--upstream
|
|
64
|
+
--upstream https://github.com/owner/app --publisher "Your team" \
|
|
65
|
+
--publisher-url https://example.com --upstream-image owner/app --health-path /actual-readiness --health-status 200 .
|
|
41
66
|
```
|
|
42
67
|
|
|
43
68
|
Replace `owner/app` with the verified official repository. `init` does not guess
|
|
44
|
-
|
|
69
|
+
the official image publisher. Only attribution uses a best-effort GitHub profile lookup. Configure `synology/upstream-recipe.json`:
|
|
45
70
|
`repository`, the actual Compose `service`, and `imageTag: tag` (exact upstream
|
|
46
71
|
tag) or `version` (strip the leading `v` only if the official image uses that
|
|
47
72
|
spelling). Adjust the App's port, storage and DSM login adapter before committing.
|
|
@@ -78,7 +103,9 @@ workaround with the framework ownership mechanism once available and verified.
|
|
|
78
103
|
## Native: official release binaries or a source build hook
|
|
79
104
|
|
|
80
105
|
```sh
|
|
81
|
-
synopkgland init -t native-go --ui plain --upstream-fork --package MyApp
|
|
106
|
+
synopkgland init -t native-go --ui plain --upstream-fork --package MyApp \
|
|
107
|
+
--upstream https://github.com/owner/app --publisher "Your team" \
|
|
108
|
+
--publisher-url https://example.com .
|
|
82
109
|
```
|
|
83
110
|
|
|
84
111
|
Native Apps can stage official release binaries pinned by **SHA-256**, or compile
|
|
@@ -180,3 +207,11 @@ returns 503 even when the gateway is down. Availability is not identity attestat
|
|
|
180
207
|
Declare only Container Manager-capable `arches`/INFO platforms; exclude unsupported
|
|
181
208
|
NAS architectures and review models in each family. Actual missing-package wizard
|
|
182
209
|
behavior and DSM's dependency not-ready behavior remain device acceptance items.
|
|
210
|
+
|
|
211
|
+
## Release checklist
|
|
212
|
+
|
|
213
|
+
- Verify the original project/team or owner is the maintainer, its repository is
|
|
214
|
+
`metadata.maintainer_url` / `metadata.upstream`, and your publisher is the distributor
|
|
215
|
+
- Resolve attribution TODOs and review all `check --json` warnings
|
|
216
|
+
- Inspect the built SPK INFO attribution, preserve notices/source correspondence,
|
|
217
|
+
and verify the selected upstream release before publishing
|