@omnidist/omnidist-linux-arm64 0.1.35 → 0.1.37

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.
Files changed (3) hide show
  1. package/README.md +70 -411
  2. package/bin/omnidist +0 -0
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,130 +1,65 @@
1
1
  # omnidist
2
2
 
3
- [![Go Report Card](https://goreportcard.com/badge/github.com/metalagman/omnidist)](https://goreportcard.com/report/github.com/metalagman/omnidist)
4
- [![lint](https://github.com/metalagman/omnidist/actions/workflows/lint.yml/badge.svg)](https://github.com/metalagman/omnidist/actions/workflows/lint.yml)
5
- [![test](https://github.com/metalagman/omnidist/actions/workflows/test.yml/badge.svg)](https://github.com/metalagman/omnidist/actions/workflows/test.yml)
6
- [![codecov](https://codecov.io/github/metalagman/omnidist/graph/badge.svg)](https://codecov.io/github/metalagman/omnidist)
7
- [![version](https://img.shields.io/github/v/release/metalagman/omnidist?sort=semver)](https://github.com/metalagman/omnidist/releases)
3
+ [![Lint](https://github.com/metalagman/omnidist/actions/workflows/lint.yml/badge.svg)](https://github.com/metalagman/omnidist/actions/workflows/lint.yml)
4
+ [![Test](https://github.com/metalagman/omnidist/actions/workflows/test.yml/badge.svg)](https://github.com/metalagman/omnidist/actions/workflows/test.yml)
5
+ [![Security](https://github.com/metalagman/omnidist/actions/workflows/security.yml/badge.svg)](https://github.com/metalagman/omnidist/actions/workflows/security.yml)
8
6
  [![npm](https://img.shields.io/npm/v/%40omnidist%2Fomnidist)](https://www.npmjs.com/package/@omnidist/omnidist)
9
7
  [![PyPI](https://img.shields.io/pypi/v/omnidist)](https://pypi.org/project/omnidist/)
10
- [![license](https://img.shields.io/github/license/metalagman/omnidist)](LICENSE)
8
+ [![Gem](https://img.shields.io/gem/v/omnidist)](https://rubygems.org/gems/omnidist)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
11
10
 
12
- Package and publish a Go CLI as npm, uv, and RubyGems installable tools with prebuilt
13
- cross-platform binaries.
11
+ Omnidist builds one Go CLI and packages its prebuilt binaries for npm, PyPI-compatible indexes through uv, and RubyGems. npm packages contain no `postinstall` downloader; installation uses platform-specific optional dependencies already present in registry tarballs.
14
12
 
15
- `omnidist` gives Go CLI maintainers one repeatable release flow:
13
+ ## Install or run
16
14
 
17
- ```text
18
- build -> stage -> verify -> publish
19
- ```
20
-
21
- The generated npm packages use platform-specific optional dependencies, so users
22
- can run your CLI with `npx` without install-time downloader scripts. The uv
23
- distribution stages wheel artifacts so users can run the same CLI from Python
24
- tooling with `uvx`. The RubyGems distribution stages platform-specific gems so
25
- users can install the same CLI with `gem install`.
26
-
27
- ## Requirements
28
-
29
- - Go 1.25+
30
- - Node.js and npm for npm staging, verification, and publishing
31
- - `uv` for uv staging, verification, and publishing
32
- - Ruby and RubyGems for gem staging, verification, and publishing
33
- - `git` when `version.source: git-tag`
34
- - `NPM_PUBLISH_TOKEN` for npm token publishing, unless using `--dry-run` or trusted publishing
35
- - `UV_PUBLISH_TOKEN` or `omnidist uv publish --token` for uv publishing, unless using `--dry-run`
36
- - `GEM_HOST_API_KEY` / `RUBYGEMS_API_KEY` for gem token publishing, unless using `--dry-run` or trusted publishing
37
-
38
- ## Install
39
-
40
- Run without installing:
15
+ Consumers only need the package manager for the channel they use:
41
16
 
42
17
  ```bash
43
18
  npx -y @omnidist/omnidist@latest --help
44
19
  uvx omnidist --help
20
+ gem install omnidist && omnidist --help
45
21
  ```
46
22
 
47
- Install with npm:
48
-
49
- ```bash
50
- npm i -g @omnidist/omnidist
51
- omnidist --help
52
- ```
53
-
54
- Install with Go:
23
+ Maintainers can also install from Go:
55
24
 
56
25
  ```bash
57
26
  go install github.com/metalagman/omnidist/cmd/omnidist@latest
58
- omnidist --help
59
27
  ```
60
28
 
61
- Install with RubyGems after publication:
29
+ ## Maintainer prerequisites
62
30
 
63
- ```bash
64
- gem install omnidist
65
- omnidist --help
66
- ```
31
+ | Activity | Required locally or in CI |
32
+ | --- | --- |
33
+ | Build the Go CLI | Go 1.25+; Git when `version.source: git-tag` |
34
+ | npm stage/verify | Go build artifacts; npm is required at publish preflight/upload |
35
+ | uv stage/verify/publish | `uv` |
36
+ | gem stage/verify/publish | Ruby and RubyGems (`gem`) |
37
+ | Token publish | The selected backend's token environment variable |
67
38
 
68
- Run from a checkout:
69
-
70
- ```bash
71
- go run ./cmd/omnidist --help
72
- ```
39
+ You do not need tooling for backends absent from the selected set.
73
40
 
74
- ## Quick Start
41
+ ## Safe quick start
75
42
 
76
- Initialize an existing Go CLI repository:
43
+ Run this in an existing Go repository with one `package main` under `cmd/*`:
77
44
 
78
45
  ```bash
79
46
  omnidist init
80
- ```
81
-
82
- This creates `.omnidist/omnidist.yaml` and initial workspace directories under
83
- `.omnidist/default/`. The generated config uses `profiles.default`.
84
-
85
- Edit the generated config before building:
86
-
87
- ```bash
88
47
  $EDITOR .omnidist/omnidist.yaml
89
- ```
90
-
91
- At minimum, check these fields:
92
-
93
- - `tool.name`: the binary name users will run.
94
- - `tool.main`: the Go main package, for example `./cmd/mytool`.
95
- - `distributions.npm.package`: the npm package, for example `@my-org/mytool`.
96
- - `distributions.uv.package`: the uv/PyPI package, for example `mytool`.
97
- - `distributions.gem.package`: the RubyGems package, for example `mytool`.
98
- - `version.source`: usually `git-tag`, `file`, `env`, or `fixed`.
99
-
100
- Then run the local release pipeline:
101
-
102
- ```bash
103
48
  omnidist build
104
49
  omnidist stage
105
50
  omnidist verify
51
+ omnidist publish --dry-run
106
52
  ```
107
53
 
108
- Publish only after verification passes:
54
+ `init` detects the command name and main package. If discovery is ambiguous, specify both explicitly:
109
55
 
110
56
  ```bash
111
- omnidist publish
57
+ omnidist init --name mytool --main ./cmd/mytool
112
58
  ```
113
59
 
114
- Generate a GitHub Actions release workflow:
60
+ It refuses to replace an existing config. `omnidist init --force` intentionally replaces that file and is destructive; review or back it up first.
115
61
 
116
- ```bash
117
- omnidist ci
118
- ```
119
-
120
- The generated workflow is written to `.github/workflows/omnidist-release.yml`.
121
- It runs on `v*` tag pushes, builds once, stages and verifies artifacts, publishes
122
- npm, uv, and gem distributions, then uploads the built binaries and `checksums.txt`
123
- to the GitHub release.
124
-
125
- ## Configuration
126
-
127
- `omnidist init` writes profiles-mode config by default:
62
+ The generated file uses profiles mode and stores artifacts beneath `.omnidist/default/`. Select which package ecosystems participate in aggregate commands and generated CI:
128
63
 
129
64
  ```yaml
130
65
  profiles:
@@ -132,372 +67,96 @@ profiles:
132
67
  tool:
133
68
  name: mytool
134
69
  main: ./cmd/mytool
135
-
136
70
  version:
137
- source: git-tag # git-tag | file | env | fixed
138
- file: VERSION # used only when source is file
139
- fixed: 1.2.3 # required only when source is fixed
140
-
71
+ source: git-tag
141
72
  targets:
142
- - os: darwin
143
- arch: amd64
144
- - os: darwin
145
- arch: arm64
146
- - os: linux
147
- arch: amd64
148
73
  - os: linux
149
- arch: arm64
150
- - os: windows
151
74
  arch: amd64
152
-
153
75
  build:
154
76
  ldflags: -s -w
155
77
  tags: []
156
78
  cgo: false
157
-
158
79
  distributions:
159
80
  npm:
160
81
  package: "@my-org/mytool"
161
- registry: https://registry.npmjs.org
162
- access: public # public | restricted
163
- publish-auth: token # token | trusted
164
- include-readme: true
165
-
166
82
  uv:
167
83
  package: mytool
168
- index-url: https://upload.pypi.org/legacy/
169
- linux-tag: manylinux2014 # manylinux2014 | musllinux_1_2
170
- include-readme: true
171
-
172
- gem:
173
- package: mytool
174
- registry: https://rubygems.org
175
- publish-auth: token # token | trusted
176
- repository-url: https://github.com/my-org/mytool
177
- include-readme: true
178
- ```
179
-
180
- Select a profile with `--profile <name>` or `OMNIDIST_PROFILE`. If `profiles`
181
- is present and no profile is selected, `default` is used. Profiles write
182
- artifacts to `.omnidist/<profile>/`.
183
-
184
- Legacy top-level config is still accepted when loading existing config files,
185
- but do not mix top-level runtime fields with a `profiles` map in the same file.
186
-
187
- Targets use Go values: `os` is `GOOS`, and `arch` is `GOARCH`. Distribution
188
- workflows map them as needed, for example `windows/amd64` becomes npm
189
- `win32/x64`. For RubyGems, `windows/amd64` defaults to `x64-mingw-ucrt`; set
190
- `targets[].variant: mingw32` if you need `x64-mingw32`, or `targets[].variant: musl`
191
- for Linux musl gem platforms.
192
-
193
- ## Versioning
194
-
195
- `omnidist build` resolves the release version and writes it to
196
- `.omnidist/<profile>/dist/VERSION`. Stage and publish commands use that build
197
- version so npm, uv, and gem artifacts stay in sync.
198
-
199
- Supported version sources:
200
-
201
- - `git-tag`: `HEAD` must be on an exact SemVer tag, either `vX.Y.Z` or `X.Y.Z`.
202
- - `file`: read the version from `version.file`, defaulting to `VERSION`.
203
- - `env`: read `OMNIDIST_VERSION`.
204
- - `fixed`: read `version.fixed`.
205
-
206
- For local prerelease staging, use:
207
-
208
- ```bash
209
- omnidist stage --dev
210
- ```
211
-
212
- `--dev` generates prerelease artifact versions from git metadata. For npm
213
- publishing, `-dev` prerelease versions are automatically published with
214
- `--tag dev` when no tag is supplied.
215
-
216
- ## Environment and Build Variables
217
-
218
- `omnidist` loads `.env` at startup when the file exists.
219
-
220
- Environment variables:
221
-
222
- - `OMNIDIST_VERSION`: used only when `version.source: env`. `VERSION` is not used.
223
- - `OMNIDIST_CONFIG`: config file path, equivalent to `--config`.
224
- - `OMNIDIST_PROFILE`: config profile name, equivalent to `--profile`.
225
- - `OMNIDIST_OMNIDIST_ROOT`: project root directory, equivalent to `--omnidist-root`.
226
- - `NPM_PUBLISH_TOKEN`: npm token for `distributions.npm.publish-auth: token`.
227
- - `UV_PUBLISH_TOKEN`: uv publish token when `--token` is not provided.
228
- - `GEM_HOST_API_KEY`: RubyGems token for `distributions.gem.publish-auth: token`.
229
- - `RUBYGEMS_API_KEY`: alternate RubyGems token env name.
230
- - `GEM_HOST_OTP_CODE`: RubyGems MFA OTP for token-based publish.
231
-
232
- Build `ldflags` template variables:
233
-
234
- - `OMNIDIST_VERSION`: expanded in `build.ldflags` during `omnidist build`.
235
- - `OMNIDIST_GIT_COMMIT`: populated by `omnidist build` when git metadata is available.
236
- - `OMNIDIST_BUILD_DATE`: populated by `omnidist build` as UTC RFC3339.
237
-
238
- Example:
239
-
240
- ```yaml
241
- build:
242
- ldflags: >-
243
- -s -w
244
- -X github.com/your-org/mytool/internal/version.version=${OMNIDIST_VERSION}
245
- -X github.com/your-org/mytool/internal/version.gitCommit=${OMNIDIST_GIT_COMMIT}
246
- -X github.com/your-org/mytool/internal/version.buildDate=${OMNIDIST_BUILD_DATE}
247
84
  ```
248
85
 
249
- `build.ldflags` uses `os.ExpandEnv`, so both `$VAR` and `${VAR}` are supported.
250
- Unset variables expand to empty strings.
251
-
252
- ## npm Distribution
253
-
254
- The npm distribution has two package types:
86
+ The `npm` and `uv` sections select those two backends. Add or remove `npm`, `uv`, and `gem` sections to define the canonical aggregate set. Existing files with a non-empty `enabled-distributions` selector remain readable, but every selected backend must have its own section. Aggregate commands always execute in npm → uv → gem order. `--only` can narrow the configured set but cannot enable an unavailable backend; backend-specific commands also require an explicit section.
255
87
 
256
- - Meta package: `distributions.npm.package`, with a small Node shim.
257
- - Platform packages: one package per target, selected by npm `os` and `cpu` constraints.
258
-
259
- The meta package lists platform packages as `optionalDependencies` at the same
260
- version. Published packages do not use `postinstall` scripts or network
261
- downloaders.
262
-
263
- Common npm commands:
264
-
265
- ```bash
266
- omnidist npm stage
267
- omnidist npm verify
268
- omnidist npm publish --tag latest
269
- ```
270
-
271
- Token publishing uses `NPM_PUBLISH_TOKEN`. `omnidist` writes a workspace
272
- `.omnidist/.npmrc` from `distributions.npm.registry` with npm's token
273
- substitution syntax.
274
-
275
- Trusted publishing uses npm OIDC instead of `NPM_PUBLISH_TOKEN`:
88
+ To offer both unscoped and scoped install names while publishing one shared platform package set, configure the unscoped package as primary, add the scoped name to `aliases`, and use the scoped base for platform packages:
276
89
 
277
90
  ```yaml
278
91
  distributions:
279
92
  npm:
280
- publish-auth: trusted
281
- repository-url: git+https://github.com/your-org/your-repo.git
93
+ package: omnidist
94
+ aliases:
95
+ - "@omnidist/omnidist"
96
+ platform-package: "@omnidist/omnidist"
97
+ access: public
282
98
  ```
283
99
 
284
- In trusted mode:
285
-
286
- - `repository-url` is required and is written to staged package metadata.
287
- - `omnidist npm publish` skips token-only auth preflight.
288
- - GitHub Actions must grant `id-token: write`.
289
- - Each npm package, including platform packages, needs a trusted publisher configured on npm.
290
-
291
- Print trusted publisher setup commands:
100
+ Users can then install either equivalent meta package:
292
101
 
293
102
  ```bash
294
- omnidist npm trust
103
+ npm install -g omnidist
104
+ npm install -g @omnidist/omnidist
295
105
  ```
296
106
 
297
- Apply them directly:
107
+ Both meta packages reference platform packages such as `@omnidist/omnidist-linux-x64`; the binaries are not duplicated under each meta-package name. `package` is published first among meta packages, followed by `aliases` in configured order, after all unique platform packages. If `aliases` is omitted, Omnidist publishes only `package`. If `platform-package` is omitted or blank, it defaults to `package`, preserving existing package names. The configured npm identity must be allowed to publish every meta and platform name; trusted publishing must be configured for every generated package.
298
108
 
299
- ```bash
300
- omnidist npm trust --apply
301
- ```
302
-
303
- Useful trust options:
304
-
305
- - `--workflow-file <name>` for a workflow filename other than `omnidist-release.yml`.
306
- - `--repo <owner/repo>` to override `distributions.npm.repository-url`.
307
- - `--environment <name>` for npm trusted publishers restricted to a GitHub Actions environment.
308
- - `--allow-stage-publish` to allow npm stage publish.
309
-
310
- ## uv Distribution
311
-
312
- The uv distribution stages wheel artifacts under `.omnidist/<profile>/uv/dist`.
313
- During staging, versions are converted to PEP 440 where needed.
314
-
315
- Common uv commands:
316
-
317
- ```bash
318
- omnidist uv stage
319
- omnidist uv verify
320
- omnidist uv publish
321
- ```
322
-
323
- Publish to a different PyPI-compatible index:
324
-
325
- ```bash
326
- omnidist uv publish --publish-url https://test.pypi.org/legacy/ --token <token>
327
- ```
328
-
329
- `omnidist uv verify` rejects versions with local metadata (`+...`) for
330
- PyPI/TestPyPI publishing, because those indexes reject local versions.
331
-
332
- ## RubyGems Distribution
333
-
334
- The RubyGems distribution stages one platform-specific `.gem` per configured
335
- target under `.omnidist/<profile>/gem/pkg`. Each gem contains:
336
-
337
- - a wrapper executable under `exe/`
338
- - the prebuilt CLI binary under `libexec/`
339
- - platform metadata so RubyGems installs the matching package
340
-
341
- Common gem commands:
109
+ ## Release flow
342
110
 
343
111
  ```bash
344
- omnidist gem stage
345
- omnidist gem verify
346
- omnidist gem publish
347
- ```
348
-
349
- Token publishing uses `GEM_HOST_API_KEY` or `RUBYGEMS_API_KEY`. If your
350
- RubyGems account requires MFA for pushes, also pass `--otp` or set
351
- `GEM_HOST_OTP_CODE`.
352
-
353
- Trusted publishing uses RubyGems OIDC instead of static secrets:
354
-
355
- ```yaml
356
- distributions:
357
- gem:
358
- publish-auth: trusted
359
- registry: https://rubygems.org
360
- repository-url: https://github.com/your-org/your-repo
361
- ```
362
-
363
- In trusted mode:
364
-
365
- - GitHub Actions must grant `id-token: write`.
366
- - The repository/workflow must be registered as a trusted publisher on RubyGems.org.
367
- - `omnidist` can publish a brand-new gem name once the pending trusted publisher is configured on RubyGems.org.
368
-
369
- ## README and License Staging
370
-
371
- README source precedence during staging:
372
-
373
- ```text
374
- distributions.<name>.readme-path -> readme-path -> README.md
112
+ omnidist build
113
+ omnidist stage
114
+ omnidist verify
115
+ omnidist publish --dry-run
116
+ omnidist publish
375
117
  ```
376
118
 
377
- If a configured `readme-path` is set and cannot be read, staging fails. Set
378
- `include-readme: false` for a distribution to skip README inclusion.
379
-
380
- For npm packages, `license` can be set explicitly under `distributions.npm`.
381
- When it is omitted, omnidist includes the project license file when present and
382
- writes package metadata that points to that file.
383
-
384
- ## CI Releases
119
+ Aggregate publish preflights every selected backend before the first upload. This prevents locally detectable late-backend failures from causing an avoidable partial release. Registry uploads are still external and are not transactionally reversible: a network or registry failure after uploads begin can leave a partial release.
385
120
 
386
- Generate a release workflow:
121
+ Generate backend-aware GitHub Actions after the config is final:
387
122
 
388
123
  ```bash
389
124
  omnidist ci
125
+ # use --force only to intentionally replace the generated workflow
390
126
  ```
391
127
 
392
- Overwrite an existing generated workflow:
128
+ The workflow contains setup, credentials, and publish jobs only for selected backends, plus a GitHub Release job for the built binaries.
393
129
 
394
- ```bash
395
- omnidist ci --force
396
- ```
397
-
398
- The workflow installs omnidist with npm. When generating this repository's own
399
- release workflow, it uses `go run ./cmd/omnidist` instead. The workflow also
400
- sets `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true` for JavaScript-based GitHub
401
- Actions.
402
-
403
- Before the first tag release, configure the required registry credentials:
404
-
405
- - npm token mode: `NPM_PUBLISH_TOKEN` GitHub secret.
406
- - npm trusted mode: npm trusted publishers for every staged npm package.
407
- - uv publishing: `UV_PUBLISH_TOKEN` GitHub secret.
408
- - gem token mode: `RUBYGEMS_API_KEY` GitHub secret, and optionally `RUBYGEMS_OTP_CODE`.
409
- - gem trusted mode: RubyGems trusted publisher for the release workflow.
130
+ ## Reference
410
131
 
411
- Release by pushing a SemVer tag:
132
+ - [Configuration reference](docs/configuration.md) profiles, every YAML field, defaults, paths, and compatibility.
133
+ - [Release runbook](docs/releases.md) — credentials, first release, preflight, trusted publishing, and partial-release recovery.
134
+ - [Targets and variants](docs/targets.md) — Go target values and npm/wheel/gem mappings.
135
+ - [Contributing](CONTRIBUTING.md) — repository layout, tests, lint, and development workflow.
412
136
 
413
- ```bash
414
- git tag v1.2.3
415
- git push origin v1.2.3
416
- ```
417
-
418
- ## Command Reference
137
+ ## Commands
419
138
 
420
- Top-level commands:
421
-
422
- ```bash
423
- omnidist init
139
+ ```text
140
+ omnidist init [--force] [--name <name>] [--main <package>]
424
141
  omnidist quickstart
425
142
  omnidist build
426
- omnidist stage [--dev] [--only npm|uv|gem|npm,uv,gem]
427
- omnidist verify [--only npm|uv|gem|npm,uv,gem]
428
- omnidist publish [--dry-run] [--only npm|uv|gem|npm,uv,gem]
143
+ omnidist stage [--dev] [--only npm,uv,gem]
144
+ omnidist verify [--only npm,uv,gem]
145
+ omnidist publish [--dry-run] [--only npm,uv,gem]
429
146
  omnidist ci [--force] [--dry-run]
430
- omnidist version
431
- ```
432
-
433
- Global flags:
434
-
435
- ```bash
436
- --config <path>
437
- --profile <name>
438
- --omnidist-root <path>
439
- ```
440
-
441
- npm commands:
442
-
443
- ```bash
444
- omnidist npm stage [--dev]
445
- omnidist npm verify
446
- omnidist npm publish [--dry-run] [--tag <tag>] [--registry <url>] [--otp <code>]
447
- omnidist npm trust [--apply] [--workflow-file <name>] [--repo <owner/repo>] [--environment <name>] [--allow-stage-publish]
448
- ```
449
-
450
- uv commands:
451
-
452
- ```bash
453
- omnidist uv stage [--dev]
454
- omnidist uv verify
455
- omnidist uv publish [--dry-run] [--publish-url <url>] [--token <token>]
147
+ omnidist npm stage|verify|publish|trust
148
+ omnidist uv stage|verify|publish
149
+ omnidist gem stage|verify|publish
456
150
  ```
457
151
 
458
- gem commands:
459
-
460
- ```bash
461
- omnidist gem stage [--dev]
462
- omnidist gem verify
463
- omnidist gem publish [--dry-run] [--host <url>] [--api-key <token>] [--otp <code>]
464
- ```
465
-
466
- Top-level `stage`, `verify`, and `publish` run distributions in deterministic
467
- order: npm first, then uv, then gem. Use `--only` to limit the command to one
468
- or more distributions.
469
-
470
- ## Troubleshooting
471
-
472
- `omnidist build` says no version could be resolved:
473
-
474
- Check `version.source`. For `git-tag`, `HEAD` must be exactly on a SemVer tag.
475
- For `env`, set `OMNIDIST_VERSION`. For `file`, create the configured version
476
- file.
477
-
478
- `omnidist stage` says the build version file is missing:
479
-
480
- Run `omnidist build` first. Stage commands use the build version persisted under
481
- `.omnidist/<profile>/dist/VERSION`.
482
-
483
- npm install cannot find a platform package:
484
-
485
- Run `omnidist npm verify` before publishing. It checks package versions,
486
- platform `os` and `cpu` fields, required binaries, forbidden `postinstall`
487
- scripts, repository metadata, and optional dependency parity.
488
-
489
- Trusted npm publish fails:
490
-
491
- Verify that `distributions.npm.repository-url` matches the GitHub repository,
492
- the workflow grants `id-token: write`, and every npm package has a trusted
493
- publisher configured.
494
-
495
- uv publish rejects the version:
152
+ Global flags are `--config`, `--profile`, and `--omnidist-root`. Omnidist also loads `.env`; corresponding selectors are `OMNIDIST_CONFIG`, `OMNIDIST_PROFILE`, and `OMNIDIST_OMNIDIST_ROOT`.
496
153
 
497
- Restage with a publishable version. PyPI and TestPyPI reject local version
498
- metadata containing `+`.
154
+ Use `omnidist <command> --help` for backend-specific options.
499
155
 
500
- ## Contributing
156
+ ## Common failures
501
157
 
502
- For repository layout, development workflow, package model details, and migration
503
- notes, see [CONTRIBUTING.md](CONTRIBUTING.md).
158
+ - Version resolution: an exact SemVer tag is required for `git-tag`; `file` reads `version.file`; `env` reads `OMNIDIST_VERSION`; `fixed` requires `version.fixed`.
159
+ - Missing build version: run `omnidist build` before stage. Profiles store it at `.omnidist/<profile>/dist/VERSION`; legacy config uses `.omnidist/dist/VERSION`.
160
+ - Missing npm platform package: run `omnidist npm verify` and confirm the target matrix and equal versions.
161
+ - PyPI rejects `+...`: public PyPI/TestPyPI reject local version metadata; stage a publishable version.
162
+ - Trusted publish fails: local preflight cannot prove remote OIDC configuration. Confirm repository metadata, workflow filename/environment, `id-token: write`, and registry-side trusted publisher settings.
package/bin/omnidist CHANGED
Binary file
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "cpu": [
3
3
  "arm64"
4
4
  ],
5
- "description": "@omnidist/omnidist binary for linux/arm64",
5
+ "description": "omnidist binary for linux/arm64",
6
6
  "files": [
7
7
  "bin",
8
8
  "README.md",
@@ -17,5 +17,5 @@
17
17
  "type": "git",
18
18
  "url": "git+https://github.com/metalagman/omnidist.git"
19
19
  },
20
- "version": "0.1.35"
20
+ "version": "0.1.37"
21
21
  }