<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>On 7/20/17 8:56 AM, Alessandro Pasotti wrote:<br>
    </p>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">That's very interesting, Alessandro<br>
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div bgcolor="#FFFFFF"> <br>
                How are dependencies built, using some packaging system
                or a set of scripts? Are the scripts or recipes around
                somewhere?<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>Oh, sorry for not being clear, we are not building
              dependencies but only QGIS itself, but I think that the
              general workflow could be used for building the
              dependencies in the docker instead of QGIS and push the
              image to docker HUB.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div>So, when Travis starts, it will pull the pre-built
              docker image with all dependencies already built and
              either install them in Travis and build QGIS or build QGIS
              inside the docker "inside" Travis.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div>BTW, the recipes are here: <a
                href="https://github.com/boundlessgeo/qgis-testing-environment-docker"
                moz-do-not-send="true">https://github.com/boundlessgeo/qgis-testing-environment-docker</a><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Thanks for the pointer.<br>
    So you are mostly using the dependencies directly from Ubuntu 16.04
    except for one dependency that you build?<br>
    <br>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div bgcolor="#FFFFFF"> <br>
                We were wondering if this could be done directly on
                travis before the build starts (skipping any package
                that is already up to date in the cache).<br>
              </div>
            </blockquote>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div bgcolor="#FFFFFF"> The nice benefit of this compared
                to a separate build as you are doing on AWS would be
                that if something needs a new dependency (thinking of
                qca, qtkeychain, ...) it can directly integrated in the
                same pull request.<br>
                What do you think about this approach?<br>
                <br>
                Thanks<span class="gmail-HOEnZb"><font color="#888888"><br>
                    Matthias</font></span><span class="gmail-"><br>
                  <br>
                </span></div>
            </blockquote>
            <div><br>
              <br>
              <div>I'm not sure I get it right, do you mean that you
                want to build the dependencies on Travis within the same
                job that builds QGIS?<br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    Correct<br>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>
              <div><br>
              </div>
              <div>I think that this would add a considerable time,
                that's why we are building on AWS and pull the pre-built
                docker, but I guess that the goal is completely
                different.<br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    Normally they should be cached and not rebuilt.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>
              <div>I was thinking that the dependencies do not vary
                frequently, hence we should be able to build the
                dependencies docker nightly and when the main QGIS
                Travis job starts we can pull the docker with the
                dependencies substantially lowering the time needed to
                run the entire job.<br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    I imagine version updates happen more often. For example a new gdal
    version that brings in some geopackage functionality which is
    covered by a unit test.<br>
    <br>
    What's the workflow here?<br>
    <br>
    If this can be added directly inside a pull request this has some
    advantages like<br>
    <br>
    a) responsibility (even without commit rights on the qgis repo you
    can build the deps in the pull request)<br>
    b) sandboxing (if the library is updated in a centralized repository
    and the new gdal version kills some other unit tests we will have
    that also failing on master).<br>
    <br>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra"><br>
        </div>
        <div class="gmail_extra">Will you join the hackfest? If yes we
          can brainstorm there!<br>
        </div>
      </div>
    </blockquote>
    <br>
    I'll be there, we can talk about this for sure if there are still
    open questions!<br>
    <br>
    Thanks<br>
    Matthias<br>
    <br>
    <blockquote type="cite"
cite="mid:CAL5Q671k-peoPPVwOB93nquT-xAsdXVtCyrOkbDpnS1h6npAoA@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra"><br>
        </div>
        <div class="gmail_extra">Cheers<br clear="all">
        </div>
        <div class="gmail_extra"><br>
          -- <br>
          <div class="gmail_signature">Alessandro Pasotti<br>
            w3:   <a href="http://www.itopen.it" target="_blank"
              moz-do-not-send="true">www.itopen.it</a></div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>