{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust-mode/issues/16","labels_url":"https://api.github.com/repos/rust-lang/rust-mode/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust-mode/issues/16/comments","events_url":"https://api.github.com/repos/rust-lang/rust-mode/issues/16/events","html_url":"https://github.com/rust-lang/rust-mode/pull/16","id":56478165,"number":16,"title":"Add travis config (and make tests runnable on emacs 23)","user":{"login":"MicahChalmer","id":698400,"avatar_url":"https://avatars.githubusercontent.com/u/698400?v=3","gravatar_id":"","url":"https://api.github.com/users/MicahChalmer","html_url":"https://github.com/MicahChalmer","followers_url":"https://api.github.com/users/MicahChalmer/followers","following_url":"https://api.github.com/users/MicahChalmer/following{/other_user}","gists_url":"https://api.github.com/users/MicahChalmer/gists{/gist_id}","starred_url":"https://api.github.com/users/MicahChalmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MicahChalmer/subscriptions","organizations_url":"https://api.github.com/users/MicahChalmer/orgs","repos_url":"https://api.github.com/users/MicahChalmer/repos","events_url":"https://api.github.com/users/MicahChalmer/events{/privacy}","received_events_url":"https://api.github.com/users/MicahChalmer/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-02-04T04:16:35Z","updated_at":"2015-02-06T13:37:46Z","closed_at":"2015-02-06T09:51:50Z","pull_request":{"url":"https://api.github.com/repos/rust-lang/rust-mode/pulls/16","html_url":"https://github.com/rust-lang/rust-mode/pull/16","diff_url":"https://github.com/rust-lang/rust-mode/pull/16.diff","patch_url":"https://github.com/rust-lang/rust-mode/pull/16.patch"},"body":"There was a bit more to this than I initially expected...\r\n\r\nThe rust-mode code has a few things in it that show intent to keep it compatible with emacs 23 as well as emacs 24, so the `.travis.yml` file here tests it against emacs 23, 24 and the latest snapshot build.  To make it successfully test on emacs 23 I had to change the test code (though not the actual rust-mode code under test) to eliminate some use of forms that were newly introduced in emacs 24.\r\n\r\nThe way it installs emacs in the Travis VM is taken from the example at https://github.com/rolandwalker/emacs-travis.  Other repos seem using the same approach as well--a very well known one is [Magit](https://github.com/magit/magit/blob/master/.travis.yml).  \r\n\r\nThere are a few unfortunate things about it:\r\n\r\n  1. The PPA that it uses to get emacs 24 [now proclaims itself deprecated](https://launchpad.net/~cassou/+archive/ubuntu/emacs), although for the time being it still works.\r\n  2. Because it uses apt-get to install emacs, it can't use Travis's new container infrastructure.  The Travis team appears to be working on lifting this limitation, so this seems to be only a temporary problem.\r\n\r\nAn alternative approach would be to have it download an emacs source tarball right from a GNU mirror, and rebuild emacs from source each time.  That would eliminate dependency on no-longer-interested third parties, but would also complicate the configuration in this repo and might make the travis builds take a while.  (I haven't tried it, so I can't really say for sure.)\r\n\r\nHere is [a successful Travis run with this version from my own fork](https://travis-ci.org/MicahChalmer/rust-mode/builds/49408534)."},"comment":{"url":"https://api.github.com/repos/rust-lang/rust-mode/issues/comments/73237007","html_url":"https://github.com/rust-lang/rust-mode/pull/16#issuecomment-73237007","issue_url":"https://api.github.com/repos/rust-lang/rust-mode/issues/16","id":73237007,"user":{"login":"huonw","id":1203825,"avatar_url":"https://avatars.githubusercontent.com/u/1203825?v=3","gravatar_id":"","url":"https://api.github.com/users/huonw","html_url":"https://github.com/huonw","followers_url":"https://api.github.com/users/huonw/followers","following_url":"https://api.github.com/users/huonw/following{/other_user}","gists_url":"https://api.github.com/users/huonw/gists{/gist_id}","starred_url":"https://api.github.com/users/huonw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huonw/subscriptions","organizations_url":"https://api.github.com/users/huonw/orgs","repos_url":"https://api.github.com/users/huonw/repos","events_url":"https://api.github.com/users/huonw/events{/privacy}","received_events_url":"https://api.github.com/users/huonw/received_events","type":"User","site_admin":false},"created_at":"2015-02-06T13:37:46Z","updated_at":"2015-02-06T13:37:46Z","body":"Looks like it works great, thanks @MicahChalmer: https://github.com/rust-lang/rust-mode/pull/24, https://travis-ci.org/rust-lang/rust-mode/builds/49740310 (tests seem to fail on emac23?)."}}