Skip to content

chore(release): bump to 0.2.2 - #51

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/bump-0.2.2
Oct 9, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
chore/bump-0.2.2

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Draft until #50 merges. This is step 2 of the v0.2.2 release plan in #50: bump the version, and record what 0.2.2 contains. v0.2.2 will be the first tag that produces a GitHub Release.

No issue tracks the bump. The release plan is in #50's description.

Type of change

  • 🐛 Bug fix: no code changes.
  • ✨ New feature: no.
  • 💥 Breaking change: no. The breaking UUID change shipped in 0.2.1 (fix(pkg)!: re-mint UUID as v8, bump to 0.2.1 #46); this PR only records it.
  • 🕳️ Soundness fix: not applicable.
  • 📖 Documentation (CHANGELOG)
  • 🧹 Refactor / tech debt: no.
  • ⚡ Performance: no.
  • 🔧 Build / CI / tooling: no workflow changes. The version bump is release metadata.

📌 New pins

Head SHA: 73271c483a1ca8944d24cf8b83785ecb87517921

None. This PR changes only Project.toml's version and CHANGELOG.adoc.

How has this been verified?

Horizon: the version bump and the changelog. The release path is verified only by #50's CI and, in the end, by the tag push.

Checklist

  • My commits are signed (git commit -S). git log --format=%G? shows G (SSH).
  • I ran the project's own checks/tests locally and they pass. Not run: no source change. CI runs them.
  • New files carry the correct SPDX-License-Identifier: there are no new files. CHANGELOG.adoc keeps its CC-BY-SA-4.0 header, and Project.toml keeps MPL-2.0.
  • Docs are updated, and no public claim now overstates what the code does:
  • I have not introduced a soundness hole.

Notes for reviewers

🤖 Generated with Claude Code

https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX

- Project.toml: version 0.2.1 -> 0.2.2.
- CHANGELOG.adoc: [0.2.2] takes the test-suite fixes (#47, via #49)
  and the release workflow fix (#50). A new [0.2.1] section holds what
  the v0.2.1 tag tree already contains: the UUIDv8 re-mint (#46), the
  load fix (#48), and the Added/Changed lines from 0.2.0, which was
  registered under the old UUID but never tagged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 53 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: b557f65b-be74-4df3-b311-a1ff47bb5707

📥 Commits

Reviewing files that changed from the base of the PR and between 14da03a and 73271c4.


📒 Files selected for processing (2)
  • CHANGELOG.adoc
  • Project.toml


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath marked this pull request as ready for review October 9, 2026 10:53
@hyperpolymath
hyperpolymath merged commit 87b5cad into main Oct 9, 2026
30 of 31 checks passed
@hyperpolymath
hyperpolymath deleted the chore/bump-0.2.2 branch October 9, 2026 10:53
hyperpolymath added a commit that referenced this pull request Oct 9, 2026
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
## Summary

**Ready.** This was a draft until #49 merged, because the build job runs
`Pkg.test()` and the tests on `main` failed (#47). #49 merged at
2026-10-09 10:46Z (`14da03a`). The version bump, #51, merged at 10:53Z
(`87b5cad`). This branch was then updated with `main` again (`a30f268`).
On that head, every `Release` and `CI` job is green, and the build and
SBOM now run against version 0.2.2.

The release workflow has never produced a Release. Run 37866743716 (tag
`v0.2.1`) failed, and the repo has no Releases. This PR fixes the
workflow's own defects, so that once the tests pass, a tag produces a
Release.

| Defect | Fix |
|---|---|
| The SBOM step ran `using Pkg, JSON` on an uninstantiated project. JSON
is not a dependency, and components were named by UUID. | Instantiate,
read the direct dependencies by name, then load JSON from a temporary
environment. |
| AcceleratorGate is registered only in the hyperpolymath registry
(JPR), so a fresh runner cannot resolve the project from General alone.
| The build and SBOM jobs add General and JPR. |
| "Package artifacts" had no `shell:`, so `windows-latest` ran `mkdir
-p` and `tar` in pwsh. | The build job defaults to `bash`. |
| The dispatch version was inlined into the script as `${{
github.event.inputs.version }}`. | Passed through `env:`, matched
against `^v[0-9]+\.[0-9]+\.[0-9]+$`, and required to exist as a tag
(`git ls-remote --exit-code`), so a typo cannot make `action-gh-release`
mint a tag on `main`. |

Also in this PR:
- **A manual run builds the tag, not `main`.** `actions/checkout` takes
`ref: ${{ inputs.version && format('refs/tags/{0}', inputs.version) ||
'' }}`, so the tarballs match the tagged tree that JPR registered.
- The `refs/tags/` prefix matters because checkout tries a bare name as
a branch before a tag (`src/ref-helper.ts:52-57` at the pinned SHA).
- Commit `72f3d5b` adds the prefix, after CodeRabbit raised it on the
twin hyperpolymath/Causals.jl#69.
- **Any committed manifest is ignored** (`rm -f Manifest.toml`; this
repo tracks none today), so the release is tested the way users install
it.
- **Least privilege.** Top-level permissions drop from `contents: write,
id-token: write` to `contents: read`. The release job keeps its own
grants for attestation.
- **The workflow tests itself.** A `pull_request` trigger on this file
runs the build and SBOM jobs at review. The release job is skipped on
PRs.
- `sha256sum -- *` (shellcheck SC2035, reported by actionlint).

This is the same fix as hyperpolymath/Causals.jl#69. The files differ
only in names, the `julia-actions/cache` pin, and the registry step.

## Type of change

- [x] 🐛 Bug fix (non-breaking change that fixes an issue)
- [ ] ✨ New feature: none. The `pull_request` trigger serves the release
path only.
- [ ] 💥 Breaking change: package source and `Project.toml` are
untouched.
- [ ] 🕳️ Soundness fix: not applicable.
- [ ] 📖 Documentation: no docs changed.
- [ ] 🧹 Refactor / tech debt: not behaviour-preserving, since the
workflow now succeeds where it failed.
- [x] 🔧 Build / CI / tooling

## 📌 New pins

**Head SHA: `a30f268840a6759f3871a4f979ad81ca62498acd`**. This is a
merge of `main` (`87b5cad`, #51) into `d1e513c`, which in turn merged
`14da03a` (#49) into `72f3d5b`. Both merges were created by "Update
branch" and signed by web-flow.

No pins were added or changed. The workflow already used
`actions/upload-artifact@043fb46d…` (v7.0.1) and
`actions/attest-build-provenance@4d101475…` (v4.2.2). All of its pins
resolve to real commits through the GraphQL `object(oid:)` lookup. The
same lookup reported Causals.jl's `ea165f8d65b6db9a…` as missing, which
shows it can detect a missing SHA. This repo has no `actions.lock`, and
the workflow stays in block YAML: the KYAML preconditions in the
estate's AGENTS.md §2a are not met.

## How has this been verified?

- **`actionlint .github/workflows/release.yml`** passes (rc=0), both
before and after `72f3d5b`.
- **`72f3d5b`, the qualified tag ref.**
- I read the branch-before-tag order from `src/ref-helper.ts` in
`actions/checkout`, at the pinned SHA `3d3c42e5`.
  - This PR's runs only exercise the empty-ref path.
- The manual-run path first runs in the post-merge `gh workflow run`.
That run publishes a Release, so I did not trigger it from the PR
branch.
- **The SBOM script**, run locally on Julia 1.10.10 (Linux x64, fresh
depot, General plus JPR), writes a CycloneDX 1.4 `sbom.json` with
metadata SMTLib 0.2.1 and components SHA 0.7.0 and AcceleratorGate
0.1.0.
- **Build and test are green on `a30f268`:**
- 32 check runs succeeded. Each one ran on `a30f268` itself
(`head_sha`), starting at 10:53:46Z or later. The two skipped runs are
`Create Release`, which is skipped on PRs by design, and `governance /
Validate Hypatia Baseline`.
- The 32 include `Build Package (ubuntu|macos|windows-latest, 1.10)`,
`Generate SBOM`, and all nine `test (*)` legs.
- Read with the REST check-runs endpoint (`--paginate`) at 10:56Z.
CodeRabbit is `success` and approved; Codeac, which is not required, was
still pending.
- **The Causals.jl twin (#69)** exercises the shared parts (the bash
shell on Windows, macOS, and action resolution) on a package whose tests
pass.

**Horizon:** this PR's runs cover the build, SBOM and test jobs on a PR.
The release job, which verifies the tag, attests and publishes, runs
only on the v0.2.2 tag push.

## Checklist

- [x] My commits are **signed** (`git commit -S`). The commit shows `G`
locally.
- [ ] I ran the project's own checks/tests locally and they pass. Not
ticked: I ran only the SBOM script locally. The tests pass in CI on
`a30f268`; see above.
- [x] New files carry the correct `SPDX-License-Identifier`: there are
no new files. `release.yml` keeps its `MPL-2.0` header.
- [x] Docs are updated, and no public claim now overstates what the code
does. The Release body now gives `gh attestation verify`, which the
existing attestation step supports.
- [x] I have not introduced a soundness hole.

## Notes for reviewers

- **No red checks remain.** The 12 `Build Package (*)` and `test (*)`
contexts that were deferred to #47 on `72f3d5b` are green on `a30f268`,
now that #49 is in `main`.
- **There will be no Release for v0.2.1. The first Release will be
v0.2.2 (owner decision, 2026-10-09).**
- Why not v0.2.1: its tag tree (`487c7ab`) contains the failing tests,
so building from the tag fails. Building v0.2.1 from `main` after #49
would ship source that matches neither the tag nor the tree JPR
registered.
  - Order of steps:
    1. #49 is merged (`14da03a`).
2. The version-bump PR, #51, is merged (`87b5cad`). It landed before
this PR, so `main`'s CHANGELOG already names this workflow's Release.
That is true only once this PR merges.
    3. Merge this PR.
4. Push a signed `v0.2.2` tag. The push runs this workflow from the
tagged tree, which by then contains the fixed workflow, and publishes
the Release. `gh workflow run release.yml -f version=v0.2.2` is only a
fallback.
    5. Register v0.2.2 in JPR.
- Nothing is set to auto-merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
hyperpolymath added a commit to hyperpolymath/julia-professional-registry that referenced this pull request Oct 9, 2026
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
## Summary

Registers **SMTLib 0.2.2** (`01a11d29-d89a-86da-8e3a-553d114a3537`).
This is the first SMTLib version with a GitHub Release.

- **Tag:** `v0.2.2` on hyperpolymath/SMTLib.jl is a signed annotated tag
on `126ced1`. That commit is the squash merge of
hyperpolymath/SMTLib.jl#50.
- **Release:**
https://github.com/hyperpolymath/SMTLib.jl/releases/tag/v0.2.2,
published 2026-10-09T11:35:27Z.
- It carries three platform tarballs, `sbom.json` and `checksums.txt`,
with build-provenance attestations.
- **What is new since 0.2.1:**
- the test-suite fixes for hyperpolymath/SMTLib.jl#47
(hyperpolymath/SMTLib.jl#49);
  - the release-workflow fix (hyperpolymath/SMTLib.jl#50);
  - the version bump and CHANGELOG (hyperpolymath/SMTLib.jl#51).

## Type of change

Registry: a new version of a package that is already registered. No new
package, no workflow change, no change to any other package.

## 📌 New pins

Head SHA: **`dd12493d2745fa8bf60f4a19ccbb938f0eac6f63`**

- **`S/SMTLib/Versions.toml` → `["0.2.2"] git-tree-sha1 =
"ac26d7107a5e379908388f4db0a1c21cdff1d581"`.**
- This is the tree of `126ced152cacc9b72f47c77c9a4ea6bd0f06d735`, the
commit `v0.2.2` peels to.
- Read with `git rev-parse v0.2.2^{tree}` and cross-checked with `git
ls-remote … refs/tags/v0.2.2^{}`.
- No action pins, `actions.lock` entries or lockfiles change.

## Changes

- `S/SMTLib/Versions.toml`: add the `["0.2.2"]` entry. It is three
lines; nothing else changes.
- **Why no other registry file changes:**
- `Deps.toml`, `Compat.toml` and `WeakDeps.toml` are each keyed `[0]`,
so they already cover 0.2.2.
  - Between v0.2.1 and v0.2.2, `Project.toml` differs only in `version`.
- `Package.toml` and `Registry.toml` are per-package, not per-version,
and are unchanged.

## RSR Quality Checklist

### Required

- [x] No banned language patterns: the change is three lines of TOML.
- [x] SPDX headers: no new source files. `Versions.toml` is registry
data and carries no header, as with every other package in this
registry.
- [x] No secrets, credentials or `.env` files.
- [ ] CI is green: not ticked yet. CI runs on this head after the push.
I will re-read the checks before calling this done.

### As Applicable — Registry Changes

- [x] `Registry.toml` index: not applicable. SMTLib is already indexed
(line 42), and a version entry does not touch the index.
- [x] Per-package files consistent. `ci/validate.jl` passes (see
Testing).
- [x] Upstream package meets the quality bar:
- the v0.2.2 tag push ran the release workflow on the tagged tree: Build
on ubuntu, macos and windows, then SBOM;
- `main` CI on `126ced1` passed all nine `test (*)` legs (Julia 1.10,
1.11 and nightly × three OSes).
- [x] Upstream tag exists and matches the registered version: `v0.2.2` →
`126ced1`, whose `Project.toml` says `version = "0.2.2"`. The tag
signature verifies (`git verify-tag`, SSH ED25519).

### As Applicable — Documentation / Infra Changes

- [ ] `.machine_readable/6a2/*.a2ml`: not applicable. A2ML is retired
estate-wide, and this PR changes no project state.
- [ ] `TOPOLOGY.md`: not applicable; no architecture change.
- [ ] `CHANGELOG.md`: not applicable. The release notes are in
SMTLib.jl's `CHANGELOG.adoc` (`[0.2.2]`).
- [ ] Wiki: not applicable.

## Testing

- **`julia ci/validate.jl <worktree>`** (Julia 1.12.6, RegistryCI in a
throwaway depot): `VALIDATION PASSED`.
- 0 custom-check errors and 0 warnings; 158 dependency pairs across 41
packages were checked.
- Layer 1 reports the documented `expected_general_gap`, because the
General-deps step was off. CI runs that step as best-effort.
- **End-to-end install** from this branch's registry, in a fresh depot:
  ```julia
  Pkg.Registry.add("General")
  Pkg.Registry.add(Pkg.RegistrySpec(path=<copy of this branch>))
  Pkg.activate(; temp=true)
  Pkg.add(name="SMTLib", version="0.2.2")
  using SMTLib
  ```
- Result: `pkgversion = 0.2.2` and installed `tree_hash =
ac26d7107a5e379908388f4db0a1c21cdff1d581`.
  - SMTLib and AcceleratorGate precompiled and loaded.
- **Release artefacts**, downloaded with `gh release download v0.2.2`:
  - `sha256sum -c checksums.txt` gave OK for all four files.
- `gh attestation verify` returned rc=0 for each of the three tarballs.
  - A tampered control file returned rc=1, so the check can fail.
- **Release run 37923943616:**
- Attempt 1 failed at "Attest build provenance" with `error fetching
tlog entry … network timeout at rekor.sigstore.dev`, a transient
Sigstore outage. No Release was created.
  - Attempt 2, which re-ran only the failed job, succeeded.

**Horizon:** I ran the validator and the install on Julia 1.12.6. This
repo's CI runs the validator on 1.10, and SMTLib's own CI covers 1.10,
1.11 and nightly.

Nothing is set to auto-merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Oct 10, 2026
…rdening, checklist + ultraplan corrections) (#64)

## Summary

Follow-up to #63 (merged by the owner while this branch was mid-review):
the three CodeRabbit review fixes that landed on the branch *after* the
merge snapshot (`5c0c375`). PR #63's `CHANGES_REQUESTED` review is
addressed here; nothing else changes.

The methodology.a2ml wording fix is **not** included — the owner already
applied their preferred wording in `5c0c375`, which is in `main` via the
#63 squash.

## Changes

1. **`.github/workflows/boj-build.yml`** — CodeRabbit's Major/CWE-78
finding: `github.repository` / `github.ref_name` were interpolated into
the `run:` script. They now pass through `env:` and the JSON payload is
built with `jq --arg`, so no expression expansion reaches the shell or
the payload string. (The `by-design:` R4 rationale from #59 is
preserved.)
2. **`SMTLIB-AXIOM-PARITY-CHECKLIST.adoc`** — the INTEND "docs build
verification (`docs/make.jl`)" entry pointed at the Documenter script
retired in #60. It now names the supported `casket-pages.yml` site
build, and records that Z3-on-ubuntu landed with #62 (CVC5 remains
optional).
3. **`ULTRAPLAN-ISSUE-43.adoc`** — restore the issue/PR cross-references
whose link targets were lost (#43, #47, standards#994, PRs
#45/#48/#49/#50/#51), and record the post-change verification the review
asked for: CI run `38044880793` with `Install Z3 (ubuntu)` green (incl.
the `z3 --version` sentinel) and `Run tests` green on all 9 matrix legs
— the solver-gated tests executed with Z3 on PATH rather than skipping.

## Review threads addressed

- `boj-build.yml:19` (Major) — serialise refs via env + jq ✅
- `methodology.a2ml:58` (Minor) — no-solver wording ✅ (owner's `5c0c375`
supersedes; `SMTContext` raises `ErrorException`, `:unknown` is a
check-sat status)
- `ULTRAPLAN-ISSUE-43.adoc:9` (Minor) — dangling `]` references ✅
- `ULTRAPLAN-ISSUE-43.adoc:372` (Minor) — stale `docs/make.jl` reference
in the parity checklist ✅
- `ULTRAPLAN-ISSUE-43.adoc:374` (Minor) — post-change green CI run with
Z3 ✅

## Verification

- No `{{…}}` template tokens, no conflict markers, `check-lock-sync`
still in sync (no `uses:` changes in this PR).
- `boj-build.yml` payload construction now has no string-interpolated
expressions in the shell.

Refs #53 (umbrella). No issue-closing keywords here — #43 closed with
#63; the remaining wave items (#56 mirror, #57 Pages) await the owner's
ruling.

---------

Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant