solnic changed the topic of #rom-rb to: Ruby Object Mapper | Mailing List: https://groups.google.com/forum/?fromgroups#!forum/rom-rb | Logs: http://irclog.whitequark.org/rom-rb
dkubb has joined #rom-rb
<mbj> dkubb: hi
<mbj> dkubb: Time to talk about our 1.8 policy? Generally I hate this thing is comeing on topic again.
<mbj> dkubb: I'd love we just ditch 1.8 its times where over and just add friction to our development.
<dkubb> hi
<dkubb> yeah, I saw some of that
<mbj> dkubb: A statement like "if you dont support 1.8 I'll not recommend the ROM fundamental gems anymore" - is IMHO FUD.
<mbj> I'm totally okay of sferik is not recommending the gems. He does not define the general audience ;)
<dkubb> that's bullshit anyway. my policy with people who make those kinds of statements is to ignore them
<dkubb> did sferik actually say that? I thought I saw someone else sat that recently
<dkubb> I'm not going to waste precious oss time trying to placate people who make inflammatory statements like that
<mbj> I read it like this. But I'm NOT a native english speaker.
<mbj> "I have been publicly recommending (for example, on the Ruby Rogues podcast) that people use gems such as adamantium, descendants_tracker, and equalizer. However, if you only support use-cases that are directly needed by ROM, ignoring the broader community, I probably won’t continue recommending t"
<dkubb> it's debatable that it's what he meant
<mbj> For me the discussion left the tech level at this point.
<mbj> I'll not infect all our gems with 18 code again.
<dkubb> the main reason I don't care about 1.8 support is that I have no valid use cases for it, and I don't have enough time to fix 1.8 specific issues
<mbj> It took us lots of time squeeze out backports.
<mbj> Even if a person is volunteering to add 18 back I think it has an overall negative impact on the project.
<mbj> We simply dont have enough time to target "anther plantform".
<mbj> And adding 1.8 back in mainline will result in problems elsewhere.
<dkubb> with your recommendation for a 1.8 specific set of gems was to have things like require 'equalizer/ruby18' ?
<mbj> So only as a $libname/ruby18compat.rb I'd accept it the tree. And it would have to be require explicitly by users.
snusnu has quit [Quit: Leaving.]
<mbj> Yeah he could maintain an libname/ruby18compat.rb, ideall in his tree.
<mbj> Maybe I'm just having a bad day and bad emotions ;)
<lgierth> good night
<mbj> lgierth: cu
<lgierth> i'll look into the heisen mutant further tomorrow
<mbj> lgierth: keep me in touch
lgierth has quit [Quit: Ex-Chat]
<dkubb> mbj: I'm not saying I'm 100% for 1.8.7 support, but if it was ever added, someone would have to actively fix the code when it broke under 1.8; which invididual authors would not be required to do.. whoemever volunteered to support 1.8 would be responsible for this
<mbj> dkubb: And we should fix it in a way the normal code is not touched.
<dkubb> mbj: I would not support it if it means constant friction and bitching all the time because that just sucks away my interest in oss
<mbj> dkubb: Hence my idea to fix these places via a monkey patch.
<mbj> dkubb: That would not trigger under 1.9 and needs to be required by users explicitly.
<mbj> dkubb: Maybe also an out of tree gem. adamantium18 equalizer18
<dkubb> yeah, that's actually not so bad
<dkubb> you could have a 1.8 branch that someone is responsible for keeping in sync with master, except making it 1.8 compatible
<mbj> yeah
<dkubb> so it would lag behind master a bit at times, and someone else would be responsible for backporting stuff
<dkubb> I actually created a devtools branch in memoizable that kind of goes the other way
<mbj> heh
<dkubb> it uses devtools and 1.9 specific syntax
<dkubb> what I was doing is using it to identify problems with the code, and mutations.. which I'd fix, and then cherry-pick into master
<mbj> dkubb: BTW I added the mutator config object to mutant. Need to connect it to CLI but the basic semantic works already.
<dkubb> equalizer18, etc might not be so bad
<mbj> Yeah it just removes all overhead in the main repos/branch.
<dkubb> I really wish rubygems itself had a solution for this
<mbj> Yeah rubygems and the ruby stdlib, the biggest problems holding ruby back.
<mbj> Really happy to see more action towards rubygems bundler integration or the rewrite the rubinius guys are planning.
<mbj> Also the stdlib move of rubinius was great.
snusnu has joined #rom-rb
<dkubb> yeah both big things that we've wanted for a while
<mbj> I think sooner or later jruby could use them also, dont really understood the problems the jruby community had with this move.
<dkubb> I believe headius was talking about using it too
<dkubb> it might require some work for each gem though. my guess is that things aren't arranged in quite the same way so there'll be some work to move things into each individual repo
<mbj> Heh and the day bundle exec does NOT start a dependency resolution anymore and just trusts Gemfile.lock ;)
<mbj> - I'll be super happy.
<dkubb> what would be awesome is if each gem eventually included pure ruby, C and java implementations and it would just use the optimal case depending on the ruby impl
<dkubb> if we can get mutation testing into the equation, people can beef up the specs for the pure ruby version, and then use those same specs to ensure the C and java versions are correct
<mbj> dkubb: yeah
<mbj> dkubb: Thats a really good point.
<dkubb> I would love to see mutation testing used more in with ruby-spec
<dkubb> it would probably require some mspec integration in mutant
<mbj> dkubb: mspec is IMHO more well desigend than rspec for integration with a tool like mutant.
<dkubb> I suspect it's simpler since it was designed more for rubyspec
<dkubb> mbj: lemme think a bit more on the 1.8 issue, and I'll comment in github
<dkubb> mbj: however, I am really tired of people trying to change people's minds by using ultimatums. I'm basically going to ignore them in the future, and will tell people why
<mbj> dkubb: Yeah. I'll not veto a good solution. But it should ideally not produce any friction in our process.
<mbj> dkubb: Lets just write down a ROM-INVARIANTS.txt doc.
<mbj> dkubb: We'll not support X, because $Foo.
<dkubb> mbj: I think in this specific case he wanted to know the supporting libs would consider use cases besides ROM specific ones
<mbj> dkubb: We are supporting all use cases on the platform 1.9 +
<mbj> done.
<dkubb> mbj: I do think if we do agree to it we need to explicitly decide a time when everyone agrees the 1.8 support is dropped
<mbj> dkubb: We already did IMHO, here in ROM.
<dkubb> yeah, I mean for things like equalizer18, if that's what we decide
<mbj> ahh, this one.
<dkubb> having it in a separate branch and separate gem would mean no friction for anyone
<mbj> agreed.
<dkubb> you'd just write stuff for 1.9, test it with devtools, and someone else would be responsible for backporting it
<mbj> Same with devtools, there could be an 18 branch
<mbj> It would be uneasy to release.
<dkubb> with it being with separate gems, there would be no pressure for the maintainer to release them in sync
<mbj> What if a gem specifies equalizer, '~> 0.6'
<dkubb> hmm
<mbj> How that gem would poull equalizer-18 ?
<dkubb> I dunno actually :(
<mbj> It should be the other way round, many gems should be able to provide equalizer ~> 0.6 ;)
<mbj> You provide a public interface.
<mbj> Next problem, if we ship as a monkey patch, what if there is 1.9 in "main" code that has to be loaded first?
<dkubb> I have seem some gems that provide a "java" version and somehow rubygems selects them under jruby. I wonder if the mechanism that does this is available so you could define an mri-18 version
<mbj> Also not an option.
<mbj> good question.
<dkubb> it very well could exist and just not be well known
<dkubb> and if it doesn't exist, we also could check to see if it would be an accepted patch
<mbj> ?
<mbj> A patch to rubygems?
<dkubb> yeah
<dkubb> if rubygems is merging bundler maybe it'll allow platform specific deps
<mbj> Would be no option for 1.8 users. Because ther WILL NOT BE A RUBYGEMS UPDATE there.
<mbj> I think we should just drop 1.8
<mbj> He could just vendor an 1.8 compatible version.
<mbj> See, he is planning to use that stuff in *ONE* lib.
<mbj> If the twitter gem would vendor 1.8 compatible versions, no harm done.
<mbj> The vendored versions would only be activated under 1.8.
<mbj> If you register a gem on rubyspec the dependencies will be statically submitted.
<mbj> dkubb: So if you release from 1.8 you get the 1.8 deps on rubygems, same for 1.9 IMHO.
<mbj> dkubb: AFAIK this only affects the OS as platform, not the interpreter itself: http://guides.rubygems.org/specification-reference/#platform=
<mbj> dkubb: gonna go to sleep, cu
<dkubb> mbj: good night
snusnu has quit [Quit: Leaving.]
vsorlov has joined #rom-rb
vsorlov has quit [Read error: Operation timed out]
exbinary has joined #rom-rb
<exbinary> hi all. anyone around to run a minor devtools question by?
<exbinary> wrong time of day i suppose :). will try again tomorrow. cheers.
exbinary has left #rom-rb [#rom-rb]
dkubb has quit [Quit: Linkinus - http://linkinus.com]
snusnu has joined #rom-rb
mbj_ has joined #rom-rb
mbj has quit [Ping timeout: 246 seconds]
snusnu has quit [Quit: Leaving.]
joakimk_ has quit [Ping timeout: 260 seconds]
joakimk has joined #rom-rb
snusnu has joined #rom-rb
snusnu has quit [Quit: Leaving.]
snusnu1 has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
breakingthings has joined #rom-rb
cored has joined #rom-rb
cored has joined #rom-rb
cored has quit [Changing host]
CraigBuchek has joined #rom-rb
snusnu has quit [Quit: Leaving.]
lfox has joined #rom-rb
snusnu1 has joined #rom-rb
skade has joined #rom-rb
cored has quit [Ping timeout: 245 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
bf4 has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
lgierth has joined #rom-rb
lgierth has quit [Ping timeout: 246 seconds]
lgierth has joined #rom-rb
snusnu1 has joined #rom-rb
mkristian has joined #rom-rb
sferik has joined #rom-rb
<sferik> mbj_ hello...sorry I couldn’t join the IRC channel yesterday
<sferik> mbj_ I'm here now, if you have time to talk more about Ruby 1.8.7 support in devtools
<mbj_> sferik: Sorry I'm busy. commercial activities ;)
<sferik> mbj_ No problem. What timezone are you in?
<mbj_> sferik: Germany UTC+1
<sferik> mbj_ I'm in Central European Time Zone (UTC+01:00).
<sferik> mbj_ Me too. :)
<lgierth> ohai sferik
mbj_ is now known as mbj
<sferik> lgierth Hello...Lars...is that you?
<lgierth> yes yes!
<sferik> Lots of Berlinners in here!
<lgierth> :)
<sferik> mbj: Do you anticipate having some free time to chat later on this evening?
<mbj> sferik: yeah, I think around 22:00 localtime.
<mbj> sferik: Lets hope dkubb / snusnu is also around this time.
<sferik> mbj: Sounds good...I'll try to be back online then.
<mbj> sferik: cu!
<sferik> mbj: Have you had a chance to speak with them yet? If not, we can talk after that.
<mbj> sferik: Yeah I talked with dkubb.
<sferik> mbj: I'm not sure there's much more for us to discuss until you talk to the team.
<sferik> mbj: Okay, cool. Let's plan to talk tonight then.
<mbj> sferik: Yeah.
<sferik> mbj: Ping me on Twitter if I'm not on IRC.
<mbj> sferik: Will do. If you dont get the ping, I'll probably not have time :D
<sferik> mbj: Fair enough.
<sferik> lgierth: We should catch up about LHM when you're free.
<mbj> sferik: If you can catch dkubb, feel free to negotiate with him, we are mostly "synced" ;)
<sferik> lgierth: I leave for the US on Thursday morning but we should meet for coffee in the New Year.
<mbj> sferik: LHM? - just curios.
<lgierth> sferik: sure
<lgierth> mbj: also has dm-1.2 support :)
<mbj> lgierth: jo
<mbj> lgierth: thx
mkristian has quit [Quit: bye]
mkristian has joined #rom-rb
skade has quit [Quit: Computer has gone to sleep.]
<mbj> snusnu1: ping
vsorlov has joined #rom-rb
<lgierth> sferik: oh and my new email address: larsg@systemli.org
sferik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sferik has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
mbj has quit [Ping timeout: 260 seconds]
lfox has quit [Quit: ZZZzzz…]
snusnu1 has joined #rom-rb
lfox has joined #rom-rb
mbj has joined #rom-rb
cored has quit [Ping timeout: 246 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
CraigBuchek has quit [Quit: Leaving.]
jgaskins has joined #rom-rb
vsorlov has quit [Read error: Operation timed out]
cored has quit [Ping timeout: 248 seconds]
cored has joined #rom-rb
lfox has quit [Ping timeout: 272 seconds]
sferik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
postmodern has joined #rom-rb
vsorlov has joined #rom-rb
mkristian has quit [Ping timeout: 260 seconds]
sferik has joined #rom-rb
sferik has quit [Client Quit]
sferik has joined #rom-rb
sferik has quit [Client Quit]
CraigBuchek has joined #rom-rb
bf4 has quit [Read error: Operation timed out]
vsorlov has quit [Ping timeout: 246 seconds]
sferik has joined #rom-rb
<sferik> mbj: I'm just heading home now...
<sferik> mbj: I'll be around to chat in about 30 minutes
<sferik> mbj: Does that still work for you?
<mbj> sferik: Sorry, problems with commercial stuff.... still ;)
<sferik> okay, I'll ping you again when I get home...
<sferik> mbj: if not tonight, then some other night
<sferik> mbj: it's not the most urgent issue
sferik has quit [Client Quit]
lgierth has quit [Ping timeout: 250 seconds]
mkristian has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
mkristian has quit [Quit: bye]
mbj has quit [Ping timeout: 248 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
lfox has joined #rom-rb
bf4 has joined #rom-rb
cored has quit [Ping timeout: 248 seconds]
Eiam has joined #rom-rb
cored has joined #rom-rb
sferik has joined #rom-rb
skade has joined #rom-rb
lgierth has joined #rom-rb
jgaskins has joined #rom-rb
mbj has joined #rom-rb
<mbj> snusnu: hola!
<lgierth> hej mbj, a thought popped into my head earlier regarding 1.8 support
<lgierth> from what i get devtools only completely support 1.9 anyway, right?
<lgierth> and that's usually the ruby you develop on
<lgierth> i don't see how you would want to run devtools on 1.8
<lgierth> run your specs to verify compatibility, ok
<lgierth> but you don't need metrics from 4+ different runtimes
<mbj> lgierth: yeah
<mbj> lgierth: My plan is to stup out devtools under 1.8
<mbj> sferik: I'm finished with commercial stuff, but up for 20h now...
<lgierth> firefighting eh?
<mbj> Yeah bad sign. But I'm to loyal to my team.
<sferik> mbj: we can chat another time, if your prefer
<mbj> lgierth: Not my fire. I'm external and trying to fix stuff up.
<sferik> mbj: or just briefly
<mbj> sferik: Yeah, I'm only able to do light talk to come down.
<mbj> ranting about bad project management ;)
<sferik> :\
<mbj> We have a build system where all deployments have to go through
<mbj> It takes 50min to build! (Without specs).
<mbj> A totally misdesigned VM with 512mb of ram and swapping like hell.....
<mbj> My stupid notebook does the job in 2min.
<mbj> So guess what, I made a mistake when deploying to QA stage....
<lgierth> (sorry if i lag, my flatmates are seeding all the torrents)
<mbj> And it took us 3 roundtrips to identify it. each time waiting 50min.....
<mbj> While having customer on phone. Asking why it takes so long to deploy.
<mbj> This is just stupid. I hate working for big concerns ;)
<mbj> Lots of stoneage IT.
<mbj> </rant>
<mbj> sferik: See non emotional communication is not possible currently.
<mbj> sferik: I think I'm done with ranting.
<mbj> sferik: So 1.8 ;)
<mbj> sferik: I thougt we could first just create ruby18 branches in each repo.
<sferik> seems like a good start
<mbj> These repos can all reference 1.8 compatible branch of devtools.
<sferik> maybe just start with 1?
<mbj> yeah
<mbj> The bigger problem: How to distribute 1.8 compatible code.
<sferik> I'd vote for equalizer
<sferik> since that's the one that initially broke 1.8 compat
<mbj> AFAIK rubygems does not have something like 1.8 specific dependencies.
<sferik> no
<sferik> but bundler does
<sferik> kindof
<sferik> bundler allows arbitrary Ruby code where gemspecs do not
<mbj> Yeah. So you could just tell your 1.8 users: Take the pain and use the code from repo under 1.8 branch / or 1.8 specific tag.
<sferik> so you can just say: if RUBY_VERSION >= "1.9"
<mbj> Yeah you could publish a sample Gemfile content.
<sferik> is that really necessary?
<mbj> So if you'd not release gems, you dont have problems to fight rubygems.
<sferik> sorry, we're talking out of sync
<lgierth> on a sidenote, why have equalizer depend on devtools?
<mbj> lgierth: Its a development dependency.
bf4 has quit [Ping timeout: 272 seconds]
<mbj> lgierth: Would not get installed in production.
<mbj> lgierth: You could just remove devtools from the 1.8 branch and focus on the specs.
<sferik> so, I think the issue is this: I just want gems that use devtools to be able to run their tests on Ruby 1.8
<mbj> sferik: If you only care about specs devtools is IMHO superflownous.
<sferik> as lgierth mentioned above, it's not necessary to run all the metrics on Ruby 1.8
<mbj> sferik: So just wipe devtools from the 1.8 branch. I'd go this route.
<sferik> the Gemfile just needs to be able to bundle and then execute rake spec
<lgierth> mbj: i get that, but i thought the development is gemfile-driven
<sferik> mbj: That doesn't really solve it
<lgierth> if it is, you can ditch development dependencies and treat the gem only as a published artifact
<mbj> lgierth: I dont get this one, sorry? Gemfile-driven development? (GDD?)
<lgierth> :)
<sferik> I don't want their to be a separate branch
<mbj> sferik: of devtools or equalizer?
<sferik> or equalizer
<sferik> *of
<sferik> are you talking about devtools?
<mbj> I'm mixin.
<mbj> Lets focus somehwere ;)
<sferik> so, tests need to run against equalizer master
<mbj> Me is not a native speaker and it was a long day. apologize my english pls.
<sferik> on Ruby 1.8
<mbj> sferik: Okay discuss how to get 1.8 back for equalizer.
<sferik> so that when changes get merged into master, the tests will run and potentially fail
<lgierth> mbj: i'll get back to GDD another day :)
<mbj> sferik: I dont think we want to merge 1.8 back to master.
<mbj> sferik: Why do you want this?
<sferik> what do you mean "merge 1.8 back to master"
lfox has quit [Quit: ZZZzzz…]
<mbj> sferik: sorry misread your above comment.
<sferik> I want the latest version of equalizer to support Ruby 1.8, if possible
<mbj> sferik: The latest released version as a gem?
<sferik> yup
<mbj> mhh
<sferik> since I depend on the gem
<mbj> sure
<sferik> it's a runtime dep
<mbj> Wont your users accept to use a :git dependency as penalty for still using 1.8 ?
<mbj> :git dependency via Gemfile of a project using equalizer?
<mbj> even when transitively useing equalizer.
<sferik> some of the projects using twitter are CLIs
<mbj> good point.
<sferik> Gemfile is not always an option
<mbj> bundl exec twitter-cli is not fun.
<sferik> therefore git deps are not an option
<sferik> right
<mbj> sferik: What about vendoring an 1.8 compatible equalizer?
breakingthings has quit []
<sferik> mbj: If I thought that was a good option, we wouldn't be having this conversation. ;)
<mbj> hehe
<mbj> I just wanna speak out all options.
<sferik> equalizer supporting Ruby 1.8 is not so hard
<mbj> For me 1.8 in master / release is a step backwards. I'd like to help with a workaround.
<lgierth> keeping vendored stuff in sync isn't that hard with subtree merges (in case that's the problem with vendoring)
<sferik> literally, it just requires making a one-line change: https://github.com/dkubb/equalizer/pull/12
snusnu has quit [Quit: Leaving.]
<sferik> the hard part is maintaining compatibility with Ruby 1.8 over time
<sferik> it needs to be tested on Travis CI under Ruby 1.8
<sferik> master
<sferik> after each commit
<mbj> sferik: If we pull that in we'll have uncovered mutations under 1.9.
<sferik> mbj: so, i'm sympathetic to this point
<mbj> heh
<sferik> mbj: I really don't want to mess with your current development process
<sferik> seriously
<sferik> but, it's an interesting question
<sferik> since in Ruby 1.8, send is covered
<mbj> So lets imageine equalizer has 1.8 back in mster.
<sferik> but in Ruby 1.9, it is not covered
<mbj> You'd need more gems?
<mbj> support 1.8? where does it end?
<mbj> I dont wanna backport mutant to 1.8, especially with unparser it would not be so nice.
<sferik> It ends in about a year, when I drop 1.8 support
<sferik> you don't need to backport mutant
<mbj> Its only equalizer? Or do you plan to use more gems?
<sferik> currently, I need equalizer, descendants_tracker, and memoizable (and all their runtime dependencies)
<sferik> (but also their development dependencies for testing/CI)
<sferik> (or at least some solution to this problem)
<mbj> I see.