Repository navigation
Prepare 0.0.4: unify packaged projects and distribution CI - #61
Merged
Merged
Conversation
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.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduce a repository
share/directory containing the existing tests and benchmarks, the comprehensive guide, and standalone examples. Package that tree undershare/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_callexample, 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.