Add Rubinius 2.2.1 and 2.1.1 to the Travis build matrix #1733

Closed
wants to merge 4 commits into
from

Conversation

Projects
None yet
7 participants
@gregkare
Contributor

gregkare commented Nov 19, 2013

Travis now provides stable Rubinius releases, this adds 2.2.1 and 2.1.1 to see if some tests need to be fixed. From reading the docs it looks like Travis only has packages since the 2.1.1 release. Maybe also add 2.2.0?

Refs #1275

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Nov 19, 2013

Owner

If you're willing to take the time to fix the tests so they pass on Rubinius, I'd be fine asking Travis to test Rubinius.

Rel: #1275

Owner

parkr commented Nov 19, 2013

If you're willing to take the time to fix the tests so they pass on Rubinius, I'd be fine asking Travis to test Rubinius.

Rel: #1275

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 19, 2013

Contributor

I'm seeing weird issues when trying to run the tests, but at least I can reproduce locally on Rubinius 2.1.0 on my machine. I'm going to investigate, I'll keep you posted!

Contributor

gregkare commented Nov 19, 2013

I'm seeing weird issues when trying to run the tests, but at least I can reproduce locally on Rubinius 2.1.0 on my machine. I'm going to investigate, I'll keep you posted!

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 19, 2013

Contributor

Too bad, the newest shoulda-matchers versions require Ruby version >= 1.9.2. Let's see if I can pick a version that works on both MRI < 1.9.2 and modern Rubinius :)

Contributor

gregkare commented Nov 19, 2013

Too bad, the newest shoulda-matchers versions require Ruby version >= 1.9.2. Let's see if I can pick a version that works on both MRI < 1.9.2 and modern Rubinius :)

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 20, 2013

Contributor

There's a weird gem issue on Travis with 2.2.1, almost there! coverage is reaaaaally slow on Rubinius at the moment (makes everything almost 10 times slower), I'm going to find a way to disable it.

rubinius/rubinius#2730

Contributor

gregkare commented Nov 20, 2013

There's a weird gem issue on Travis with 2.2.1, almost there! coverage is reaaaaally slow on Rubinius at the moment (makes everything almost 10 times slower), I'm going to find a way to disable it.

rubinius/rubinius#2730

@kelvinst

View changes

test/helper.rb
@@ -1,4 +1,5 @@
-if RUBY_VERSION > '1.9'
+# coverage is currently too slow on Rubinius
+if defined?(RUBY_ENGINE) && RUBY_ENGINE != 'rbx' && RUBY_VERSION > '1.9'

This comment has been minimized.

Show comment Hide comment
@kelvinst

kelvinst Nov 20, 2013

Some reason to use the defined? method here? I think just checkin if RUBY_ENGINE is not nil is more performatic and is easy enough to read... e.g.

if RUBY_ENGINE && RUBY_ENGINE != 'rbx' && RUBY_VERSION > '1.9'

aaand, since in Ruby nil is an Object too, you don't really need to check if RUBY_ENGINE is not nil, because nil is different of anything that is not nil, in other words, nil == 'a' will never return true neither throw an exception. 😃

Then, you can do just:

if RUBY_ENGINE != 'rbx' && RUBY_VERSION > '1.9'
@kelvinst

kelvinst Nov 20, 2013

Some reason to use the defined? method here? I think just checkin if RUBY_ENGINE is not nil is more performatic and is easy enough to read... e.g.

if RUBY_ENGINE && RUBY_ENGINE != 'rbx' && RUBY_VERSION > '1.9'

aaand, since in Ruby nil is an Object too, you don't really need to check if RUBY_ENGINE is not nil, because nil is different of anything that is not nil, in other words, nil == 'a' will never return true neither throw an exception. 😃

Then, you can do just:

if RUBY_ENGINE != 'rbx' && RUBY_VERSION > '1.9'

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 20, 2013

Contributor

There's a reason and I should have added it to a comment. The RUBY_ENGINE constant is not set under MRI 1.8.7: it caused this failure. An undefined constant does not return nil.

$ chruby ruby-1.8.7
$ irb
>> RUBY_ENGINE
NameError: uninitialized constant RUBY_ENGINE
        from (irb):1
        from :0

Edit: I agree it's really really ugly, everyone tell us if you know how to check for Rubinius in a cleaner way!

@gregkare

gregkare Nov 20, 2013

Contributor

There's a reason and I should have added it to a comment. The RUBY_ENGINE constant is not set under MRI 1.8.7: it caused this failure. An undefined constant does not return nil.

$ chruby ruby-1.8.7
$ irb
>> RUBY_ENGINE
NameError: uninitialized constant RUBY_ENGINE
        from (irb):1
        from :0

Edit: I agree it's really really ugly, everyone tell us if you know how to check for Rubinius in a cleaner way!

This comment has been minimized.

Show comment Hide comment
@kelvinst

kelvinst Nov 20, 2013

So, one more thing to the list of things that I didn't know from ruby... Sorry about not trusting in you, but I had to verify myself, and yes, constants not defined aren't nil. ):

Forget all of I'm talkin about. And thanks for don't treat me as the dumb that I am. 😆

@kelvinst

kelvinst Nov 20, 2013

So, one more thing to the list of things that I didn't know from ruby... Sorry about not trusting in you, but I had to verify myself, and yes, constants not defined aren't nil. ):

Forget all of I'm talkin about. And thanks for don't treat me as the dumb that I am. 😆

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 20, 2013

Contributor

No problem :)

@gregkare

gregkare Nov 20, 2013

Contributor

No problem :)

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 21, 2013

Contributor

I don't know what's up with the rubygems failures that only happen on Rubinius 2.2.1 (every single time), here's an exchange I had on Twitter with Travis this morning: https://twitter.com/gregkare/status/403104262781407232

Contributor

gregkare commented Nov 21, 2013

I don't know what's up with the rubygems failures that only happen on Rubinius 2.2.1 (every single time), here's an exchange I had on Twitter with Travis this morning: https://twitter.com/gregkare/status/403104262781407232

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 22, 2013

Contributor

I created an issue for the errors when installing the syntax gem on Rubinius 2.2.0 and 2.2.1 on Travis: travis-ci/travis-ci#1662. In the end the only thing that made it impossible to run the tests on Rubinius was a duplicate test (I have to write a test to reproduce, it's probably a shoulda-context or minitest issue on Rubinius)

Edit: I'll rebase to clean up the history once it's fixed

Contributor

gregkare commented Nov 22, 2013

I created an issue for the errors when installing the syntax gem on Rubinius 2.2.0 and 2.2.1 on Travis: travis-ci/travis-ci#1662. In the end the only thing that made it impossible to run the tests on Rubinius was a duplicate test (I have to write a test to reproduce, it's probably a shoulda-context or minitest issue on Rubinius)

Edit: I'll rebase to clean up the history once it's fixed

@mattr-

View changes

jekyll.gemspec
@@ -36,7 +36,9 @@ Gem::Specification.new do |s|
s.add_development_dependency('rake', "~> 10.1")
s.add_development_dependency('rdoc', "~> 3.11")
s.add_development_dependency('redgreen', "~> 1.2")
- s.add_development_dependency('shoulda', "~> 3.3.2")
+ s.add_development_dependency('shoulda', "~> 3.5.0")
+ # should-matchers 2.0.0 still supports MRI <= 1.9.2

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Nov 23, 2013

Owner

s/should-matchers/shoulda-matchers/ please 😃

@mattr-

mattr- Nov 23, 2013

Owner

s/should-matchers/shoulda-matchers/ please 😃

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 23, 2013

Contributor

It's been years and I still can't spell shoulda, once you have a problem like this it's for life. Thanks :)

@gregkare

gregkare Nov 23, 2013

Contributor

It's been years and I still can't spell shoulda, once you have a problem like this it's for life. Thanks :)

@mattr-

View changes

Gemfile
@@ -1,2 +1,5 @@
source 'https://rubygems.org'
gemspec
+
+gem 'rubysl', :platform => 'rbx'

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Nov 23, 2013

Owner

can we make a rbx section in the gem file rather than having to specify the platform manually after each gem?

@mattr-

mattr- Nov 23, 2013

Owner

can we make a rbx section in the gem file rather than having to specify the platform manually after each gem?

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 23, 2013

Contributor

Nice, it turns out we can! It doesn't seem to be documented, but I found it in the specs.

@gregkare

gregkare Nov 23, 2013

Contributor

Nice, it turns out we can! It doesn't seem to be documented, but I found it in the specs.

@mattr-

View changes

.travis.yml
- - 2.0.0
- - 1.9.3
- - 1.9.2
- - 1.8.7

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Nov 23, 2013

Owner

Is removing all of these just for testing?

@mattr-

mattr- Nov 23, 2013

Owner

Is removing all of these just for testing?

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 23, 2013

Contributor

Yes, this Is just for testing. I'll rebase once the Travis issues with rbx 2.2.x are fixed.

@gregkare

gregkare Nov 23, 2013

Contributor

Yes, this Is just for testing. I'll rebase once the Travis issues with rbx 2.2.x are fixed.

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 23, 2013

Contributor

And now I'm getting a random error that I can't reproduce locally: https://travis-ci.org/mojombo/jekyll/jobs/14411268

I'm starting to wonder if running Rubinius on Travis is mature enough...

Contributor

gregkare commented Nov 23, 2013

And now I'm getting a random error that I can't reproduce locally: https://travis-ci.org/mojombo/jekyll/jobs/14411268

I'm starting to wonder if running Rubinius on Travis is mature enough...

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Nov 23, 2013

Owner

It may not be :/

Owner

parkr commented Nov 23, 2013

It may not be :/

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Nov 24, 2013

Contributor

I got more information about that syntax gem failure on Rubinius >= 2.2.0: distler/syntax#1

Also related, Maruku is obsolete and the Jekyll issue for picking a replacement: #1752

Contributor

gregkare commented Nov 24, 2013

I got more information about that syntax gem failure on Rubinius >= 2.2.0: distler/syntax#1

Also related, Maruku is obsolete and the Jekyll issue for picking a replacement: #1752

@mattr-

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Dec 11, 2013

Owner

There's some 1.9 specific stuff in here. Would you mind updating this again after #1780 lands?

Owner

mattr- commented Dec 11, 2013

There's some 1.9 specific stuff in here. Would you mind updating this again after #1780 lands?

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Dec 11, 2013

Contributor

@mattr- Yes, I will! I'm also wondering if we should wait for Travis CI to ship dependency caching (it's only in the Pro version right now) to merge this, the build for Rubinius is crazy long because of rubysl...

Edit: maybe we can just merge it without adding Rubinius to the build matrix

Contributor

gregkare commented Dec 11, 2013

@mattr- Yes, I will! I'm also wondering if we should wait for Travis CI to ship dependency caching (it's only in the Pro version right now) to merge this, the build for Rubinius is crazy long because of rubysl...

Edit: maybe we can just merge it without adding Rubinius to the build matrix

@mattr-

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Dec 11, 2013

Owner

#1780 has landed.

Owner

mattr- commented Dec 11, 2013

#1780 has landed.

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Dec 11, 2013

Contributor

I messed up the merge/rebase, will fix it.

Edit: And I'll fix it again...

Contributor

gregkare commented Dec 11, 2013

I messed up the merge/rebase, will fix it.

Edit: And I'll fix it again...

@dblock

This comment has been minimized.

Show comment Hide comment
@dblock

dblock Dec 11, 2013

@gregkare I took over, did a bit of cleanup and released syntax 2.2.1, which should help you here. Let me know it works, I will take PRs in https://github.com/dblock/syntax.

dblock commented Dec 11, 2013

@gregkare I took over, did a bit of cleanup and released syntax 2.2.1, which should help you here. Let me know it works, I will take PRs in https://github.com/dblock/syntax.

@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Dec 11, 2013

Contributor

@dblock Jekyll updated to maruku 0.7, there's no dependency on syntax anymore. Thanks for chiming in and for taking over! :)

Contributor

gregkare commented Dec 11, 2013

@dblock Jekyll updated to maruku 0.7, there's no dependency on syntax anymore. Thanks for chiming in and for taking over! :)

gregkare added some commits Nov 19, 2013

Update shoulda to 3.5.0
This release is compatible with Rubinius, 3.3.2 just seems to crash.

Also use an older version of shoulda-matchers that works with MRI <=
1.9.2
Disable coverage for Rubinius
It's too slow for now: rubinius/rubinius#2730

Conflicts:
	Rakefile
	features/support/env.rb
	test/helper.rb
@gregkare

This comment has been minimized.

Show comment Hide comment
@gregkare

gregkare Dec 11, 2013

Contributor

@mattr- This should be all clean and working now. The Travis build was just finished: https://travis-ci.org/mojombo/jekyll/builds/15301864

Is it normal that there's an exception about ensure_not_in_dest that's not captured? It's been happening since #1706 was merged.

By the way does anyone know why the Travis notices aren't displayed anymore on pull requests?

Is everyone alright with having long running tests because of Rubinius, even with coverage disabled? It's downloading the whole gemified standard library on every run... cc @parkr

Contributor

gregkare commented Dec 11, 2013

@mattr- This should be all clean and working now. The Travis build was just finished: https://travis-ci.org/mojombo/jekyll/builds/15301864

Is it normal that there's an exception about ensure_not_in_dest that's not captured? It's been happening since #1706 was merged.

By the way does anyone know why the Travis notices aren't displayed anymore on pull requests?

Is everyone alright with having long running tests because of Rubinius, even with coverage disabled? It's downloading the whole gemified standard library on every run... cc @parkr

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Dec 11, 2013

Owner

By the way does anyone know why the Travis notices aren't displayed anymore on pull requests?

I have no idea. I tweeted to travisci on Twitter but it wasn't any help, unfortunately. I'll write GitHub Support.

Is everyone alright with having long running tests because of Rubinius, even with coverage disabled?

Long-running tests definitely slow down development. I wish there were a way for us to specify that we only care about the 2.0.0 build or something and to show that that passes but to still check the others? Or we can setup some Jenkins server ourselves? :)

Owner

parkr commented Dec 11, 2013

By the way does anyone know why the Travis notices aren't displayed anymore on pull requests?

I have no idea. I tweeted to travisci on Twitter but it wasn't any help, unfortunately. I'll write GitHub Support.

Is everyone alright with having long running tests because of Rubinius, even with coverage disabled?

Long-running tests definitely slow down development. I wish there were a way for us to specify that we only care about the 2.0.0 build or something and to show that that passes but to still check the others? Or we can setup some Jenkins server ourselves? :)

@mattr-

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Dec 11, 2013

Owner

I could potentially set up my personal Jenkins instance for use with Jekyll, but it would have to be done after the move to the jekyll org.

Owner

mattr- commented Dec 11, 2013

I could potentially set up my personal Jenkins instance for use with Jekyll, but it would have to be done after the move to the jekyll org.

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Dec 11, 2013

Owner

Right, right. I could definitely do it, too, with Janky on Heroku. We already have a Campfire room so that'd be perf.

Owner

parkr commented Dec 11, 2013

Right, right. I could definitely do it, too, with Janky on Heroku. We already have a Campfire room so that'd be perf.

@mattr-

This comment has been minimized.

Show comment Hide comment
@mattr-

mattr- Dec 11, 2013

Owner

Janky still requires a Jenkins instance though. It’s just a frontend on top of Jenkins

Owner

mattr- commented Dec 11, 2013

Janky still requires a Jenkins instance though. It’s just a frontend on top of Jenkins

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Dec 11, 2013

Owner

Oh fair. Well I would definitely be willing to setup a Jenkins instance on a linode or rackspace box at some point soon. Just asked @mojombo to move the repo to jekyll/jekyll so once that's done we can worry about it :)

Owner

parkr commented Dec 11, 2013

Oh fair. Well I would definitely be willing to setup a Jenkins instance on a linode or rackspace box at some point soon. Just asked @mojombo to move the repo to jekyll/jekyll so once that's done we can worry about it :)

@troyswanson

This comment has been minimized.

Show comment Hide comment
@troyswanson

troyswanson Dec 11, 2013

Member

👍 for a Rackspace box 😉

Member

troyswanson commented Dec 11, 2013

👍 for a Rackspace box 😉

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Dec 11, 2013

Owner

@troyswanson Someone has to keep you employed! 😉 I already have all my stuff there so I could set it up without much difficulty.

Owner

parkr commented Dec 11, 2013

@troyswanson Someone has to keep you employed! 😉 I already have all my stuff there so I could set it up without much difficulty.

@troyswanson

This comment has been minimized.

Show comment Hide comment
@troyswanson

troyswanson Dec 11, 2013

Member

We live to serve (your systems).

Member

troyswanson commented Dec 11, 2013

We live to serve (your systems).

@parkr

This comment has been minimized.

Show comment Hide comment
@parkr

parkr Dec 26, 2013

Owner

A new PR will have to be submitted, unfortunately, as mojombo:master no longer exists.

Owner

parkr commented Dec 26, 2013

A new PR will have to be submitted, unfortunately, as mojombo:master no longer exists.

@parkr parkr closed this Dec 26, 2013

@jekyllbot jekyllbot locked and limited conversation to collaborators Feb 27, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.