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
ci: treat the native release assets as one set, not a bag of files
manifest.json pins a sha256 for every zip and the installers verify against
it, so uploading only the missing members of a partial set would pair zips
from one build with checksums from another — a rebuild is not guaranteed to be
byte-identical even at the same commit. Upload all of them or none, and stop
the job on a partial set so a person decides between keeping what is published
and cutting the next patch.
Also label the example fence in CONTRIBUTING.md.
Copy file name to clipboardExpand all lines: CONTRIBUTING.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
@@ -92,7 +92,7 @@ Pythinker Code follows semantic versioning. The commit type you would have writt
92
92
93
93
Each number counts on its own and none of them roll over at nine. Ten fixes on top of `1.2.0` land on `1.2.10`, not `1.3.0`; the minor moves only when a feature ships, and the major only when something breaks:
94
94
95
-
```
95
+
```text
96
96
1.2.9 + fix → 1.2.10
97
97
1.9.9 + fix → 1.9.10
98
98
1.9.9 + feature → 1.10.0
@@ -116,7 +116,7 @@ Never do any of these:
116
116
117
117
To correct a bad build, cut the next patch instead: fix the problem, bump, build from that exact commit, sign and notarize, and publish fresh artifacts under the new number. The updater then advertises the new version, and anyone who already installed the old one keeps a build that still matches what it claims to be.
118
118
119
-
CI enforces this rather than trusting the rule. The desktop release uploads into a draft and refuses to touch a release that is already published; the native CLI job uploads only assets that are missing, so a run that failed part way through still completes while a rebuild of a shipped version is left on the floor.
119
+
CI enforces this rather than trusting the rule. The desktop release uploads into a draft and refuses to touch a release that is already published. The native CLI job treats its assets as one set — `manifest.json` pins a sha256 for every zip — so it uploads all of them or none: a release that already has the full set is left alone, and a partial set stops the job rather than pairing zips from one build with checksums from another.
0 commit comments