prebundler 0.11.7 → 0.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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