<p>Would replace <a href="https://github.com/geany/geany-plugins/pull/172" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/172" data-id="46342649" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#172</a>, which see also.</p>

<p>This is a new shot at enabling Travis CI on Geany-Plugins.  This time, it uses the new-style infrastructure which enables caching and is quite faster to start up.</p>

<ul>
<li>
<p>Pros:</p>

<ul>
<li>Faster to start up</li>
<li>Has cache support

<ul>
<li>We can build Geany and cache the result, meaning we can rebuild it only when it has changed.  This makes me think its better than using nightly <em>.deb</em>s, as we have the real latest version in all cases, and zero OS package compatibility issue.</li>
<li>
<em>ccache</em> support, meaning faster rebuilds</li>
</ul>
</li>
</ul>
</li>
<li>
<p>Cons:</p>

<ul>
<li>
<p>No sudo, which means:</p>

<ul>
<li>
<p>We need their approval for new packages.  We currently miss:</p>

<ul>
<li>
<em>libvte-dev</em> (for several plugins, incl. <em>Debugger</em>, <em>Scope</em> and <em>MultiTerm</em>)</li>
<li>
<em>libwnck-dev</em> (for <em>DevHelp</em>)</li>
<li>
<em>libgtkspell-dev</em> (for <em>GeanyVC</em>'s spellchecking support on GTK2)</li>
<li>
<em>libgtkspell-3-dev</em> (for <em>GeanyVC</em>'s spellchecking support on GTK3)</li>
</ul>

<p>this can however probably be addressed by using they approval procedure for those packages.  If we chose this version, I'll submit the requests there.</p>
</li>
<li><p>No 3rd party repositories (e.g. we have to build Geany there too).  This should not be a real problem with the caching, in my tests I saw it wasting about 7s when the cache is available, and something like 2 minutes without cache.</p></li>
</ul>
</li>
</ul>
</li>
</ul>

<p>IMO, the pros clearly beat the cons -- unless we really can't get the needed packages, but I'm confident we can.</p>

<hr>

<p>Unrelated to whether we use the new infrastructure or the old one, we run on Ubuntu 12.04.  This is good in the sense we test an old-ish system; but it's bad as in it doesn't have <em>libpython-dev</em> (for <em>GeanyPy</em>) nor <em>libgit2-dev >= 0.21</em> (for <em>GitChangeBar</em>).</p>

<p>We <em>could</em> try and use their <a href="https://docs.travis-ci.com/user/trusty-ci-environment/">beta Ubuntu 14.04 builders</a>, which allows <code>sudo</code>, <em>and</em> has cache.  Sounds nice, but:</p>

<ul>
<li>It's quite a bit slower than their 12.04 "new" infrastructure (build takes minutes to start, not seconds: not sure about speed after startup)</li>
<li>Ubuntu 14.04's <em>libgit2-dev</em> is too old (0.19) for <em>GitChangeBar</em>, so we "only" gain <em>GeanyPy</em>
</li>
<li>Newer system, while good, also means less backward compatibility checks.</li>
</ul>

<p>I didn't pursue it for the moment because of these which make me think we should at least wait for their setup to get faster seeing the limited benefits.</p>

<hr>

<p>Setting up this, I found 3 blocker issues, including 2 actual bugs:</p>

<ul>
<li>
<a href="https://github.com/geany/geany-plugins/pull/392" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/392" data-id="139064001" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#392</a>: <code>make check</code> breaks if MultiTerm is disabled.  So actually missing <em>libvte-dev</em> was useful :)</li>
<li>
<a href="https://github.com/geany/geany-plugins/pull/393" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/393" data-id="139064230" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#393</a>: Ubuntu 12.04's cppcheck is stupid</li>
<li>
<a href="https://github.com/geany/geany-plugins/pull/391" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/391" data-id="139063737" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#391</a>: Ubuntu 12.04's cppcheck is clever</li>
</ul>

<hr>

<p>Enough chatter, whatcha guys thinkin'?</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany-plugins/pull/394'>https://github.com/geany/geany-plugins/pull/394</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>travis: Add a Travis CI settings file using its new infrastructure</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany-plugins/pull/394/files#diff-0">.travis.yml</a>
    (106)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany-plugins/pull/394.patch'>https://github.com/geany/geany-plugins/pull/394.patch</a></li>
  <li><a href='https://github.com/geany/geany-plugins/pull/394.diff'>https://github.com/geany/geany-plugins/pull/394.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany-plugins/pull/394">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJy56sPmsQG-cuOM0dhBSEwFZYV0Eks5prIExgaJpZM4HrHCO.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany-plugins/pull/394"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>