Skip to content

Prepare 0.0.4: unify packaged projects and distribution CI - #61

Merged
sergio-eld merged 9 commits into
masterfrom
packaged-sneak-peek
Oct 10, 2026
Merged

sergio-eld merged 9 commits into
masterfrom
packaged-sneak-peek

Conversation

@sergio-eld

@sergio-eld sergio-eld commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Introduce a repository share/ directory containing the existing tests and benchmarks, the comprehensive guide, and standalone examples. Package that tree under share/omnirefl, with a top-level CMake project that enables examples, tests, and benchmarks by default. Keep individual examples self-contained, move the comprehensive guide into examples while retaining its tests, and group extension examples, tests, benchmarks, and shared models by extension.

Refresh the Sneak Peek around an early reflected_call example, readable metadata output, and a separate field-update example. Update the README and landing page with installed-project instructions, links to the complete examples, the planned 0.1 milestone, and working mobile navigation. Add a standalone RapidYAML JSON serialization example.

Make required serialization component discovery fetch missing dependencies; optional lookup remains non-fetching. Keep extension dependencies separate from core package consumers.

Define distribution coverage centrally in CI and separate package tests by runtime, OS, architecture, and toolchain. Build and run packaged projects through CMake and CTest without naming example executables in CI. Report stage-specific failures, handle rerun artifacts, and run benchmarks against the built packages. Reuse the package-test scripts in Docker Compose.

Fix compilation-database handling of invalid source paths and Windows command-line definitions. Bump the project version to 0.0.4.

Move the reflection walkthrough into the installed examples tree and make it
a standalone CMake project. Build and run it through package CI and Docker so
packaging and path regressions fail with stage-specific diagnostics.

Refresh the README and Pages presentation around the runnable example,
clarify the pre-0.1 project status, and keep mobile section navigation usable.
Keep each example self-contained while the examples project conditionally includes C++23 examples. Build the named Sneak Peek target in package CI, require its executable before running it, and document runnable packaged examples, tests, and benchmarks.
Add a self-contained JSON serialization example backed by the optional RapidYAML component. Make required component discovery fetch its packaged dependencies, and use the same public component flow for packaged extension tests. Build and run both shipped examples in package CI and Docker validation.
Probe the C++23 library facilities used by Sneak Peek and skip it when unavailable. Link MinGW's std::print support through stdc++exp.

Build enabled examples and retain executable checks in package CI and Docker Compose. Skip serialization in source test builds when extensions are disabled.
Separate packaged tests, standalone examples, and benchmarks; move the comprehensive guide into examples and keep internal compatibility tests out of the package. Share CMake toolchain checks and dependency setup across the projects.

Drive build, package-test, and benchmark matrices from distribution coverage data. Split package tests by runtime, remove cross-distribution build barriers, and check required job results without repeating job names. Preserve attempt-specific diagnostics and aggregate results for failed-job reruns.

Build and run packaged examples through CTest, share Unix package validation across Linux, macOS, and MSYS2, and extract native Windows validation into its PowerShell runner. Update package instructions for the unified layout.
Make musl benchmarks consume the package build artifact and remove the duplicate Release package build. Shorten Windows test scratch paths so nested RapidYAML Git submodules stay within path limits.

Keep the compile-definition fixture C++11-compatible while checking its full text. Check source paths before normalization and return diagnostics for filesystem failures; add an invalid-path regression.

Fetch RapidYAML shallowly from the release tag matching the previously pinned revision.
Make share a runnable CMake project with examples, tests, and benchmarks
enabled by default. Reuse it from the development build and install its
contents directly under share/omnirefl, excluding internal tests.

Group serialization examples, tests, benchmarks, and shared JSON models by
extension. Keep individual examples self-contained, centralize dependency
setup, and move the instrumentation baseline beside its benchmark while
retaining its mandatory test coverage.

Configure package examples and tests together, reuse the package-test
scripts from Windows Compose, and preserve failure diagnostics and cleanup.
Update README paths, out-of-source build instructions, and latest-release
download instructions; compact workflow conditions without changing them.

Checked default and all-disabled configurations, focused C++11 functional
and serialization tests, the serialization example, and the current
ccdb_query suite (12 tests). Workflow lint, Compose expansion, shell syntax,
and PowerShell parsing pass.
@sergio-eld sergio-eld changed the title Package and validate the Sneak Peek example Prepare 0.0.4: unify packaged projects and distribution CI Oct 9, 2026
@sergio-eld
sergio-eld merged commit 61364b5 into master Oct 10, 2026
53 checks passed
@sergio-eld
sergio-eld deleted the packaged-sneak-peek branch October 10, 2026 13:10
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