@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.
@@ -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-image owner/app --health-path /actual-readiness --health-status 200 .
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
- its publisher or make network requests. Configure `synology/upstream-recipe.json`:
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