prebundler 0.11.7 → 0.11.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3aede9a82a409f6be7544d071dc88d550eca1d958eab7b45cdd77d40c4dbd02
4
- data.tar.gz: 12e5d87c3ae82b1843c2012be18cb1e5c0c0b123ce15578df4c382968b045f94
3
+ metadata.gz: 2b7bea8849dcfbf9020cff5c2c1b9b680cf791db9d2c9b8f3281433001e33bb2
4
+ data.tar.gz: 121f2dc97ae36b8fa7da226bb87de592597b7dfcd97f3a26b90e3c85e2270ad1
5
5
  SHA512:
6
- metadata.gz: 53c6230c94e22514c3001ed18ca32f74cb627e6ff981004665bc1ca36e6554d2293b442dd0bef7a28fa00a59d7e0caba3498db58460df699cde50c320ce071d4
7
- data.tar.gz: df51e8ab2d6927d91481c4232599f1de1b68ed234247ba9b2e5714189072b1bde36bcc4751ebaf825f5661f5f74c302f7d3d8f8e6ede13c4deb8eeb202215b00
6
+ metadata.gz: 20fd4208dbef759aa79fc2c98364073fe02a58d277eecb8f27192b7c1ac112cd6112d8b381b77f4d31c2225cbbff91bd96322f360d7708d060e8d5d62b1272fc
7
+ data.tar.gz: 3d5d817a64373717bab3e2e40ae46db92d1e20d05cd637c5efbbd41fe27404214ac0bb034c3fb76cca16592220680b0f7810122f7ba52258482916828c5281e0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ 0.11.8
2
+ ===
3
+ - Don't store gems in the backend if they failed to install.
4
+ - Use an absolute bundle path.
5
+ - Only consider a gem from the lockfile if it matches the current platform.
6
+ - Fix `#install` methods so they all return true/false.
7
+
1
8
  0.11.7
2
9
  ===
3
10
  - Fix bug causing platform-specific gems to be installed from source even if they were already present in the backend.
@@ -102,8 +102,12 @@ module Prebundler
102
102
  FileUtils.rm(dest_file)
103
103
  else
104
104
  out.puts "Installing #{gem_ref.id} from source"
105
- gem_ref.install
106
- store_gem(gem_ref, dest_file) if gem_ref.storable?
105
+
106
+ if gem_ref.install
107
+ store_gem(gem_ref, dest_file) if gem_ref.storable?
108
+ else
109
+ out.puts "Failed to install #{gem_ref.id} from source"
110
+ end
107
111
  end
108
112
  end
109
113
 
@@ -179,7 +183,7 @@ module Prebundler
179
183
  end
180
184
 
181
185
  def bundle_path
182
- options.fetch(:'bundle-path')
186
+ File.expand_path(options.fetch(:'bundle-path'))
183
187
  end
184
188
 
185
189
  def config
@@ -48,11 +48,19 @@ module Prebundler
48
48
  end
49
49
 
50
50
  def install
51
+ # NOTE: the --platform argument doesn't work when --ignore-dependencies
52
+ # is specified, no idea why
51
53
  Bundler.with_unbundled_env do
52
- system({ "GEM_HOME" => bundle_path }, "gem install -N --ignore-dependencies --source #{source} #{name} -v #{version}")
54
+ system(
55
+ { "GEM_HOME" => bundle_path },
56
+ 'gem install -N --ignore-dependencies '\
57
+ "--source #{source} #{name} "\
58
+ "--version #{version} "\
59
+ "--platform #{Bundler.local_platform.to_s}"
60
+ )
53
61
  end
54
62
 
55
- $?.exitstatus
63
+ $?.exitstatus == 0
56
64
  end
57
65
 
58
66
  def install_from_tar(tar_file)
@@ -17,8 +17,11 @@ module Prebundler
17
17
  instance_eval(File.read(gemfile_path))
18
18
 
19
19
  lockfile = Bundler::LockfileParser.new(File.read("#{gemfile_path}.lock"))
20
+ local_platform = Bundler.local_platform.to_s
20
21
 
21
22
  lockfile.specs.each do |spec|
23
+ next if spec.platform != 'ruby' && spec.platform.to_s != local_platform
24
+
22
25
  gems[spec.name] ||= GemRef.create(spec.name, bundle_path, options)
23
26
  gems[spec.name].spec = spec
24
27
  gems[spec.name].dependencies = spec.dependencies.map(&:name)
@@ -22,15 +22,15 @@ module Prebundler
22
22
  FileUtils.mkdir_p(install_path)
23
23
  FileUtils.mkdir_p(cache_path)
24
24
 
25
- return if File.exist?(cache_dir) || File.exist?(install_dir)
25
+ return true if File.exist?(cache_dir) || File.exist?(install_dir)
26
26
  system "git clone #{uri} \"#{cache_dir}\" --bare --no-hardlinks --quiet"
27
- return $? if $?.exitstatus != 0
27
+ return false if $?.exitstatus != 0
28
28
  system "git clone --no-checkout --quiet \"#{cache_dir}\" \"#{install_dir}\""
29
- return $? if $?.exitstatus != 0
29
+ return false if $?.exitstatus != 0
30
30
  Dir.chdir(install_dir) { system "git reset --hard --quiet #{revision}" }
31
31
  serialize_gemspecs
32
32
  copy_gemspecs
33
- $?
33
+ $?.exitstatus == 0
34
34
  end
35
35
 
36
36
  def to_gem
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Prebundler
4
- VERSION = '0.11.7'
4
+ VERSION = '0.11.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prebundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.7
4
+ version: 0.11.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-15 00:00:00.000000000 Z
11
+ date: 2021-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler