V45 Canonical Promotion: Knowledge Commoditization Protocol Precision #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: V44 Canon Promotion | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - ready_for_review | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: write | |
| pull-requests: read | |
| jobs: | |
| promote-v44: | |
| name: V44 Promotion Validation | |
| if: >- | |
| ${{ | |
| github.event_name == 'workflow_dispatch' || | |
| ( | |
| github.event.pull_request.base.ref == 'main' && | |
| github.event.pull_request.head.ref == 'version/v44' && | |
| github.event.pull_request.head.repo.full_name == github.repository | |
| ) | |
| }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout version branch | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.pull_request.head.ref || github.ref_name }} | |
| token: ${{ github.token }} | |
| fetch-depth: 0 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate V44 promotion readiness | |
| run: | | |
| set -euo pipefail | |
| run_checked() { | |
| echo "::group::$*" | |
| "$@" | |
| echo "::endgroup::" | |
| } | |
| run_bounded() { | |
| local limit="$1" | |
| shift | |
| echo "::group::$*" | |
| timeout --kill-after=30s "$limit" "$@" | |
| echo "::endgroup::" | |
| } | |
| POINTER="$(cat BITCODE_SPEC.txt)" | |
| if [ "$POINTER" = "V43" ]; then | |
| run_checked node scripts/check-bitcode-spec-family.mjs --version V44 --mode draft --current-target V43 | |
| run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V43 --draft-target V44 | |
| run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V43 | |
| run_checked node scripts/check-v44-gate1-scaled-economy-roadmap-opening.mjs --skip-branch-check | |
| run_checked node scripts/check-v44-gate2-economic-domain-model.mjs --skip-branch-check --skip-package-tests | |
| run_checked node scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate4-reading-budget-quote-policy.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate5-depositor-earnings-supply-opportunities.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate6-btd-btc-compensation-statements.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate7-organization-policy-wallet-authority.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate8-enterprise-product-ux.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate9-scaled-network-rehearsal.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v44-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| run_checked node scripts/promote-bitcode-canon.mjs --version V44 --commit HEAD --dry-run | |
| elif [ "$POINTER" = "V44" ]; then | |
| run_checked node scripts/check-bitcode-spec-family.mjs --version V44 --mode promoted --current-target V44 | |
| run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V44 | |
| run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V44 --draft-target V45 | |
| run_checked node scripts/check-v44-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| else | |
| echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2 | |
| exit 1 | |
| fi | |
| run_bounded 5m pnpm --filter @bitcode/protocol typecheck | |
| run_bounded 5m pnpm --filter @bitcode/protocol test | |
| run_bounded 5m pnpm --filter @bitcode/btd typecheck | |
| run_bounded 5m pnpm --filter @bitcode/btd exec jest --config jest.config.cjs --runInBand --forceExit | |
| run_bounded 15m npm --prefix protocol-demonstration test | |
| run_bounded 5m npm --prefix protocol-demonstration run test:v28-mvp-qa | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack typecheck | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-hosts typecheck | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| run_checked git diff --check | |
| - name: Promote V44 canon files | |
| if: >- | |
| ${{ | |
| github.event_name == 'pull_request' && | |
| github.event.pull_request.head.ref == 'version/v44' | |
| }} | |
| env: | |
| HEAD_BRANCH: ${{ github.event.pull_request.head.ref }} | |
| run: | | |
| if [ "$(cat BITCODE_SPEC.txt)" = "V44" ]; then | |
| echo "BITCODE_SPEC.txt already points to V44." | |
| exit 0 | |
| fi | |
| PROOF_SOURCE_COMMIT="$(git rev-parse HEAD)" | |
| node scripts/prepare-bitcode-spec-family-promotion.mjs --version V44 --commit "$PROOF_SOURCE_COMMIT" | |
| node scripts/prepare-bitcode-runtime-canon-promotion.mjs --version V44 --next-draft V45 | |
| printf "V44\n" > BITCODE_SPEC.txt | |
| node scripts/generate-bitcode-proven.mjs --version V44 --commit "$PROOF_SOURCE_COMMIT" --worktree-state clean --output BITCODE_SPEC_V44_PROVEN.md --allow-dirty | |
| node scripts/generate-bitcode-proven.mjs --version V44 --commit "$PROOF_SOURCE_COMMIT" --worktree-state clean --output BITCODE_SPEC_V44_PROVEN.md --check --allow-dirty | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V44 | |
| node scripts/check-bitcode-spec-family.mjs --version V44 --mode promoted --current-target V44 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V44 --draft-target V45 | |
| git diff --check | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git add \ | |
| BITCODE_SPEC.txt \ | |
| BITCODE_SPEC_V44.md \ | |
| BITCODE_SPEC_V44_DELTA.md \ | |
| BITCODE_SPEC_V44_NOTES.md \ | |
| BITCODE_SPEC_V44_PARITY_MATRIX.md \ | |
| BITCODE_SPEC_V44_PROVEN.md \ | |
| protocol-demonstration/src/canon-posture.js \ | |
| protocol-demonstration/README.md \ | |
| packages/protocol/src/canon-posture.js \ | |
| packages/protocol/data/state.json \ | |
| packages/protocol/README.md \ | |
| .bitcode | |
| git commit -m "Promote Bitcode canon to V44" | |
| git push origin "HEAD:$HEAD_BRANCH" |