<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>+1 to Medhi's point here.</p>
    <p>Using a standalone cmake is easy; using a customer toolchain is
      not.</p>
    <p>Philip<br>
    </p>
    <div class="moz-cite-prefix">On 7/16/20 6:38 PM, Mehdi AMINI via
      llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANF-O=Z3DhXJs_AM6xfewXOdACQBcGtimdSa2LwVg5ULx9-vrw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>While on the surface they seem like very similar
          dependencies, I see quite a difference in terms of size and
          complexity in order to download and bootstrap gcc vs CMake
          though. I could envision bootstrapping CMake as part of my
          buildbot, but I likely wouldn't do it as easily with gcc for
          instance.</div>
        <div><br>
        </div>
        <div>Also the requirement on the compiler version may apply
          transitively to users of LLVM (through header inclusion) while
          the CMake version is very local to LLVM.</div>
        <div><br>
        </div>
        <div>-- </div>
        <div>Mehdi</div>
        <div><br>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Thu, Jul 16, 2020 at 6:25
            PM Keane, Erich via llvm-dev <<a
              href="mailto:llvm-dev@lists.llvm.org"
              moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
            <div lang="EN-US">
              <div class="gmail-m_-1709964181636218775WordSection1">
                <p class="MsoNormal">It is curious to me that we had so
                  much push back about moving host-compiler versions,
                  yet so little on the cmake versions.  In my opinion,
                  we need to have a unified ‘dependency age’ policy. 
                  Cmake 3.13.4 was released about 18 months ago, so
                  unless we’re willing to move our GCC version to 8.3
                  JUST as easily, this seems like a horrific double
                  standard.</p>
                <p class="MsoNormal"> </p>
                <p class="MsoNormal"><b>From:</b> llvm-dev <<a
                    href="mailto:llvm-dev-bounces@lists.llvm.org"
                    target="_blank" moz-do-not-send="true">llvm-dev-bounces@lists.llvm.org</a>>
                  <b>On Behalf Of
                  </b>James Y Knight via llvm-dev<br>
                  <b>Sent:</b> Thursday, July 16, 2020 6:21 PM<br>
                  <b>To:</b> Jessica Clarke <<a
                    href="mailto:jrtc27@jrtc27.com" target="_blank"
                    moz-do-not-send="true">jrtc27@jrtc27.com</a>><br>
                  <b>Cc:</b> <a href="mailto:llvm-dev@lists.llvm.org"
                    target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
                  <b>Subject:</b> Re: [llvm-dev] Upgrading LLVM's
                  minimum required CMake version</p>
                <p class="MsoNormal"> </p>
                <div>
                  <p class="MsoNormal">Please, no more waiting on CMake
                    versions in distro LTS releases. We have been <i>way</i> too
                    conservative already, waiting this long.</p>
                  <div>
                    <p class="MsoNormal"> </p>
                  </div>
                  <div>
                    <p class="MsoNormal">Downloading and building a
                      local copy of cmake is trivial. You don't even
                      need to install it. Anyone who is developing and
                      building LLVM can definitely manage it. Not only
                      that, kitware even has an official apt repository
                      -- you can install a deb if installing that seems
                      easier for you (<a href="https://apt.kitware.com/"
                        target="_blank" moz-do-not-send="true">https://apt.kitware.com/</a>).</p>
                  </div>
                  <div>
                    <p class="MsoNormal"> </p>
                  </div>
                </div>
                <p class="MsoNormal"> </p>
                <div>
                  <div>
                    <p class="MsoNormal">On Thu, Jul 16, 2020 at 8:05 PM
                      Jessica Clarke via llvm-dev <<a
                        href="mailto:llvm-dev@lists.llvm.org"
                        target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
                      wrote:</p>
                  </div>
                  <blockquote style="border-style:none none none
solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in
                    0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
                    <p class="MsoNormal">On 30 Jun 2020, at 16:04, Louis
                      Dionne via llvm-dev <<a
                        href="mailto:llvm-dev@lists.llvm.org"
                        target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
                      wrote:<br>
                      >> On Apr 8, 2020, at 13:06, Louis Dionne
                      <<a href="mailto:ldionne@apple.com"
                        target="_blank" moz-do-not-send="true">ldionne@apple.com</a>>
                      wrote:<br>
                      >>> On Apr 2, 2020, at 10:19, Louis
                      Dionne via llvm-dev <<a
                        href="mailto:llvm-dev@lists.llvm.org"
                        target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
                      wrote:<br>
                      >>> <br>
                      >>> 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:<br>
                      >>> <br>
                      >>> 1. Immediately add a CMake warning in
                      <root>/llvm/CMakeLists.txt 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.<br>
                      >>> 2. Immediately send a courtesy
                      heads-up email to all build-bot owners telling
                      them about the upcoming change.<br>
                      >>> 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.<br>
                      >>> 4. Iterate on (3) until all bots are
                      migrated.<br>
                      >>> 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.<br>
                      >>> <br>
                      >>> Unless someone else absolutely wants
                      to bite the bullet, I volunteer to do the above
                      steps.<br>
                      >> <br>
                      >> 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:<br>
                      >> <br>
                      >> (1) Review at <a
                        href="https://reviews.llvm.org/D77740"
                        target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D77740</a><br>
                      >> (2) Email sent to the owners of all build
                      slaves listed on <a
                        href="http://lab.llvm.org:8011/buildslaves"
                        target="_blank" moz-do-not-send="true">
                        http://lab.llvm.org:8011/buildslaves</a><br>
                      >> <br>
                      >> 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.<br>
                      > <br>
                      > Hi,<br>
                      > <br>
                      > 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"
                        target="_blank" moz-do-not-send="true">
                        https://reviews.llvm.org/D78646</a>.<br>
                      > <br>
                      > 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.<br>
                      > <br>
                      > Once everyone has upgraded, I will then apply
                      this patch: <a
                        href="https://reviews.llvm.org/D78648"
                        target="_blank" moz-do-not-send="true">
                        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.<br>
                      > <br>
                      > Cheers,<br>
                      > Louis<br>
                      <br>
                      I missed this entire discussion but would like to
                      chime in. All of our department's machines run on
                      Ubuntu 18.04 as standard. I suspect the same is
                      true across a large number of organisations, as
                      Ubuntu is a very popular distribution, and the
                      18.04 LTS is still widely supported by most
                      projects. Whilst Ubuntu 20.04 has been released
                      for a couple of months, it's going to be a while
                      until everyone has updated. In fact, it isn't yet
                      *officially supported* to upgrade from 18.04 to
                      20.04, as you have to wait for the first point
                      release for that, due in August. So as far as
                      Canonical are concerned, if you installed 18.04
                      LTS, you should still be on that, and 20.04 isn't
                      ready for those people quite yet. That's a lot of
                      people affected who may not be following llvm-dev
                      but will suddenly find themselves in need of a
                      custom CMake.<br>
                      <br>
                      I would urge people to reconsider this move. I can
                      see the attraction of moving to the latest CMake,
                      but we've managed just fine so far, do we really
                      need to move to the latest and greatest right now?
                      Ditching support for 18.04 in a year's time would
                      seem reasonable, but expecting everyone to have
                      moved over when it's not yet officially supported
                      after just 3 months is not, and forcing everyone
                      on those distributions to build their own copy of
                      CMake just for LLVM is annoying (sure, I'm
                      perfectly capable of doing it, but it's still a
                      nuisance that aggravates me). I'd suggest waiting
                      at least until 20.04.1 has been released, so
                      waiting until the next release cycle would allow
                      that and give around 6 months for people to
                      update, if not until the release cycle after that
                      (though that may be a harder pill for some members
                      to swallow). But we could at least bump to 3.10.2
                      in the meantime.<br>
                      <br>
                      Jess<br>
                      <br>
                      _______________________________________________<br>
                      LLVM Developers mailing list<br>
                      <a href="mailto:llvm-dev@lists.llvm.org"
                        target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
                      <a
                        href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
                        target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></p>
                  </blockquote>
                </div>
              </div>
            </div>
            _______________________________________________<br>
            LLVM Developers mailing list<br>
            <a href="mailto:llvm-dev@lists.llvm.org" target="_blank"
              moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
            <a
              href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
              rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
  </body>
</html>