You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 30b6ba6
Browse filesBrowse the repository at this point in the historyBrowse files
Bundle a private pinned runtime and native dependencies, isolate user data from existing DSH installations, and replace whole packages during updates. Preserve native settings in a separate user layer and retain runtime leases until descendants exit.
Switch terminal release CI to verified ARM64 and Intel GitHub assets, generate a matching Homebrew formula, and document curl installation and legacy migration. Validated full repository checks, focused data/update regressions, and both packaged architectures locally (Intel via Rosetta).
test -n "$NPM_PUBLISH_TOKEN" || { echo "::error::add the NPM_PUBLISH_TOKEN secret (granular npm token with bypass 2FA for the launcher, bundle and Desktop package)"; exit 1; }
123
-
test -n "$DSH_HUB_TOKEN" || { echo "::error::add the DSH_HUB_TOKEN secret (Hub CI token)"; exit 1; }
124
-
node scripts/check-publish-credentials.mjs
152
+
tar -xzf desktop-candidate.tar.gz
125
153
npm run publish:desktop -- credentials
126
-
# Never publish the launcher before its Hub release resolves: the three
127
-
# phases each re-check the artifact hashes they verified above.
Copy file name to clipboardExpand all lines: AGENTS.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,14 +6,14 @@ For agents working in this repository. The human contribution flow lives in [CON
6
6
7
7
**Rule: a release is not just a version bump.** These four items ship in the same change as the code; if any one is missing, the tree is not releasable.
8
8
9
-
1.**Release notes**`docs/releases/<version>.md` must exist. `make attach` refuses outright while the GitHub release does not exist yet: `docs/releases/<version>.md is missing; write the release notes first`. Follow the recent files (for example `docs/releases/0.7.21.md`): a one-sentence summary, then per change what changed, why, and where the behaviour stops, ending with which checks actually ran and which paths have no automated case.
9
+
1.**Release notes**`docs/releases/<version>.md` must exist. `make attach` refuses publication without them: `write the release notes first`. Follow the recent files (for example `docs/releases/0.7.21.md`): a one-sentence summary, then per change what changed, why, and where the behaviour stops, ending with which checks actually ran and which paths have no automated case.
10
10
2.**`package.json``version`** must match the git tag; `make version-check` rejects a mismatch.
11
11
3.**`docs/CHANGELOG.md`** gets this version's entry, newest first.
12
12
4.**Both READMEs stay in step**: `README.md` and `README.zh-CN.md` are two parallel texts, so a change to a feature description, a command, an install step or an index table on one side needs the other side.
13
13
14
14
## Cutting a release
15
15
16
-
Follow the [release checklist](docs/hub-distribution.md). Two rules break most runs: the tag must equal `v<package.json version>` exactly, and a version already on npm from a different build cannot be re-tagged, so bump `package.json` and cut a new tag instead. After pushing the tag, confirm the run with `gh run list --workflow=release.yml` and read a failure with `gh run view --job=<job-id> --log-failed`; a publish job that dies in about 30 seconds at the credential check is usually that version conflict, not a missing secret. `make release`, `make verify` and `npm run doctor` cannot run inside a dscode session because the nested sandbox is refused — run them from a normal terminal.
16
+
Follow the [self-contained package release checklist](docs/distribution.md#build-and-release). Terminal packages no longer publish through npm/Hub; the [legacy checklist](docs/hub-distribution.md) applies only when maintaining those older channels. Two rules break most runs: the tag must equal `v<package.json version>` exactly, and a version already on npm from a different build cannot be re-tagged, so bump `package.json` and cut a new tag instead. After pushing the tag, confirm the run with `gh run list --workflow=release.yml` and read a failure with `gh run view --job=<job-id> --log-failed`; a publish job that dies in about 30 seconds at the credential check is usually that version conflict, not a missing secret. `make release`, `make verify` and `npm run doctor` cannot run inside a dscode session because the nested sandbox is refused — run them from a normal terminal.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ History uses a descriptive subject line plus a body explaining the situation, th
47
47
48
48
## Releases
49
49
50
-
Releases are cut by the maintainer with `make release` and published with `make publish`; see [docs/hub-distribution.md](docs/hub-distribution.md). You do not need to bump versions in a pull request.
50
+
Releases are cut by the maintainer with `make release` and published with `make publish`; see [docs/distribution.md](docs/distribution.md). You do not need to bump versions in a pull request.
@echo ' make release version-check, check, build, verify, desktop, candidates'
32
-
@echo ' make publish credentials, bundle, profile, launcher, desktop, attach'
29
+
@echo ' make release version-check, check, build, verify, candidates'
30
+
@echo ' make publish attach the verified self-contained terminal packages'
33
31
@echo ' make install npm ci --ignore-scripts'
34
32
@echo ' make check npm run check (lint, coverage, integration, package, eval)'
35
33
@echo ' make version-check TAG must match the manifest version (TAG defaults to v$(VERSION))'
36
-
@echo ' make build build:packages, release:hub, dist'
37
-
@echo ' make verify verify:hub against the candidates in artifacts/'
34
+
@echo ' make build dist and the matching Homebrew formula'
35
+
@echo ' make verify verifythe self-contained candidate for this machine'
38
36
@echo ' make desktop prepare and verify Desktop (requires DSCODE_TEST_CHROME)'
39
37
@echo ' make publish-desktop publish Desktop, sync Hub and verify public installation'
40
38
@echo ' make candidates pack release-candidates.tar.gz for a publish job'
@@ -43,7 +41,7 @@ help:
43
41
@echo ' make publish-bundle publish the bundle to npm'
44
42
@echo ' make publish-profile sync the Hub to npm, then publish the dscode profile'
45
43
@echo ' make publish-launcher publish the launcher to npm'
46
-
@echo ' make attach attach the source and prebuilt tarballs to the GitHub release'
44
+
@echo ' make attach attach the self-contained packages to the GitHub release'
47
45
48
46
# The workflow installs with --ignore-scripts: the exact dependency set the release is
49
47
# verified against.
@@ -58,33 +56,29 @@ check:
58
56
version-check:
59
57
@version=$$(node -p "require('./package.json').version"); test "$(TAG)" = "v$$version" || { echo "tag $(TAG) does not match version $$version" >&2; exit 1; }; echo "tag $(TAG) matches version $$version"
60
58
61
-
# The workflow exports this for the whole build step, so a fork names itself in everything
62
-
# the step generates instead of publishing the upstream URL.
63
59
build:
64
-
DSCODE_REPOSITORY="$(REPOSITORY)" npm run build:packages
65
-
DSCODE_REPOSITORY="$(REPOSITORY)" npm run release:hub
66
-
DSCODE_REPOSITORY="$(REPOSITORY)" npm run dist
60
+
npm run dist
61
+
node scripts/homebrew-formula.mjs
67
62
68
63
verify:
69
-
npm run verify:hub
64
+
node scripts/verify-standalone.mjs
70
65
71
66
desktop:
72
67
npm run prepare:desktop -- "$(DESKTOP_RUNTIME)"
73
68
npm run release:desktop -- "$(DESKTOP_RUNTIME)"
74
69
75
70
# One tarball keeps the exact layout the publish job restores, artifacts/ prefix included.
76
71
candidates:
77
-
tar -czf release-candidates.tar.gz artifacts/npm artifacts/local/hub-verification.json artifacts/desktop/release$(TARBALLS)
72
+
tar -czf release-candidates.tar.gz artifacts/local/standalone-*.json $(TARBALLS)
78
73
79
74
# The publish job restores the candidates it downloaded and refuses an incomplete archive;
80
75
# locally this is also how a candidate tarball from another machine enters the tree.
81
76
unpack:
82
77
@test -f release-candidates.tar.gz || { echo"release-candidates.tar.gz is missing; run make candidates">&2;exit 1; }
0 commit comments