00:05
bbrowning has quit [Remote host closed the connection]
00:05
bbrowning has joined #rubygems
00:06
bf4 has quit [Ping timeout: 264 seconds]
00:10
workmad3 has quit [Ping timeout: 260 seconds]
00:14
pglombardo has quit []
00:19
ZachBeta has joined #rubygems
00:19
ddd has joined #rubygems
00:32
arohner has quit [Remote host closed the connection]
00:33
arohner has joined #rubygems
00:35
huoxito has joined #rubygems
00:36
stevenharman has quit [Quit: Leaving...]
00:37
arohner has quit [Ping timeout: 252 seconds]
00:39
<
dwradcliffe >
samkottler: any progress over the weekend?
00:40
stevenharman has joined #rubygems
00:43
seanlinsley has joined #rubygems
00:51
antichatter has joined #rubygems
00:51
huoxito has quit [Remote host closed the connection]
00:54
ZachBeta has quit [Quit: Computer has gone to sleep.]
00:56
tjbiddle_ has joined #rubygems
00:56
tjbiddle has quit [Ping timeout: 272 seconds]
00:56
tjbiddle_ is now known as tjbiddle
01:03
seanlinsley has quit [Quit: seanlinsley]
01:04
seanlinsley has joined #rubygems
01:05
seanlinsley has quit [Client Quit]
01:05
tjbiddle has quit [Quit: tjbiddle]
01:06
seanlinsley has joined #rubygems
01:14
seanlinsley has quit [Quit: seanlinsley]
01:17
seanlinsley has joined #rubygems
01:32
stevenharman has quit [Quit: Leaving...]
01:32
sferik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
01:35
bbrowning has quit [Quit: Leaving]
01:40
huoxito has joined #rubygems
01:44
huoxito has quit [Ping timeout: 248 seconds]
01:51
baburdick has joined #rubygems
01:53
lsegal has joined #rubygems
02:00
arohner has joined #rubygems
02:01
stevenharman has joined #rubygems
02:05
huoxito has joined #rubygems
02:46
baburdick has quit [Quit: Leaving.]
02:53
baburdick has joined #rubygems
03:06
tjbiddle has joined #rubygems
03:06
josh-k has joined #rubygems
03:17
stevenharman has quit [Quit: Leaving...]
03:20
huoxito has quit [Remote host closed the connection]
03:37
baburdick has quit [Quit: Leaving.]
04:11
josh-k has quit [Remote host closed the connection]
04:20
baburdick has joined #rubygems
04:51
csaunders has quit [Ping timeout: 240 seconds]
04:51
csaunders has joined #rubygems
05:38
baburdick has quit [Quit: Leaving.]
05:39
deryl has quit [Quit: Leaving]
06:06
josh-k has joined #rubygems
06:25
arohner has quit [Read error: Connection reset by peer]
06:25
arohner has joined #rubygems
06:29
arohner has quit [Ping timeout: 250 seconds]
06:32
niska has quit [Ping timeout: 252 seconds]
06:35
niska has joined #rubygems
06:38
jonahR has quit [Quit: jonahR]
06:45
tjbiddle has quit [Quit: tjbiddle]
06:50
josh-k has quit [Remote host closed the connection]
06:51
josh-k has joined #rubygems
06:55
josh-k has quit [Ping timeout: 245 seconds]
07:10
arohner has joined #rubygems
07:12
josh-k has joined #rubygems
07:39
arohner has quit [Remote host closed the connection]
07:39
arohner has joined #rubygems
07:42
kanobe has quit [Ping timeout: 246 seconds]
07:42
alindeman has quit [Ping timeout: 240 seconds]
07:44
arohner has quit [Remote host closed the connection]
07:44
alindeman has joined #rubygems
08:16
alindeman has quit [Ping timeout: 240 seconds]
08:18
alindeman has joined #rubygems
08:49
kanobe has joined #rubygems
09:04
tbuehlmann has joined #rubygems
09:15
jordia65 has joined #rubygems
09:18
alindeman has quit [Ping timeout: 240 seconds]
09:20
le_gars has joined #rubygems
09:21
alindeman has joined #rubygems
09:22
Elhu has joined #rubygems
09:32
le_gars has quit [Remote host closed the connection]
09:33
le_gars has joined #rubygems
09:37
le_gars has quit [Ping timeout: 252 seconds]
09:44
alindeman has quit [Ping timeout: 240 seconds]
09:48
alindeman has joined #rubygems
10:06
lsegal has quit [Quit: Quit: Quit: Quit: Stack Overflow.]
10:13
workmad3 has joined #rubygems
10:18
graphex has quit [Ping timeout: 248 seconds]
10:21
graphex has joined #rubygems
10:27
graphex has quit [Ping timeout: 248 seconds]
10:35
graphex has joined #rubygems
10:44
graphex has quit [Ping timeout: 248 seconds]
10:47
graphex has joined #rubygems
10:51
graphex has quit [Ping timeout: 248 seconds]
10:55
graphex has joined #rubygems
10:58
closer has quit [Ping timeout: 256 seconds]
11:00
graphex has quit [Ping timeout: 248 seconds]
11:00
closer has joined #rubygems
11:16
huoxito has joined #rubygems
11:18
alindeman has quit [Ping timeout: 240 seconds]
11:18
graphex has joined #rubygems
11:20
alindeman has joined #rubygems
11:24
graphex has quit [Ping timeout: 248 seconds]
11:28
graphex has joined #rubygems
11:33
graphex has quit [Ping timeout: 248 seconds]
11:40
jordia65 has quit [Remote host closed the connection]
11:40
graphex has joined #rubygems
11:41
jordia65 has joined #rubygems
11:41
jordia65 has quit [Remote host closed the connection]
11:42
jordia65 has joined #rubygems
11:56
graphex has quit [Ping timeout: 248 seconds]
12:01
graphex has joined #rubygems
12:12
graphex has quit [Read error: Connection reset by peer]
12:26
alindeman has quit [Ping timeout: 240 seconds]
12:29
alindeman has joined #rubygems
12:31
workmad3 is now known as wm3|lunch
12:33
Elhu has quit [Quit: Computer has gone to sleep.]
12:43
redmenace has quit [Ping timeout: 252 seconds]
12:44
redmenace has joined #rubygems
12:48
Elhu has joined #rubygems
13:01
huoxito has quit [Remote host closed the connection]
13:02
huoxito has joined #rubygems
13:26
wm3|lunch is now known as workmad3
13:26
bbrowning has joined #rubygems
13:29
stevenharman has joined #rubygems
13:36
stevenharman has quit [Quit: Leaving...]
13:56
josh-k has quit [Ping timeout: 248 seconds]
13:56
josh-k has joined #rubygems
14:09
josh-k_ has joined #rubygems
14:13
josh-k has quit [Ping timeout: 264 seconds]
14:50
ZachBeta has joined #rubygems
14:51
Authenticator has quit [Ping timeout: 272 seconds]
14:51
Authenticator has joined #rubygems
15:04
josh-k_ has quit [Remote host closed the connection]
15:08
bf4 has joined #rubygems
15:19
shtirlic has joined #rubygems
15:26
alindeman has quit [Ping timeout: 240 seconds]
15:27
alindeman has joined #rubygems
15:29
seanlinsley has quit [Quit: seanlinsley]
15:33
shtirlic has quit [Ping timeout: 240 seconds]
15:33
shtirlic has joined #rubygems
15:36
baburdick has joined #rubygems
15:37
graphex has joined #rubygems
15:47
graphex has joined #rubygems
16:02
Elhu has quit [Quit: Computer has gone to sleep.]
16:05
seanlinsley has joined #rubygems
16:08
huoxito has quit [Remote host closed the connection]
16:16
Elhu has joined #rubygems
16:40
jonahR has joined #rubygems
16:54
havenwood has joined #rubygems
16:56
seanlinsley has quit [Quit: seanlinsley]
16:58
seanlinsley has joined #rubygems
17:05
alindeman has quit [Ping timeout: 240 seconds]
17:05
kalleth has joined #rubygems
17:07
alindeman has joined #rubygems
17:33
alindeman has quit [Ping timeout: 240 seconds]
17:36
alindeman has joined #rubygems
17:39
arohner has joined #rubygems
17:46
lmarburger has quit [Ping timeout: 272 seconds]
17:47
Elhu has quit [Quit: Computer has gone to sleep.]
17:48
mjc_ has joined #rubygems
17:48
Elhu has joined #rubygems
17:48
indirect has quit [Ping timeout: 252 seconds]
17:55
lmarburger has joined #rubygems
17:55
lmarburger is now known as lmarburge
17:55
indirect has joined #rubygems
17:56
lmarburge is now known as lmarburger
18:01
baburdick has quit [Quit: Leaving.]
18:05
ZachBeta has quit [Quit: Computer has gone to sleep.]
18:07
workmad3 is now known as wm3|away
18:07
jfelchner has quit [Read error: Connection reset by peer]
18:10
huoxito has joined #rubygems
18:11
jfelchner has joined #rubygems
18:15
alindeman has quit [Ping timeout: 240 seconds]
18:17
alindeman has joined #rubygems
18:18
arohner has quit [Remote host closed the connection]
18:24
jeremydei has left #rubygems ["WeeChat 0.4.1"]
18:34
_whitelogger has joined #rubygems
18:41
arohner has joined #rubygems
18:43
alindeman has quit [Ping timeout: 240 seconds]
18:46
alindeman has joined #rubygems
18:46
Elhu has joined #rubygems
18:47
arohner has quit [Remote host closed the connection]
18:48
arohner has joined #rubygems
18:48
arohner has quit [Remote host closed the connection]
18:52
Elhu has quit [Ping timeout: 240 seconds]
18:52
tjbiddle has joined #rubygems
18:58
Elhu has joined #rubygems
18:59
alindeman has quit [Ping timeout: 240 seconds]
19:01
bf4 has quit [Ping timeout: 246 seconds]
19:01
alindeman has joined #rubygems
19:02
baburdick has joined #rubygems
19:05
stevenharman has joined #rubygems
19:06
arohner has joined #rubygems
19:09
baburdick has quit [Ping timeout: 264 seconds]
19:11
ZachBeta has joined #rubygems
19:11
baburdick has joined #rubygems
19:15
alindeman has quit [Ping timeout: 240 seconds]
19:17
alindeman has joined #rubygems
19:21
jfelchner has quit [Quit: zzzzzzzzzzzzz………]
19:23
bf4 has joined #rubygems
19:29
havenn has joined #rubygems
19:29
havenn has quit [Read error: Connection reset by peer]
19:30
havenwood has quit [Ping timeout: 250 seconds]
19:31
havenwood has joined #rubygems
19:37
priyam_ has left #rubygems [#rubygems]
19:53
josh-k has joined #rubygems
19:56
jfelchner has joined #rubygems
19:57
alindeman has quit [Ping timeout: 240 seconds]
20:00
alindeman has joined #rubygems
20:00
jfelchner has quit [Ping timeout: 245 seconds]
20:01
havenwood has quit [Read error: Connection reset by peer]
20:02
jfelchner has joined #rubygems
20:15
jordia65 has left #rubygems [#rubygems]
20:16
arohner has quit [Remote host closed the connection]
20:16
arohner has joined #rubygems
20:21
arohner has quit [Ping timeout: 264 seconds]
20:32
jfelchner has quit [Quit: zzzzzzzzzzzzz………]
20:35
huoxito has quit [Remote host closed the connection]
20:36
jfelchner has joined #rubygems
20:46
huoxito has joined #rubygems
20:53
jfelchner has quit [Quit: zzzzzzzzzzzzz………]
20:56
arohner has joined #rubygems
21:01
arohner has quit [Remote host closed the connection]
21:01
arohner has joined #rubygems
21:13
Elhu has quit [Quit: Computer has gone to sleep.]
21:24
Elhu has joined #rubygems
21:32
popugaeva has joined #rubygems
21:35
Elhu has quit [Quit: Computer has gone to sleep.]
21:39
popugaeva has quit [K-Lined]
21:41
Elhu has joined #rubygems
21:42
tbuehlmann has quit [Remote host closed the connection]
21:46
alindeman has quit [Ping timeout: 240 seconds]
21:48
alindeman has joined #rubygems
21:53
jfelchner has joined #rubygems
22:05
Elhu has quit [Quit: Computer has gone to sleep.]
22:09
bbrowning is now known as bbrowning_away
22:12
wm3|away has quit [Ping timeout: 246 seconds]
22:27
Elhu has joined #rubygems
22:29
huoxito has quit [Remote host closed the connection]
22:39
<
indirect >
drbrain: ping?
22:40
<
drbrain >
indirect: hello
22:40
<
indirect >
rubygems isn't honoring bundler disabling dependency resolution
22:40
<
indirect >
and it is slowing things down by 2-4x
22:40
<
indirect >
which is rather unpleasant
22:40
<
drbrain >
for install or activation?
22:41
<
indirect >
for install
22:43
<
indirect >
and we directly instantiate GemInstaller
22:43
<
drbrain >
what does bundler use to install gems?
22:43
<
indirect >
we don't use DependencyInstaller
22:43
<
drbrain >
I thought it was Gem::Installer
22:43
<
indirect >
module Bundler
22:43
<
indirect >
class GemInstaller < Gem::Installer
22:43
<
indirect >
that is how we install gems
22:43
<
indirect >
4x slowdown
22:43
<
indirect >
from that commit
22:44
<
indirect >
specifically, we call Bundler::GemInstaller.new(path, options_hash).install
22:44
<
indirect >
some insight into how that slowdown is possible would be great
22:45
<
indirect >
because it affects all bundlers on rubygems 2.1+, including ruby 2.1
22:45
<
indirect >
and I would like to not be 4x slower at installing when ruby 2.1 is released :/
22:49
ZachBeta has quit [Quit: Computer has gone to sleep.]
22:49
tjbiddle_ has joined #rubygems
22:50
tjbiddle has quit [Ping timeout: 252 seconds]
22:50
tjbiddle_ is now known as tjbiddle
22:52
bbrowning_away is now known as bbrowning
22:52
<
drbrain >
indirect: offhand, I don't see how this commit changed the install speed
22:52
<
indirect >
drbrain: me either!
22:52
<
indirect >
I just git bisected it :(
22:53
Elhu has quit [Quit: Computer has gone to sleep.]
22:53
<
drbrain >
what do I need to do to get this spec to run?
22:53
<
indirect >
rake spec:deps
22:53
<
indirect >
RUBYOPT="-I /Users/andre/src/rubygems/rubygems/lib" rspec spec --profile -- spec/install/path_spec.rb:17
22:53
<
indirect >
that's it
22:54
<
indirect >
the other thing that spec does is build a gem
22:54
<
indirect >
but every spec builds tons of gems
22:54
<
indirect >
so I am very unsure how that could be it
22:54
<
drbrain >
indirect: oh, I get hung up on the "duplicate dependencies" validation
22:55
<
drbrain >
let me go back in time
22:55
<
indirect >
oh, yeah
22:55
<
indirect >
I tested against that actually commit
22:55
<
indirect >
and it's parent
22:55
<
indirect >
there is a fix for the dup deps in the 1-5-stable branch
22:55
<
indirect >
if you need it
22:55
<
drbrain >
I'm on bundler master
22:55
<
indirect >
I bisected from v2.0.0 to v2.1.0
22:55
<
indirect >
using bundler master
22:55
<
indirect >
and git said it was that commit
22:55
<
indirect >
the times were super stable
22:56
<
drbrain >
ok, with 1-5-stable I see 3.78s
22:56
<
indirect >
0.8s vs 2.5-3.5s
22:56
<
indirect >
before and after that commit
22:57
<
drbrain >
I get 2.86s for 964b2bc (parent of bce1822)
22:57
<
drbrain >
I'm seeing no significant difference between these two commits
22:58
<
drbrain >
maybe my -I is wrong
22:59
<
drbrain >
must have been
23:01
<
indirect >
yeah, it's very dramatic
23:04
<
drbrain >
something is happening with the options
23:04
<
drbrain >
I see ignore_dependencies: true arriving in Gem::Installer#new
23:04
<
drbrain >
but it's gone for process_options
23:04
<
indirect >
that seems bad
23:05
seanlinsley has quit [Quit: seanlinsley]
23:09
<
drbrain >
what's extra disconcerting is I added `raise @options.inspect` to Gem::Installer#initialize, but the spec does not show that as the raised exception
23:09
<
drbrain >
is bundler handling that exception somehow?
23:10
<
drbrain >
hrm, looks like process_options isn't at fault
23:11
<
drbrain >
for 964b2bc (parent) if I raise options.inspect after the require in Gem::Installer#initialize I get:
23:11
zzak has joined #rubygems
23:11
bf4 has quit [Ping timeout: 250 seconds]
23:11
<
drbrain >
{:bin_dir=>nil, :development=>nil, :env_shebang=>false, :force=>false, :format_executable=>false, :ignore_dependencies=>true, :install_dir=>"/Users/drbrain/Work/git/bundler/tmp/gems/system", :security_policy=>nil, :user_install=>nil, :wrappers=>true, :build_args=>nil}
23:11
<
drbrain >
for bce1822 if I do the same I get:
23:11
<
drbrain >
{:install_dir=>"/Users/drbrain/Work/git/bundler/tmp/gems/system", :only_install_dir=>true}
23:14
<
zzak >
do we have tickets?
23:15
<
drbrain >
tickets for what?
23:15
<
zzak >
naruse is waiting on rc until we can fix this stuff
23:16
<
drbrain >
zzak: ↑ this stuff?
23:16
<
drbrain >
i.e. the bundler slowness?
23:17
<
zzak >
is there a bug in options too?
23:17
<
drbrain >
there's no bug in options on rubygems' side that I can see
23:17
<
drbrain >
I don't think that RC needs to be delayed for this issue since RubyGems 2.1 also has the same bug
23:19
<
indirect >
zzak: drbrain: so 2.1 will ship with the slow, unfixed version? :(
23:19
<
indirect >
or you plan to fix it between rc and final?
23:19
<
drbrain >
indirect: ↑ fix between RC and final
23:19
<
indirect >
thanks for looking at it
23:20
<
drbrain >
indirect: can you look at the bundler side and figure out why it isn't passing down ignore_dependencies: true ?
23:20
<
drbrain >
or any of the options?
23:20
<
zzak >
drbrain: #9250
23:20
<
drbrain >
indirect: I will apply bce1822 in parts to see which diff chunk(s) cause the slowdown
23:20
<
indirect >
how is that possible?
23:21
<
zzak >
drbrain: you mean < 1 week? :/
23:21
<
drbrain >
zzak: 9250 is marked closed?
23:21
<
drbrain >
indirect: if I `raise` inside Gem::Installer.new, that doesn't show up as a proper exception in the spec which is very troubling to me
23:21
<
zzak >
drbrain: was it merged upstream?
23:22
<
drbrain >
zzak: yes
23:22
<
indirect >
drbrain: the bundler spec doesn't run the code
23:22
<
indirect >
it uses Open3 to run `bundle install`
23:22
<
indirect >
and collects the output
23:22
<
indirect >
you will not see a raised exception
23:22
<
indirect >
this is an integration test
23:22
<
indirect >
I don't have a unit test that easily exhibits the exact same behaviour
23:23
<
drbrain >
zzak: AFAICT, rubygems is ready to go for RC
23:24
<
drbrain >
indirect: thanks
23:27
<
drbrain >
indirect: it's bundler's bug
23:27
<
drbrain >
this is going through Bundler::Source::Path::Installer
23:27
<
drbrain >
which overrides #initialize but does not super
23:28
<
drbrain >
well, in part is bundler's bug
23:28
josh-k has quit [Remote host closed the connection]
23:29
<
indirect >
not sure if super()ing will break everything
23:29
<
indirect >
but I am happy to patch as is helpful :P
23:30
<
drbrain >
I think super() for Path::Installer is wrong
23:30
<
drbrain >
but you probably want to process_options in there
23:31
<
indirect >
drbrain: calling super() does not help, yeah
23:32
<
drbrain >
there's no .gem for a Path gem, so Gem::Package.new will fail
23:32
<
drbrain >
(in Gem::Installer#initialize)
23:32
<
indirect >
drbrain: process_options(options) does not help either
23:32
<
drbrain >
@options = options; process_options, I think
23:32
<
drbrain >
but I don't think that's going to fix our speed problem anyhow
23:33
<
indirect >
yeah, that doesn't solve the speed problem :/
23:37
<
drbrain >
indirect: haha
23:37
<
drbrain >
indirect: I think the problem is require
23:37
<
indirect >
ahh, interesting
23:37
<
drbrain >
+require 'rubygems/dependency_resolver'
23:37
<
drbrain >
+require 'rubygems/dependency_resolver/installer_set'
23:38
<
drbrain >
I think adding those two requires causes lots more files to get loaded
23:38
<
drbrain >
I had noticed this last week and shuffled some things around on master
23:38
<
indirect >
interesting
23:38
<
indirect >
but master is just as slow
23:38
<
drbrain >
but maybe it was insufficient?
23:38
<
drbrain >
I was all "why does this take so long now?"… "oh, requiring files I'm not using"
23:38
havenwood has joined #rubygems
23:38
<
drbrain >
let me check
23:39
<
indirect >
yeah, I just checked rg master against 1-5-stable
23:39
<
indirect >
and it's still slow
23:39
<
drbrain >
maybe I didn't get them all?
23:40
<
indirect >
drbrain: it's actually worse on rg master
23:41
<
drbrain >
hrm, my theory seems wrong
23:41
<
drbrain >
adding just the requires shows no difference
23:42
<
indirect >
1.1s vs 7s on master :(
23:43
<
drbrain >
hrm, somebody is executing Gem::DependencyInstaller#install
23:45
<
drbrain >
bundler is using Gem::DependencyInstaller via `gem`:
23:47
seanlinsley has joined #rubygems
23:48
<
drbrain >
indirect: spec/support/builders.rb:616
23:48
<
drbrain >
so maybe this is only a spec bug?
23:49
<
drbrain >
and, any idea why this doesn't use Gem::Installer directly here?
23:49
<
indirect >
what is using `gem`?
23:49
<
drbrain >
the bundler spec helpers are
23:50
<
indirect >
gem_command :install, "--no-rdoc --no-ri --ignore-dependencies #{path}"
23:50
<
indirect >
you mean that?
23:51
<
indirect >
oh I see
23:51
<
indirect >
that also passes --ignore-dependencies
23:51
<
indirect >
iirc we use gem install because we're trying to create an integration test that references system gems
23:51
<
indirect >
which are installed via `gem install`
23:52
<
indirect >
if we are passing --ignore-dependencies every place we call `gem install`, why is it slower?
23:52
<
drbrain >
I will continue to investigate, but in the mean time:
23:52
<
drbrain >
using Gem::Installer is a 75% speedup
23:53
<
indirect >
super strange
23:53
<
indirect >
that is also very surprising
23:53
<
drbrain >
I don't know if it will break other specs though
23:53
<
indirect >
I would not have expected going through the gem binary to slow things down by so much
23:53
<
drbrain >
it shouldn't because `gem install` and Gem::Installer.new().install look at GEM_HOME just the same
23:54
<
drbrain >
reloading all that code takes a good while
23:54
<
indirect >
I guess the problem is that I didn't realize how big rubygems is :P
23:54
<
drbrain >
I think just loading DependencyInstaller, even if dependencies are ignored, takes a while
23:54
<
indirect >
that is unfortunate
23:55
<
drbrain >
autoload might help
23:55
<
indirect >
do --no-ri and --no-rdoc also need to be passed in to Gem::Installer?
23:55
<
drbrain >
no, that's happens from DependencyInstaller
23:55
<
indirect >
ah, okay
23:55
stevenharman has quit [Quit: Leaving...]
23:58
stevenharman has joined #rubygems
23:59
<
drbrain >
compared to rubygems 2.0.0, looks like master does the resolution even with --ignore-dependencies