<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 30, 2020, at 11:04, Louis Dionne via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline"><br class=""><blockquote type="cite" class=""><div class="">On Apr 8, 2020, at 13:06, Louis Dionne <<a href="mailto:ldionne@apple.com" class="">ldionne@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Apr 2, 2020, at 10:19, Louis Dionne via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Okay, so we've had some discussion on this thread, and although some people (including me) would like a more aggressive policy, I believe the following will not get any objection (based on the thread). On April 23rd 2020, Ubuntu 20.04 LTS will ship with CMake 3.16.x. This will make the lower bound for LTS distributions be 3.13.4, and so I suggest we upgrade to that. Here's a proposed process:<div class=""><br class=""></div><div class="">1. Immediately add a CMake warning in<span class="Apple-converted-space"> </span><font face="Monaco" class=""><span class="" style="font-style: normal;"><root>/llvm/CMakeLists.txt</span></font><span class="Apple-converted-space"> </span>saying that CMake 3.13.4 will be the new minimum version starting with LLVM 12.0.0, and mentioning the versions used in various LTSes.</div><div class="">2. Immediately send a courtesy heads-up email to all build-bot owners telling them about the upcoming change.</div><div class="">3. Right after we branch off the release branch for LLVM 11.0.0 (the next one), make the minimum CMake version required be 3.13.4.</div><div class="">4. Iterate on (3) until all bots are migrated.</div><div class="">5. Send a message to the list saying the bump is complete. At that time, projects are free to start using features from 3.13.4.</div><div class=""><br class=""></div><div class="">Unless someone else absolutely wants to bite the bullet, I volunteer to do the above steps.</div></div></div></blockquote><div class=""><br class=""></div><div class="">Ok, so the thread has kept going, but AFAICT all the discussion is about a policy for "automatic" upgrades. So I've went ahead and did the first two steps of the above algorithm:</div><div class=""><br class=""></div><div class="">(1) Review at<span class="Apple-converted-space"> </span><a href="https://reviews.llvm.org/D77740" class="">https://reviews.llvm.org/D77740</a></div><div class="">(2) Email sent to the owners of all build slaves listed on <a href="http://lab.llvm.org:8011/buildslaves" class="">http://lab.llvm.org:8011/buildslaves</a></div><div class=""><br class=""></div><div class="">Just to reiterate, this means that as soon as we branch LLVM 11.0.0 (the NEXT release), CMake 3.13.4 will be the minimum required version.</div></div></div></div></blockquote><div class=""><br class=""></div><div class="">Hi,</div><div class=""><br class=""></div><div class="">Just a heads up that about two weeks from now, we should be branching for the LLVM 11.0.0 release. Right after we branch, I will implement steps (3) and (4) of the algorithm described above, which is to make the minimum CMake version required be 3.13.4. I will do this by checking-in this patch: <a href="https://reviews.llvm.org/D78646" class="">https://reviews.llvm.org/D78646</a>.</div><div class=""><br class=""></div><div class="">That patch will cause errors whenever the CMake version is less than 3.13.4 -- I will then revert and re-apply this patch until all build bots have upgraded to a sufficient CMake. The patch was crafted to be minimal and revert-friendly. Note that build bot owners have already been contacted in March and pinged several times again for those who had not yet upgraded. At this time, I think only 1-2 bots have not upgraded.</div><div class=""><br class=""></div><div class="">Once everyone has upgraded, I will then apply this patch: <a href="https://reviews.llvm.org/D78648" class="">https://reviews.llvm.org/D78648</a>. That patch marks the minimum CMake version required as being 3.13.4 throughout the monorepo in a slightly more invasive but definitive way. Once that's all done, I'll report to the list that the version bump is complete and we can all start using modern CMake features.</div></div></div></blockquote><div><br class=""></div><div>Hi,</div><div><br class=""></div><div>I completed steps (3) and (4) of the above upgrade path last week without issues. I waited a couple of days to make sure nothing new came up, and just now I pushed the last patch that performs the upgrade.</div><div><br class=""></div><div>So.. we're now allowed to use CMake 3.13.4 features in the code! Enjoy.</div><div><br class=""></div><div>Thanks to everybody who collaborated,</div><div>Louis</div></div><br class=""></body></html>