Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/check-release-version.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Usage: node .github/scripts/check-release-version.mjs <version> (run from the repo root)
import { readFileSync } from 'node:fs'

const PRODUCT_TAGS = ['0.1.0']
const PRODUCT_TAGS = ['0.1.0', '0.2.0']

const version = process.argv[2]
if (!version) { console.error('usage: check-release-version.mjs <version>'); process.exit(1) }
Expand Down
59 changes: 59 additions & 0 deletions .github/scripts/check-release-version.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { test } from 'node:test'
import assert from 'node:assert/strict'
import { spawnSync } from 'node:child_process'
import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'

const script = fileURLToPath(new URL('./check-release-version.mjs', import.meta.url))
const core = '0.1.5-flybot.1'
const section = (version, pin = core) => `## [${version}] - 2026-10-16\n\nCore package: ${pin}.\n`

function check(version, changelog = section(version)) {
const root = mkdtempSync(join(tmpdir(), 'flybot-release-version-'))
try {
mkdirSync(join(root, 'core'))
writeFileSync(join(root, 'core/package.json'), JSON.stringify({ version: core }))
writeFileSync(join(root, 'CHANGELOG.md'), changelog)
return spawnSync(process.execPath, [script, ...(version ? [version] : [])], { cwd: root, encoding: 'utf8' })
} finally {
rmSync(root, { recursive: true, force: true })
}
}

test('a normal release may match the core package version', () => {
assert.equal(check(core, '').status, 0)
})

for (const version of ['0.1.0', '0.2.0']) {
test(`product tag ${version} accepts its documented core pin`, () => {
const result = check(version)
assert.equal(result.status, 0, result.stderr)
assert.match(result.stdout, /core\/package.json unchanged/)
})
}

test('an unlisted product tag is rejected even with a documented pin', () => {
assert.equal(check('0.3.0').status, 1)
})

test('v0.2.0 needs its own changelog section', () => {
assert.equal(check('0.2.0', section('0.1.0')).status, 1)
})

test('v0.2.0 rejects an omitted or different core pin', () => {
for (const pin of ['', '0.1.5-flybot.2']) {
assert.equal(check('0.2.0', section('0.2.0', pin)).status, 1)
}
})

test('a core pin in another version section cannot satisfy v0.2.0', () => {
assert.equal(check('0.2.0', section('0.2.0', '') + section('0.1.0')).status, 1)
})

test('a version argument is required', () => {
const result = check(undefined, '')
assert.equal(result.status, 1)
assert.match(result.stderr, /usage:/)
})
74 changes: 62 additions & 12 deletions CHANGELOG.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion changelog.d/106-bot-to-bot-chips.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/106-chip-resolution.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/107-face-to-face-avatars.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/108-flybot-branding.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/111-task-lifecycle.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/111-taskid-stamp.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/114-inline-approvals.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/115-compact-face-rooms.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/117-face-room-two-instance.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/118-face-human-who.security.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/122-face-room-poll-as.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/123-approval-notice-session.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/124-face-human-sync.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/125-face-waiting-leave.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/126-social-usability.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/129-face-past-rooms.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/130-untrusted-preview.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/131-plus-menu.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/132-approval-copy.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/132-face-room-titles.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/133-face-poll.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/136-onboard-suffix.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/137-bot-avatars.added.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/138-invite-grant-scope.security.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/139-decline-grant.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/139-remove-readd.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/140-approval-default.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/140-tool-removed-cell.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/143-room-human-to-bot.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/153-plugin-packaged-import.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/16-tree-create-child-bots.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/53-list-bots-grant-scope.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/54-task-lifecycle.added.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/97-approval-binding.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/98-remote-room-fence.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/approval-card-style.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/face-room-auto-send-avatars.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/shared-group-owner-projection.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/sidebar-unified-friends.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/tree-chevron-hit-target.fixed.md

This file was deleted.

Loading