Skip to content

ci: dispatchable Release workflow + v1.0.0 release notes - #2

Merged
allandng merged 6 commits into
mainfrom
claude/shuttle-repo-review-48w5i8
Jul 24, 2026
Merged

ci: dispatchable Release workflow + v1.0.0 release notes#2
allandng merged 6 commits into
mainfrom
claude/shuttle-repo-review-48w5i8

Conversation

@allandng

Copy link
Copy Markdown
Owner

Follow-up to #1, in service of publishing the v1.0.0 release.

What's in this PR

  • .github/workflows/release.yml: adds a workflow_dispatch trigger alongside the existing tag-push trigger. When dispatched with a tag input, the workflow creates that tag at the dispatched ref and publishes the GitHub release, taking notes from .github/releases/<tag>.md when the file exists (falling back to GitHub's generated notes). This path is needed because this environment's git access can push branches but not tags (tag pushes are rejected by the proxy); the tag-push path remains for local/manual tagging.
  • .github/releases/v1.0.0.md: curated release notes for v1.0.0 — highlights, verification summary, the benchmark-honesty caveat, and scope.

Once merged, dispatching Release with tag=v1.0.0 publishes the release from main.

Verification

  • Workflow YAML follows the existing ci.yml conventions (ubuntu-24.04, minimal permissions: contents: write only, which release creation requires).
  • Notes file content matches the README's claims, including the provisional-benchmark labeling.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk


Generated by Claude Code

claude added 6 commits July 24, 2026 05:53
…d roadmap

Delete the build-process ledger and internal planning docs (PROGRESS.md,
SRS, implementation plan, agent prompt) — development history, not useful
to library users. In their place:

- docs/API.md: consolidated C ABI reference (all functions, error codes,
  lifecycle/sizing rules, zero-copy borrow rules, segment layout and
  flags contract, liveness caveat, Python/Rust binding patterns) —
  closes the long-standing NFR-M2 documentation gap.
- docs/ROADMAP.md: triaged upgrade directions (already-shipped vs v1.x
  candidates vs exploratory).

Makefile/ci.yml comments that pointed at PROGRESS.md now carry the
explanation inline. .gitignore gains defensive entries for common
editor/toolchain droppings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk
… ABI v1.1)

New create-time flag SHUTTLE_CREATE_HUGEPAGES advises the segment mapping
with madvise(MADV_HUGEPAGE) on Linux — purely advisory (effective only
where the kernel THP shmem policy permits), a no-op on macOS, never a
correctness dependency. The flag is persisted in the header's cold
identity block before the init_state release-store, so openers advise
their own independent mapping too; unknown create-flag bits are masked
and never persisted.

The frozen v1 surface is untouched: shuttle_create keeps its exact
signature and is now the create_flags=0 case of the additive v1.1 entry
point shuttle_create_ex (SHUTTLE_ABI_VERSION stays 1). The C flag value
is static_asserted against the C++ kFlagHugePages bit. The madvise call
lives behind the platform seam in platform.hpp, the only file allowed to
ifdef on platform.

New test shuttle_hugepage_test (suite now 29): flag persisted and
observed by a spawned opener, byte-exact transfer on a flagged channel,
plain create leaves the bit clear, unknown bits masked. Asserts the flag
contract only — never THP outcomes, which are kernel-policy-dependent
and would flake in CI.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk
…w docs

Lead the quick start with the native Linux CMake path (the production
target — CI proves it on ubuntu-24.04), keeping the mac+Docker
two-platform harness as the secondary block. New 'Using Shuttle in your
project' section: add_subdirectory/FetchContent consumption of shuttle_c
(C ABI) or shuttle_core (C++), verified by building a real consumer
against the published snippet; vendoring guidance for non-CMake builds;
pointer to shuttle_create_ex huge-page opt-in.

Verification and Scope sections now stand alone (no links to the deleted
dev-process docs); test count updated to 29; repository layout reflects
docs/API.md + docs/ROADMAP.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk
Tag pushes matching v* create a release whose notes come from the
annotated tag message (--notes-from-tag), so release notes are curated
at tag time and versioned in git.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk
Add a workflow_dispatch trigger to the Release workflow: it creates the
tag at the dispatched ref and publishes the release, taking notes from
.github/releases/<tag>.md when present. Needed because this environment
can push branches but not tags; the tag-push path remains for local
tagging. Ship the v1.0.0 notes file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JykzcEronyifSN4RnTgjTk
@allandng
allandng marked this pull request as ready for review July 24, 2026 06:23
@allandng
allandng merged commit d28a6e6 into main Jul 24, 2026
2 checks passed
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.

2 participants