Support LIBNEO_BRANCH override for the libneo dependency#132
Open
krystophny wants to merge 6 commits into
Open
Support LIBNEO_BRANCH override for the libneo dependency#132krystophny wants to merge 6 commits into
krystophny wants to merge 6 commits into
Conversation
6 tasks
b3a8c04 to
da58b8c
Compare
da58b8c to
d81747b
Compare
Member
Author
|
@marjohma heads-up: this PR is part of a cross-repo change unifying how the codes resolve libneo (a validated |
d81747b to
ffd9274
Compare
Additive: unset keeps current ref resolution. ci.yml takes a libneo_ref dispatch input and exports it as LIBNEO_BRANCH so libneo's release gate can build KAMEL against a candidate ref. Tracking itpplasma/code#55.
ffd9274 to
cfb2c8e
Compare
A libneo-gate dispatch (workflow_dispatch without full) excludes the slow golden-record test (-LE golden_record); push, PR and full=true run the complete ctest set as before.
Ambient LIBNEO_BRANCH/LIBNEO_REF in the shell no longer affects the
build. The ref is now set exclusively via cmake cache option
-DLIBNEO_REF=<branch|tag|sha> or the make equivalent LIBNEO_REF=<ref>.
- cmake/Util.cmake: drop $ENV{LIBNEO_BRANCH} read; check cache var
${DEP_UPPER}_REF instead. Add LIBNEO_PATH cache var support ahead
of the $ENV{CODE} fallback. Rename LIBNEO_BRANCH -> LIBNEO_REF
throughout.
- .github/workflows/ci.yml: remove top-level env: LIBNEO_BRANCH block;
pass -DLIBNEO_REF=${{ inputs.libneo_ref }} explicitly in Configure
CMake step.
- Makefile: unexport LIBNEO_REF LIBNEO_BRANCH LIBNEO_PATH to block
make auto-import; forward explicitly-passed LIBNEO_REF/LIBNEO_PATH
as -D flags on the cmake invocation.
- README.md: document -DLIBNEO_REF and -DLIBNEO_PATH overrides.
find_or_fetch defaulted to $ENV{CODE}/<dep> when CODE was set in the
environment, so libneo and other FetchContent-managed deps were silently
taken from a local checkout instead of fetched. Remove that branch. The
only local-source override is now the explicit -D<DEP>_PATH cache variable;
otherwise deps are always fetched.
ifneq picked up an ambient LIBNEO_REF/LIBNEO_PATH from the shell despite the comment claiming otherwise. Use $(origin ...)==command line like the sibling repos, and drop the dead LIBNEO_BRANCH from unexport.
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.
Implements KAMEL's side of libneo's per-PR reverse-dependency gate dispatch contract (itpplasma/libneo#278), and makes dependency fetching hermetic.
The gate dispatches
ci.ymlwith-f libneo_ref=<sha>and, for full runs,-f full=true.The libneo ref is now controlled exclusively by the cmake cache option
-DLIBNEO_REF=<branch|tag|sha>. Ambient shell environment variables no longer affect which libneo ref is fetched, nor whether a local source tree is used. By default all FetchContent-managed dependencies (libneo included) are fetched; the only local-source override is the explicit-D<DEP>_PATH=<dir>cache variable.Changes:
cmake/Util.cmake: remove$ENV{LIBNEO_BRANCH}read; check cache variable${DEP_UPPER}_REFinstead. Add${DEP_UPPER}_PATHcache variable support for local-source overrides. Remove the$ENV{CODE}/<dep>FetchContent bypass entirely, sofind_or_fetchdefaults to fetching. RenameLIBNEO_BRANCHtoLIBNEO_REFthroughout..github/workflows/ci.yml: remove top-levelenv: LIBNEO_BRANCH:block; pass-DLIBNEO_REF=${{ inputs.libneo_ref }}explicitly in the Configure CMake step whenlibneo_refis non-empty.Makefile:unexport LIBNEO_REF LIBNEO_BRANCH LIBNEO_PATHto block make's auto-import of those env vars; forward explicitly-passedLIBNEO_REF/LIBNEO_PATHmake variables as-Dflags on the cmake invocation.README.md: document-DLIBNEO_REF=<ref>and-DLIBNEO_PATH=<dir>overrides.Gate contract preserved: a dispatched run without
full=trueruns only the fast ctest set (-LE golden_record); push, PR, andfull=truerun the complete suite.Verification
$ENV{LIBNEO_BRANCH},$ENV{LIBNEO_REF}, and$ENV{CODE}reads removed from helper:No
$ENV{CODE}remains in tracked cmake sources (build dirs and the gitignored golden-record clone excluded):Hermetic by default: with
CODEset in the environment and a reallibneocheckout present at$CODE/libneo, libneo is still fetched, not taken from the local tree:(The previous behavior printed
Using libneo in $CODE/libneoand skipped the fetch.)Cache option is stored and used during fetch:
Note:
test/ql-balance/golden_record/main_ref/cmake/Util.cmakeis a gitignored clone of KAMELmaingenerated byensure_golden.py; it is refreshed from the remote main branch and inherits this fix once merged.Tracking itpplasma/code#55, consumed by itpplasma/libneo#278.