drbrain changed the topic of #rubygems to: RubyGems 2.0.5: http://bit.ly/rubygems-2-0-5 – Latest status: http://twitter.com/rubygems_status and http://status.rubygems.org
jfoy has quit [Quit: jfoy]
jaimef has quit [Excess Flood]
jaimef has joined #rubygems
<mpapis> drbrain / evan maybe it's faster to discuss the plugins change here
<mpapis> even the find_files is changed on master https://github.com/rubygems/rubygems/blob/master/lib/rubygems.rb#L456
<mpapis> this means if a gem is not in Gemfile then it's plugins will not be used when "bundle install" is called
<drbrain> mpapis: that line exists back to 1.8.0
fromonesrc has joined #rubygems
<mpapis> oh damn
<mpapis> this explains a lot
<drbrain> also, due to $LOAD_PATH checking I don't see the problem
<mpapis> the problem is you need to change the LOAD_PATH to get it working
<drbrain> then is this a separate issue than #591?
<mpapis> this plugins mechanism makes no sense for gem installation hook ... not sure about others
<drbrain> mpapis: also, rubygems_plugin.rb files only get loaded when gem/gem_runner.rb is required
<drbrain> and $LOAD_PATH is not checked when loading rubygems_plugin.rb
jaimef has quit [Excess Flood]
jaimef has joined #rubygems
<mpapis> ok let me explain now what the problem is
fromonesrc has quit [Ping timeout: 256 seconds]
<mpapis> when you run "bundle install" then the set of gems is restricted to only the gems in "Gemfile.lock", so if you want to hook into gem installation you need to add the gem to Gemfile and make sure it's installed in version from Gemfile.lock before starting "bundle install"
fromonesrc has joined #rubygems
<mpapis> this is not good
<mpapis> drbrain, the hooks need to be callable even if not in Gemfile, otherwise it makes no sense
<drbrain> hold on, let me update my bundler repo
ckrailo has quit [Quit: Computer has gone to sleep.]
<drbrain> mpapis: where does bundler load the rubygems plugins?
<drbrain> I can't find it using GemRunner or calling Gem.load_plugins
<mpapis> need to check
<drbrain> so it looks like it should be unable to use any rubygems plugins
<mpapis> lib/bundler/cli.rb:245: lib/bundler/cli.rb:314:
<mpapis> looks like I'm back in point where LOAD_PATH has to be modified
<drbrain> I think this is a bundler issue, not a rubygems issue
<drbrain> bundler needs to choose which set of plugins it wants to use, the plugins from the "outside" gem environment or the plugins from the bundled gem environment
<drbrain> … or both
<drbrain> rubygems can provide the API to support all of these three cases
<mpapis> damn this never gets easier
<samkottler> drbrain: has there ever been consideration for adding a way to specify which ruby version(s) a gem supports?
<drbrain> yeah :(
<drbrain> samkottler: there's been required_ruby_version in the spec for some years now
<samkottler> drbrain: WAT
<samkottler> how did I never know about that
<drbrain> samkottler: :D
<samkottler> drbrain: thanks :)
<mpapis> drbrain, sorry for wasting your time, I had the Dir[] line in my memory and it never occurred to me to closely reread the code
<drbrain> samkottler: since it uses a requirement you can't say "1.8.7, 1.9.2, 1.9.3, 2.0.0 but not 1.9.1 or 1.9.0"
<drbrain> samkottler: since it suffers from the "no overlap" rule :/
<drbrain> mpapis: don't worry, no problem!
<samkottler> drbrain: yeah I might try fixing that
<samkottler> drbrain: it'd be nice for it to be range based
<drbrain> mpapis: rubygems is so big it's good to have discussions like this since I forget parts of it (like load_env_plugins) :D
<samkottler> i.e. ['1.8.7', '1.9.2 < 1.9.3']
<samkottler> meh, that's kinda ugly
* samkottler needs to thing about that more
<samkottler> think, even
<drbrain> samkottler: Gem::Requirement is a composite object
<drbrain> right now all the items in the composite object must match
<mpapis> drbrain, this means I need to rework the executables hook to use find_latest_files and add the gem to LOAD_PATH ... at least to make the plugins work in later stages in bundler - but that would not load the plugins for rubygems itself if I understood you correctly?
<samkottler> drbrain: gotcha
* samkottler grumbles
<drbrain> samkottler: yeah, for example: Gem::Requirement.new "~> 1.8.7" is the same as Gem::Requirement.new ">= 1.8.7", "< 1.8.8"
<samkottler> drbrain: right
<drbrain> (oh, and required_ruby_version matches Gem.ruby_version which includes the patch level)
<samkottler> which is actually fine for almost every case
<drbrain> mpapis: by default find_latest_files will look in loaded gems *and* $LOAD_PATH
<drbrain> mpapis: rubygems_plugin.rb files are special
<samkottler> drbrain: I gotta run, but I'll ttyl
<samkottler> thanks!
<drbrain> samkottler: later
<drbrain> at least, they're loaded special
<drbrain> mpapis: for your executable_plugins pull request there may be a simpler way
<mpapis> consider this in context of hookuing into bundler - I would add the gem that hooks into LOAD_PATH to make the rubygems installation plugin work
<drbrain> mpapis: sounds right
<drbrain> mpapis: but, I need to go to the store before my bus
<drbrain> so we'll need to finish this discussion later :(
<mpapis> no problem, I'm happy where it goes
<drbrain> alright, later!
<mpapis> later
jaimef has quit [Excess Flood]
jaimef has joined #rubygems
pipework has joined #rubygems
jaimef has quit [Quit: Emacs must have died]
jaimef has joined #rubygems
dvu has joined #rubygems
yerhot has joined #rubygems
yerhot has quit [Remote host closed the connection]
yerhot has joined #rubygems
pipework is now known as combatwombat
combatwombat is now known as Guest14949
Guest14949 is now known as pipework
dvu has quit [Remote host closed the connection]
cowboyd has joined #rubygems
yerhot has quit [Remote host closed the connection]
yerhot has joined #rubygems
dvu has joined #rubygems
dvu has quit [Ping timeout: 256 seconds]
fromonesrc has quit [Ping timeout: 268 seconds]
fromonesrc has joined #rubygems
fromonesrc has quit [Client Quit]
lsegal has joined #rubygems
jonahR_ has joined #rubygems
jonahR_ is now known as jonahR
jonahR has quit [Ping timeout: 264 seconds]
eugenejen has quit [Quit: eugenejen]
DanKnox is now known as DanKnox_away
huoxito has quit [Quit: Leaving]
pipework has quit [Remote host closed the connection]
dvu has joined #rubygems
dvu has quit [Ping timeout: 248 seconds]
yerhot has quit [Remote host closed the connection]
noyb has joined #rubygems
yerhot has joined #rubygems
yerhot has quit [Ping timeout: 264 seconds]
cowboyd has quit [Remote host closed the connection]
cowboyd has joined #rubygems
dvu has joined #rubygems
cowboyd has quit [Remote host closed the connection]
dvu has quit [Ping timeout: 260 seconds]
jstr has quit [Quit: Computer has gone to sleep.]
eugenejen has joined #rubygems
martinisoft has quit [Quit: martinisoft]
DanKnox_away is now known as DanKnox
Tjark has joined #rubygems
AlHafoudh has joined #rubygems
noyb has quit [Ping timeout: 276 seconds]
lsegal has quit [Quit: Quit: Quit: Quit: Stack Overflow.]
Tjark has quit [Quit: ZZZzzz…]
jstr has joined #rubygems
DanKnox is now known as DanKnox_away
Tjark has joined #rubygems
AlHafoudh has quit [Ping timeout: 248 seconds]
jonahR has joined #rubygems
jonahR has quit [Quit: jonahR]
Tjark has quit [Quit: ZZZzzz…]
paulca has joined #rubygems
tcopeland has quit [Ping timeout: 240 seconds]
Tjark has joined #rubygems
alex_io has joined #rubygems
alex_io has left #rubygems [#rubygems]
tbuehlmann has joined #rubygems
jstr has quit [Quit: Computer has gone to sleep.]
Tjark has quit [Quit: ZZZzzz…]
Tjark has joined #rubygems
yerhot has joined #rubygems
workmad3 has joined #rubygems
alex_io has joined #rubygems
yerhot has quit [Remote host closed the connection]
yerhot has joined #rubygems
tbuehlmann has quit [Remote host closed the connection]
yerhot has quit [Remote host closed the connection]
paulca has quit [Quit: paulca]
alex_io has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
pipework has joined #rubygems
pipework has quit [Remote host closed the connection]
stevenharman has joined #rubygems
yerhot has joined #rubygems
fromonesrc_ has joined #rubygems
fromonesrc_ has quit [Ping timeout: 256 seconds]
yerhot has quit [Remote host closed the connection]
yerhot has joined #rubygems
paulca has joined #rubygems
huoxito has joined #rubygems
stevenharman has quit [Quit: Linkinus - http://linkinus.com]
stevenharman has joined #rubygems
eugenejen has quit [Quit: eugenejen]
cowboyd has joined #rubygems
fromonesrc has joined #rubygems
cowboyd has quit [Remote host closed the connection]
cowboyd has joined #rubygems
marpaia has joined #rubygems
pipework has joined #rubygems
huoxito has quit [Quit: Leaving]
cowboyd has quit [Remote host closed the connection]
dvu has joined #rubygems
fromonesrc has quit [Ping timeout: 246 seconds]
tbuehlmann has joined #rubygems
eugenejen has joined #rubygems
fromonesrc has joined #rubygems
fromonesrc_ has joined #rubygems
fromonesrc has quit [Read error: Operation timed out]
workmad3 has quit [Ping timeout: 260 seconds]
whit537 has quit [Quit: whit537]
yerhot has quit [Remote host closed the connection]
yerhot has joined #rubygems
Tjark has quit [Ping timeout: 260 seconds]
ckrailo has joined #rubygems
cowboyd has joined #rubygems
ckrailo has quit [Read error: Connection reset by peer]
ckrailo has joined #rubygems
whit537 has joined #rubygems
tbuehlmann has quit [Remote host closed the connection]
havenwood has joined #rubygems
jfoy has joined #rubygems
yerhot has quit [Remote host closed the connection]
whit537 has quit [Read error: Connection reset by peer]
whit537 has joined #rubygems
whit537 has quit [Read error: Connection reset by peer]
whit537 has joined #rubygems
dvu has quit [Remote host closed the connection]
yerhot has joined #rubygems
huoxito has joined #rubygems
whit537 has quit [Quit: whit537]
niska` has quit [Ping timeout: 240 seconds]
niska has joined #rubygems
DanKnox_away is now known as DanKnox
whit537 has joined #rubygems
dvu has joined #rubygems
dvu has quit [Ping timeout: 246 seconds]
marpaia has quit [Quit: WeeChat 0.4.1]
marpaia has joined #rubygems
hakunin has quit [Remote host closed the connection]
hakunin has joined #rubygems
hakunin has quit [Ping timeout: 240 seconds]
paulca has quit [Quit: paulca]
workmad3 has joined #rubygems
hakunin has joined #rubygems
workmad3 has quit [Ping timeout: 246 seconds]
dvu has joined #rubygems
jonahR has joined #rubygems
yerhot has quit [Remote host closed the connection]
fromonesrc has joined #rubygems
fromonesrc_ has quit [Ping timeout: 246 seconds]
cowboyd has quit [Remote host closed the connection]
yerhot has joined #rubygems
fromonesrc has quit [Ping timeout: 240 seconds]
cowboyd has joined #rubygems
fromonesrc has joined #rubygems
huoxito has quit [Quit: Leaving]
zachrab has joined #rubygems
<zachrab> hey how do i go about contributing to rubygems?
<zachrab> got it cool
<zachrab> i meant in terms of the necessary github steps
<zachrab> ie forking cloning etc
<havenwood> zachrab: Fork the repo and make sure tests are passing with `rake`.
<havenwood> zachrab: Fork the repo, clone it locally, configure remotes: https://help.github.com/articles/fork-a-repo
<zachrab> havenwood going through that documenation right now!
<havenwood> zachrab: Then running the `rake` command from the rubygems/ directory will run the tests.
<zachrab> gotcha
<havenwood> zachrab: Install that version of RubyGems from the rubygems/ directory by running `ruby setup.rb`.
<zachrab> k
paulca has joined #rubygems
huoxito has joined #rubygems
<zachrab> havenwood so i fork cloned, and configure remotes
<zachrab> im running the tests by invoking rake
<zachrab> im getting some errors and not failures
<havenwood> zachrab: What version of Ruby?
<zachrab> ruby 1.9.3p286
<havenwood> yeah, i'm getting a few errors on head as well
<zachrab> k
<havenwood> just 8 of these: NoMethodError: undefined method `stub' for Time:Class
<zachrab> so after invoking rake and ruby setup.rb am i able to start contributing?
<havenwood> zachrab: Yes, you can create a branch, make and commit your changes, and submit a pull request.
<havenwood> zachrab: These are the open issues that have already been accepted: https://github.com/rubygems/rubygems/issues?labels=status+-+accepted&page=1&state=open
<havenwood> zachrab: There is always documentation to review!
cowboyd has quit [Remote host closed the connection]
bondar has joined #rubygems
bondar has quit [Excess Flood]
bondar has joined #rubygems
bondar has quit [Excess Flood]
bondar has joined #rubygems
bondar has quit [Excess Flood]
bondar has joined #rubygems
bondar has quit [Excess Flood]
bondar has joined #rubygems
<zachrab> havenwood: what do you theres always documentation to review?
bondar has joined #rubygems
bondar has quit [Excess Flood]
<havenwood> zachrab: I said that poorly, what i meant was that in addition to open issue tickets another nice thing to do is review the documentation and make sure it matches the code. Keep it up to date and error free.
bondar has joined #rubygems
bondar has quit [Excess Flood]
paulca has quit [Quit: paulca]
bondar has joined #rubygems
bondar has quit [Excess Flood]
mikewintermute has joined #rubygems
dvu has quit [Ping timeout: 246 seconds]
bondar has joined #rubygems
bondar has quit [Excess Flood]
fromonesrc has quit [Ping timeout: 276 seconds]
marpaia has quit [Quit: WeeChat 0.4.1]
fromonesrc has joined #rubygems
Tjark has joined #rubygems
havenwood has quit [Remote host closed the connection]
jfoy has quit [Quit: jfoy]
marpaia has joined #rubygems
fromonesrc has quit [Quit: fromonesrc]
mikewintermute has quit [Quit: mikewintermute]
jonahR has quit [Quit: jonahR]
Tjark has quit [Quit: ZZZzzz…]
marpaia has quit [Quit: WeeChat 0.4.1]
Tjark has joined #rubygems
whit537 has quit [Quit: whit537]
mikewintermute has joined #rubygems
mikewintermute has quit [Quit: mikewintermute]
mikewintermute has joined #rubygems
<drbrain> there's lots of stuff in RubyGems that isn't documented
<drbrain> rdoc -C lib shows RubyGems at only 68% documented
<drbrain> zachrab: also, you can go through the code climate smells list: https://codeclimate.com/github/rubygems/rubygems/smells
yerhot has quit [Remote host closed the connection]
<drbrain> zachrab: you can also look at the Future and Unfulfilled Promises and Broken Dreams milestones: https://github.com/rubygems/rubygems/issues/milestones
mikewintermute has quit [Client Quit]
<drbrain> actually, 67%
<drbrain> I'm breaking up SourcesCommand#execute right now
huoxito has quit [Quit: Leaving]
dvu has joined #rubygems
Tjark has quit [Quit: ZZZzzz…]
dvu has quit [Remote host closed the connection]
hakunin has quit [Remote host closed the connection]
hakunin has joined #rubygems
dvu has joined #rubygems
dvu has quit [Remote host closed the connection]
hakunin has quit [Ping timeout: 256 seconds]
paulca has joined #rubygems
dvu has joined #rubygems
jfoy_ has joined #rubygems
<zachrab> drbrain:is there a way to sort issues by difficulty level?
<zachrab> @drbrain:is there a way to sort issues by difficulty level?
<drbrain> zachrab: sorry, I haven't organized them by difficulty
<zachrab> k
<drbrain> (no need for the @, just "drbrain" will work)
<zachrab> k
<drbrain> give me a second and I'll pick out a handful that should be on the easier end
<drbrain> zachrab: #572 and #567 are related and of low (maybe) and medium difficulty, respectively
<drbrain> also #470
<zachrab> drbrain: thank you! this is my first time contributing to a project so you are helping immensely!
<drbrain> zachrab: the `gem list` command is implemented in lib/rubygems/commands/query_comamnd.rb
<drbrain> zachrab: the main difficulty will be from the ugliness in that file
<drbrain> but it does have an OK test suite
<zachrab> drbrain:this pertains to which issue?
<drbrain> all three
<zachrab> k
<zachrab> question-how do all these brilliant open source developers make a living?
<drbrain> heh
<drbrain> for a while I worked in my spare time
<zachrab> k
<drbrain> then I convinced people I should have work hours allocated
<drbrain> now I get paid to mostly do open source work
<zachrab> i see
<drbrain> a big part of it is finding something you really want to work on
<drbrain> or making a new thing that you really want to work on
<zachrab> i hear you on that if theres no passion theres no product
<drbrain> (honestly, RubyGems is pretty boring to work on, but at least there's plenty to do!)
<zachrab> haha
<zachrab> i wont tell anyone you said that!
<zachrab> what ruby project would you recommend a novice to contribute to?
<drbrain> surely you use many gems
<zachrab> yes
<drbrain> and surely one of those gems has given you a minor annoyance
<zachrab> gotcha
<drbrain> that is the project you should contribute to :D
<zachrab> gotcha
<drbrain> it's hard to say "you should work on X" because eventually all the easy problems in X will be fixed
<zachrab> right
<drbrain> not to say that you shouldn't contribute to RubyGems, of course, but I am compelled to answer in the most honest manner I know
<zachrab> i appreciate honesty ;)
<zachrab> does status-accepted mean someone is already working on it?
hakunin has joined #rubygems
<drbrain> status is just for triage purposes
<drbrain> so nobody is working on it
<zachrab> k
<drbrain> if it's assigned to someone that person might be working on it
<zachrab> k
<drbrain> … but probably not :D
<drbrain> and if it's in the Future or Unfulfilled Promises milestones, it's unlikely that someone is working on it
<drbrain> when new issues come in I triage them and put them in them in a numbered release milestone (like 2.1 or 2.2), Future or Unfulfilled Promises
<zachrab> im deciding which of the 3 issues u gave me to tackle
<drbrain> and usually set a status
<zachrab> k
<zachrab> trying 567
<drbrain> that's probably the most difficult of the issues I mentioned
<zachrab> ha
<zachrab> uhoh
<zachrab> so which one should i tackle?
<zachrab> whats the easiest?
<zachrab> i wanna start with the simplest one
<drbrain> I think 470 is the easiest
<zachrab> k
<zachrab> ill start with that
<drbrain> `gem list rake rails` is an easy way to reproduce
<zachrab> k
<drbrain> you can `ruby -Ilib bin/gem list rake rails` (or, of course, write tests)
<zachrab> k
<drbrain> you can find examples of its use elsewhere in lib/rubygems/commands/*_command.rb
<zachrab> k
<zachrab> what do they mean by user vs system installed gem
<zachrab> im reading the issue thread
<drbrain> oh, oops
<drbrain> I meant #572
<drbrain> I'm sorry
<zachrab> oh k
<drbrain> #470 is next easiest
<zachrab> k
<zachrab> ill switch to 572
<drbrain> for #470, Gem::Specification#default_gem? is what you'd check for
<zachrab> ill work on the 572
<zachrab> drbrain: so I see from your comment on havenwood
<zachrab> that you actually wont gemlist to handle any number of arugments is that correct?
weeb1e_ has quit [Ping timeout: 248 seconds]
<drbrain> zachrab: yes
<zachrab> k
<drbrain> you should be able to list as many as you like
<zachrab> got it
<drbrain> zachrab: but! `gem list --installed rake rails` should not be allowed
<zachrab> k
dvu has quit [Remote host closed the connection]
<drbrain> (and -I aka --no-installed)
<zachrab> any flag on gem list command
<zachrab> og it
<drbrain> that option is used by shell scripts so it's difficult to have a sensible exit value with multiple gems
<zachrab> *got it
<zachrab> k
weeb1e has joined #rubygems
<drbrain> nah, just for the --installed/--no-installed set of options
<drbrain> I think they set the :installed option to true/false
<zachrab> k
<drbrain> so if options[:installed] is not nil, multiple is OK
<zachrab> k
<drbrain> backwards
<drbrain> is nil, multiple OK
pipework has quit [Remote host closed the connection]
<zachrab> this code base is gigantic
<drbrain> rdoc is about twice as big
<zachrab> geez
<drbrain> without comments, just under 20,000 lines for rubygems, just under 40,000 for rdoc
<zachrab> wow
<drbrain> and 20% of the lines in RubyGems are for `gem` commands
<zachrab> ha
dvu has joined #rubygems
<zachrab> how do you test your changes?
<zachrab> how can i test my revised version of the project?
<drbrain> ruby -Ilib:test test/rubygems/test_gem_commands_query_command.rb
<drbrain> `rake` runs all the tests
<drbrain> which takes a bit longer
<zachrab> ok i dont mean run test
<zachrab> i mean i also like testing the library myself
<zachrab> ie invoking the command and making sure it functions properly
<drbrain> ruby -Ilib bin/gem list ...
<zachrab> what does -Ilib do? does this run the version on my machine?
<drbrain> yes
<drbrain> -I adds the directory to the load path ahead of everything else
<drbrain> -Ilib:test adds both the lib and test directories
<zachrab> k
<zachrab> why bin?
<drbrain> that's when the local `gem` lives
<drbrain> cat bin/gem
<drbrain> you can also ruby -Ilib -S gem list ...
<drbrain> -S says "find gem in $PATH"
<zachrab> k
<drbrain> `gem` hasn't changed in years, so either are fine
<zachrab> something that pisses me off why does git register a removal and addition of a white space line?
<zachrab> i have an unstaged commit that is simply that
<zachrab> how can i get rid of it?
<drbrain> is it at the end of the file?
<drbrain> or is it a change in trailing whitespace?
<drbrain> there's a flag to diff that ignores those
<zachrab> anyways how can i reverse any changes i made
<drbrain> for unstaged? git checkout
<zachrab> got it
<zachrab> sorry
paulca has quit [Quit: paulca]
<drbrain> (A git question I know the answer to!)
<zachrab> ha