chore(release): prepare v0.20.0

- Build v0.20.0 changelog and release notes from changes/ fragments
- Remove package-size JSON reports and previous-release size comparisons from CI
- Download AUR release assets via curl with retries and skip publish on failure
- Update release docs, verification lanes, and workflow tests to match
This commit is contained in:
2026-09-24 00:01:03 -07:00
59 changed files with 573 additions and 395 deletions
-9
View File
@@ -3,7 +3,6 @@ import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import { resolve } from 'node:path';
import {
executableRunLines,
jobSteps,
readWorkflow,
stepRunsCommand,
@@ -109,20 +108,12 @@ test('prerelease workflow builds and uploads all release platforms', () => {
...paths,
'release/latest*.yml',
'release/*.blockmap',
'release/package-size-*.json',
]);
const download = jobSteps(parsedPrereleaseWorkflow, 'release').find(
(step) => step.uses === 'actions/download-artifact@v4' && step.with?.name === name,
);
assert.equal(download?.with?.path, 'release');
}
const steps = jobSteps(parsedPrereleaseWorkflow, 'release');
const checksum = steps.find((step) => step.name === 'Generate checksums');
const publish = steps.find((step) => step.name === 'Publish Prerelease');
assert.ok(checksum);
assert.ok(publish);
assert.ok(executableRunLines(checksum).includes('files+=(release/package-size-*.json)'));
assert.ok(executableRunLines(publish).includes('release/package-size-*.json'));
});
test('release callers pass only the declared packaging secrets', () => {
-1
View File
@@ -289,7 +289,6 @@ test('stable and prerelease builds use the same packaging gate', () => {
for (const workflow of [releaseWorkflow, prerelease]) {
assert.match(workflow, /uses: \.\/\.github\/workflows\/package-release\.yml/);
assert.match(workflow, /needs: \[package\]/);
assert.match(workflow, /release\/package-size-\*\.json/);
}
assert.deepEqual(
templateExpressionsInRunBodies(