COMP: Pin proxTV to an immutable commit hash - #6758
Conversation
|
I think the "for/itk-XXXX" convention is used in most of our forks and they have similar issues. Human though should be used to update the procedures and documentation as needed to change the convention. |
@blowekamp. I want to understand your comment on this draft PR. Are you advocating for the proposed "-r1" extention to be documented on the welcome branch documentation on all the itk forks? This draft was intended to spark a discussion, but I did not expect such quick response to the "adds an -rN suffix so it cannot collide with the anchor branch". I won't have time to do that across all the itk forks, but I'll make a tracking issue to get around to it sometime this fall. |
|
Sorry for the short response. I don’t have much time right now either, but I wanted to short cut another convention being introduced without discussion and documentation. Perhaps for “live” references the actual hash should be used and a comment with the branch name is appropriate. The clones during a build would be live references This is different than the scripts for third party which only use the reference once so the branch name works and no hash needed. |
|
We are all too busy right now :(. Thanks for your response. I'll be on vacation until August 18th, but will try to squeeze in a "live" reference update during downtime. |
proxTV_GIT_TAG named the anchor branch for/itk-proxtv-3.3.0-69062fe5, so advancing that branch changed what ITK built. Pin the commit hash with the overlay ref in a trailing comment, matching DCMTKGitTag.cmake. The pinned commit 0903e7c is the overlay tip carrying the GCC warning cleanup merged as InsightSoftwareConsortium/proxTV#1 (pragma guards, size_t loop counters, solver size validation). Upstream base is unchanged at albarji/proxTV 3.3.0 (69062fe5).
f1caca9 to
3a84fa0
Compare
|
Switched to the commit hash with the overlay ref in a trailing comment, matching DCMTKGitTag.cmake. I think this is a short-term fix until we all have time/resources to find a more complete solution. |
|
blowekamp
left a comment
There was a problem hiding this comment.
Thank you.
IMHO using hashes and comments is OK, for the long run. But other may have difference experiences and preferences to what has worked well. I can add it to my todo to make that the document and consistent way, if others are in agreement.
|
@blowekamp Switched to the commit hash with the overlay ref in a trailing comment, matching That's your "live reference" case exactly, and it drops the
|
proxTV_GIT_TAGnamed the anchor branchfor/itk-proxtv-3.3.0-69062fe5, so advancing that branch changed what ITK builds without any change landing here. Pin the commit hash0903e7cinstead, with the overlay ref in a trailing comment — the form already used byDCMTKGitTag.cmake.The pinned commit also brings in the GCC warning cleanup merged as InsightSoftwareConsortium/proxTV#1.
Why a hash rather than a tag name
This is a live reference:
FetchContentresolves it on every configure. A branch is mutable by design, and a tag — while conventionally immutable — can still be deleted and re-pushed. Only the hash is pinned outright, so it is the right form for anything fetched at build time. Ref names used once by a human (the fork'swelcomeupdate procedure,UpdateFromUpstream.sh-style scripts) are unaffected and keep using branch names.This introduces no new naming convention:
DCMTKGitTag.cmake:46isset(DCMTK_GIT_TAG "554b744…") # for/itk-dcmtk-3.7.0-ccfd10b, and this change makes proxTV match it.The anchor branch
for/itk-proxtv-3.3.0-69062fe5still exists and still points at0903e7c; it remains the update target per the fork'swelcomeprocedure. The annotated tagfor/itk-proxtv-3.3.0-69062fe5-r1also points there and is named in the comment, but ITK no longer depends on either name resolving.What the pinned overlay contains
Three commits on the ITK proxTV overlay, all compiler-warning fixes in the vendored C sources:
34af3b0— guard#pragma ompbehind#ifdef _OPENMPand the MSVCwarning(suppress:)pragmas behind#ifdef _MSC_VERf726e32—size_tloop counters where compared againstsize_tbounds (-Wsign-compare), and a-Wmisleading-indentationfix0903e7c— rejectn < 2inmore_TV2/morePG_TV2andnpen < 1inPD_TV/PDR_TVbefore those values reachmemcpy/callocsize arguments (-Wstringop-overflow,-Walloc-size-larger-than)Upstream base is unchanged: albarji/proxTV 3.3.0, commit
69062fe5. The overlay is a fast-forward,4c53ae7→0903e7c.The same fixes were offered upstream as albarji/proxTV#63, but upstream has merged nothing since 2018, so the overlay remains the source of truth.
Verification
git ls-remoteconfirms the branch head, the peeled annotated tag, and this pin are all the same commit, so the build result is unchanged by this PR:CI on this PR is the end-to-end test: it exercises the fetch at the new pin on every platform that builds
ITKTotalVariation.