Skip to content

ci: add packaging-smoke workflow for the vcpkg port and Conan recipe#83

Merged
danielPoloWork merged 1 commit into
masterfrom
ci/packaging-smoke-vcpkg-conan
Jun 14, 2026
Merged

ci: add packaging-smoke workflow for the vcpkg port and Conan recipe#83
danielPoloWork merged 1 commit into
masterfrom
ci/packaging-smoke-vcpkg-conan

Conversation

@danielPoloWork

Copy link
Copy Markdown
Owner

Summary

Adds a packaging-smoke CI workflow that exercises the two Phase-2 packaging
recipes end to end — the vcpkg overlay port (ADR-0030) and the Conan 2.x
recipe
(ADR-0031). Neither could be validated anywhere before: vcpkg and Conan
are not installable on the maintainer's box, and no CI job covered them.

What the jobs do

  • vcpkg — installs the overlay port in classic mode (exactly as
    ports/README.md documents), then configures + builds + runs a small consumer
    that does find_package(pbr_memory_pool CONFIG REQUIRED) and links
    pbr::memory_pool. New fixture under ci/packaging-smoke/vcpkg-consumer/.
  • Conanpipx install conan, conan profile detect, then
    conan create conan/ --build=missing, which builds the package from the pinned
    tag and builds + runs the existing conan/test_package/.

Scope & triggers

Both recipes fetch the SHA-pinned v1.0.0 source tag, so the jobs validate
the recipes against the released artifact on current toolchains — not the
working tree (an in-tree CMake change does not reach a version-pinned recipe
until a release is tagged and the recipe re-pinned). The path filter is therefore
limited to ports/**, conan/**, ci/packaging-smoke/**, and the workflow
itself; a weekly schedule (Mondays 06:00 UTC) runs them regardless to catch
toolchain / registry drift on the otherwise-static recipes. workflow_dispatch
is enabled for manual runs.

Uses node24-era actions (actions/checkout@v6), consistent with the recent
runtime bump (#82).

Docs

  • CHANGELOG.md — Unreleased › Added entry.
  • ports/README.md and conan/README.md — each gains a "CI smoke test" section.

Verification

  • python tools/consistency_lint.py → OK (mandatory pre-PR gate).
  • vcpkg consumer mirrors the public surface of conan/test_package/src/example.cpp;
    API checked against memory_pool.hpp / typed_pool.hpp (Pool(block_size, block_count), try_allocate, deallocate, block_size; TypedPool<T>
    construct / destroy).
  • Workflow itself can only be exercised on GitHub-hosted runners — that is the
    point of the PR; CI will run both jobs here.

CI only; no API change.

🤖 Generated with Claude Code

The Phase-2 packaging recipes (ADR-0030 vcpkg port, ADR-0031 Conan recipe)
could not be exercised anywhere: vcpkg and Conan are not installable on the
maintainer's box, and no CI job covered them. Add a packaging-smoke workflow
that runs both end to end on ubuntu-latest:

- vcpkg: install the overlay port (classic mode, as ports/README documents),
  then build + run a small consumer that does find_package(pbr_memory_pool) +
  link pbr::memory_pool. New fixture under ci/packaging-smoke/vcpkg-consumer/.
- Conan: pipx install conan, profile detect, then `conan create conan/`, which
  builds the package and builds + runs the existing conan/test_package/.

Both recipes fetch the SHA-pinned v1.0.0 source tag, so the jobs validate the
recipes against the released artifact on current toolchains — not the working
tree (an in-tree CMake change does not reach a version-pinned recipe until a
release is tagged and the recipe re-pinned). The path filter is therefore
limited to ports/**, conan/**, ci/packaging-smoke/**, and the workflow; a weekly
schedule runs them regardless to catch toolchain / registry drift on the
otherwise-static recipes. Uses node24 actions (checkout@v6), consistent with the
recent runtime bump.

Docs: CHANGELOG Unreleased > Added entry; ports/README.md and conan/README.md
each gain a "CI smoke test" section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@danielPoloWork danielPoloWork merged commit 91fd3c0 into master Jun 14, 2026
6 checks passed
@danielPoloWork danielPoloWork deleted the ci/packaging-smoke-vcpkg-conan branch June 14, 2026 20:34
danielPoloWork added a commit that referenced this pull request Jun 15, 2026
## Summary
Reformats the vcpkg smoke consumer's `std::printf` call to satisfy the
CI clang-format gate. Pure formatting — no behaviour change.

## Motivation
The `format / clang-format check` job fails on
`ci/packaging-smoke/vcpkg-consumer/src/smoke.cpp:22`: the call was
manually wrapped across two lines, but the current CI clang-format
(bumped alongside the Node 24 action refresh) collapses it onto a single
~84-column line (well under the 120-col soft limit). The violation is
**latent** — it landed with the file in #83, and no `src/**`-touching PR
ran the C++ format job since (the docs-only PRs are path-filtered out),
so it only surfaced now on a `src/`-touching PR. It blocks every future
`src/` PR until fixed.

## Changes
- `ci/packaging-smoke/vcpkg-consumer/src/smoke.cpp` — single-line the
`std::printf` call (one line changed).

## Design Patterns
- None — formatting.

## Verification
- [x] `clang-format --style=file --dry-run --Werror` clean on the file
(clang-format 22.1.5, reproduces the exact CI violation pre-fix)
- [x] Verified it is the **only** clang-format violation across the full
CI file list
- [ ] CI format gate — confirmed green by this PR

## Documentation Impact
- [x] No README / ADR / CHANGELOG impact — formatting-only
- [x] PR metadata set — assignee, `chore` label, `v1.1.1` milestone
(§6.4 / ADR-0040)

## Note
This unblocks the **v1.1.1 release PR (#93)**, whose `src/`-touching
changes first surfaced this latent violation. After this merges, I
rebase `release/v1.1.1` on `master` so its format job re-runs green.

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

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.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