Open source projects move fast and so does Travis CI environment. Most of the changes make open source projects and Travis CI environment better but some break backwards compatibility and may cause CI builds to fail.
Today we want to give you a heads-up on several recent (or upcoming) CI environment changes that are not backwards compatible. They are: moving to Leiningen 2.0 Preview 7, Node.js 0.8, switching to CRuby 1.9.3 as the new default Ruby version.
Leiningen 2.0 Preview 7
Travis CI provides Leiningen 1.7 and a recent Leiningen 2.0 Preview versions side by side for projects to use. This gives projects that use Leiningen (primarily in the Clojure community) time to migrate to Leiningen 2.0 and not lose the ability to use Travis for CI.
The most recent Leinigen 2.0 preview release introduces a breaking change that may affect a sizeable portion of projects on Travis CI:
task chaining now requires using the new
lein clean, test, deploy with Lein 2.0 Preview 6 becomes
lein do clean, test, deploy in Lein 2.0 Preview 7. Use of the old style will
emit a warning explaining the change.
We will deploy Preview 7 on the 1st of July, 2012.
Ruby 1.9.3 as the new default.
When Travis CI was started in early 2011, using Ruby 1.8.7 as the default Ruby was a conservative but reasonable choice. Today, over one year later, almost all maintained projects that can run on Ruby 1.9 are compatible with 1.9. In addition, there are projects that rely heavily on Ruby 1.9-specific features and PaaS providers where Ruby 1.9 is the only choice.
So, on July 9th, 2012, we will make Ruby 1.9.3 the new default Ruby version. Please note that it does not mean that 1.8.7 won’t be available, only that if you don’t specify the list of Rubies to test against, Travis CI will use 1.9.3 starting July 9th.
Recently released Node.js 0.8 is now available on Node.js workers. This release has multiple public API changes that are not backwards compatible. One such change that will affect CI experience for projects that test against multiple Node.js version is the migration from Waf to Gyp for the build system.
Projects that have native parts are “recommended to migrate to node-gyp ASAP” (quoting Node.js wiki).
More information can be found in the README of node-gyp
If you have questions, please ask them on our mailing list or in
#travis on chat.freenode.net.
The Travis CI Team