rake-compiler-dock 1.5.0.rc1 → 1.5.0

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: 6f765f12eb034508f4cbca5f234f0852f1a925a1a89b38c1dcab6b8c9d4fb92a
4
- data.tar.gz: 8d1bbd234539397e97f4fb18ccc8389dd40b670af98b32a43e92130126abd90c
3
+ metadata.gz: ecf9523e93d97a66f6dd1fe7155fba58309e260e43cec95193d2a2547cb43bb4
4
+ data.tar.gz: 5c6298e90e0612236e72bae47cb03b57c50ee7fe2222428a712fa800d5e393e1
5
5
  SHA512:
6
- metadata.gz: 5df99283129dd3108cfb19f857172cc82dd8d34babcb0de7db16c756164d733a677a781d28045c5f84fe06583695a9f118fe59c7318394b181df916aad59f2a4
7
- data.tar.gz: c26c5208235868f099f8cc56ab859769735ca11cb648f4cb004ad716918f194d3c5bd36fb4b653eed2c0b011ce98b7c83f628e59c22ff58902f81f6b41d5f8dd
6
+ metadata.gz: 8e66bf4925c3596be41032a7ffa833db592406124ae89b4fcccdfc8d4d08d8ba9c9fc85286b252030ca859dfb1f6c93dc1cf2e5524d00b46ef98c4f2e5b22c78
7
+ data.tar.gz: 9dd9782cfe62ffdefe57cfe2ba5384d7573d03eed4fa938c61d04ab32d6ff20bbf3ff4d4b50f6282f98ddeac1f791fffecec288151190e639e1fb7f830dbff5c
@@ -21,7 +21,7 @@ jobs:
21
21
  name: build source
22
22
  runs-on: ubuntu-latest
23
23
  steps:
24
- - uses: actions/checkout@v3
24
+ - uses: actions/checkout@v4
25
25
  - uses: ruby/setup-ruby@v1
26
26
  with:
27
27
  ruby-version: "3.3"
@@ -34,7 +34,7 @@ jobs:
34
34
  bundle exec rake gem
35
35
 
36
36
  - name: Upload source gem
37
- uses: actions/upload-artifact@v3
37
+ uses: actions/upload-artifact@v4
38
38
  with:
39
39
  name: gem-ruby
40
40
  path: test/rcd_test/pkg/rcd_test-?.?.?.gem # e.g. rcd_test-1.0.0.gem
@@ -67,14 +67,14 @@ jobs:
67
67
  - platform: x86_64-linux-musl
68
68
  runs-on: ubuntu-latest
69
69
  steps:
70
- - uses: actions/checkout@v3
70
+ - uses: actions/checkout@v4
71
71
  - uses: ruby/setup-ruby@v1
72
72
  with:
73
73
  ruby-version: "3.3"
74
74
  bundler-cache: true
75
75
 
76
76
  - name: Fetch docker buildx layer cache
77
- uses: actions/cache@v3
77
+ uses: actions/cache@v4
78
78
  with:
79
79
  path: tmp/build-cache
80
80
  key: ${{ runner.os }}-${{ matrix.platform }}-buildx-${{ github.sha }}
@@ -100,7 +100,7 @@ jobs:
100
100
  bundle exec rake gem:${{ matrix.platform }}
101
101
 
102
102
  - name: Upload native gem
103
- uses: actions/upload-artifact@v3
103
+ uses: actions/upload-artifact@v4
104
104
  with:
105
105
  name: gem-${{ matrix.platform }}
106
106
  path: test/rcd_test/pkg/*-*-*.gem
@@ -117,7 +117,7 @@ jobs:
117
117
 
118
118
  - if: matrix.static
119
119
  name: Upload static native gem
120
- uses: actions/upload-artifact@v3
120
+ uses: actions/upload-artifact@v4
121
121
  with:
122
122
  name: gem-${{ matrix.platform }}-static
123
123
  path: test/rcd_test/pkg/*-*-*.gem
@@ -132,7 +132,7 @@ jobs:
132
132
 
133
133
  - if: matrix.alias
134
134
  name: Upload native gem ${{ matrix.alias }}
135
- uses: actions/upload-artifact@v3
135
+ uses: actions/upload-artifact@v4
136
136
  with:
137
137
  name: gem-${{ matrix.alias }}
138
138
  path: test/rcd_test/pkg/*-*-*.gem
@@ -147,12 +147,12 @@ jobs:
147
147
  ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
148
148
  runs-on: ${{ matrix.os }}-latest
149
149
  steps:
150
- - uses: actions/checkout@v3
150
+ - uses: actions/checkout@v4
151
151
  - uses: ruby/setup-ruby@v1
152
152
  with:
153
153
  ruby-version: ${{ matrix.ruby }}
154
154
  - name: Download source gem
155
- uses: actions/download-artifact@v3
155
+ uses: actions/download-artifact@v4
156
156
  with:
157
157
  name: gem-ruby
158
158
  - name: Test source gem
@@ -178,12 +178,12 @@ jobs:
178
178
  - { ruby: "2.4", rubygems: "3.3.26" }
179
179
  runs-on: ubuntu-latest
180
180
  steps:
181
- - uses: actions/checkout@v3
181
+ - uses: actions/checkout@v4
182
182
  - uses: ruby/setup-ruby@v1
183
183
  with:
184
184
  ruby-version: ${{ matrix.ruby }}
185
185
  - name: Download gem-${{ matrix.platform }}
186
- uses: actions/download-artifact@v3
186
+ uses: actions/download-artifact@v4
187
187
  with:
188
188
  name: gem-${{ matrix.platform }}
189
189
  - name: Test gem-${{ matrix.platform }}
@@ -237,9 +237,9 @@ jobs:
237
237
  - { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
238
238
  runs-on: ubuntu-latest
239
239
  steps:
240
- - uses: actions/checkout@v3
240
+ - uses: actions/checkout@v4
241
241
  - name: Download gem-${{ matrix.platform }}
242
- uses: actions/download-artifact@v3
242
+ uses: actions/download-artifact@v4
243
243
  with:
244
244
  name: gem-${{ matrix.platform }}
245
245
  - name: Run tests
@@ -295,7 +295,7 @@ jobs:
295
295
  platform: x64-mingw-ucrt
296
296
  runs-on: ${{ matrix.os }}-latest
297
297
  steps:
298
- - uses: actions/checkout@v3
298
+ - uses: actions/checkout@v4
299
299
  - uses: ruby/setup-ruby@v1
300
300
  with:
301
301
  ruby-version: ${{ matrix.ruby }}
@@ -304,7 +304,7 @@ jobs:
304
304
  ruby --version
305
305
  gem env
306
306
  - name: Download gem-${{ matrix.platform }}
307
- uses: actions/download-artifact@v3
307
+ uses: actions/download-artifact@v4
308
308
  with:
309
309
  name: gem-${{ matrix.platform }}
310
310
  - name: Test gem-${{ matrix.platform }}
@@ -347,7 +347,7 @@ jobs:
347
347
  platform: x64-mingw-ucrt
348
348
  runs-on: ${{ matrix.os }}-latest
349
349
  steps:
350
- - uses: actions/checkout@v3
350
+ - uses: actions/checkout@v4
351
351
  - uses: ruby/setup-ruby@v1
352
352
  with:
353
353
  ruby-version: ${{ matrix.ruby }}
@@ -356,7 +356,7 @@ jobs:
356
356
  ruby --version
357
357
  gem env
358
358
  - name: Download gem-${{ matrix.platform }}-static
359
- uses: actions/download-artifact@v3
359
+ uses: actions/download-artifact@v4
360
360
  with:
361
361
  name: gem-${{ matrix.platform }}-static
362
362
  - name: Test gem-${{ matrix.platform }}-static
@@ -393,9 +393,9 @@ jobs:
393
393
  dockerfile: alpine
394
394
  runs-on: ubuntu-latest
395
395
  steps:
396
- - uses: actions/checkout@v3
396
+ - uses: actions/checkout@v4
397
397
  - name: Download gem-${{ matrix.platform }}
398
- uses: actions/download-artifact@v3
398
+ uses: actions/download-artifact@v4
399
399
  with:
400
400
  name: gem-${{ matrix.platform }}
401
401
  - name: Build ${{ matrix.from_image }} image
@@ -29,9 +29,9 @@ jobs:
29
29
  - x86_64-linux-musl
30
30
  runs-on: ubuntu-latest
31
31
  steps:
32
- - uses: actions/checkout@v3
32
+ - uses: actions/checkout@v4
33
33
  - name: Use cache from primary pipeline
34
- uses: actions/cache@v3
34
+ uses: actions/cache@v4
35
35
  with:
36
36
  path: tmp/build-cache
37
37
  key: ${{runner.os}}-${{matrix.platform}}-buildx-${{github.sha}}
@@ -60,7 +60,7 @@ jobs:
60
60
  # move build cache and remove outdated layers
61
61
  rm -rf tmp/build-cache
62
62
  mv tmp/build-cache-new tmp/build-cache
63
- - uses: docker/login-action@v2
63
+ - uses: docker/login-action@v3
64
64
  with:
65
65
  registry: ghcr.io
66
66
  username: ${{github.actor}}
data/History.md CHANGED
@@ -1,4 +1,4 @@
1
- # v1.5.0.rc1 / prerelease 2024-01-26
1
+ # v1.5.0 / 2024-02-25
2
2
 
3
3
  ## Notable changes
4
4
 
@@ -8,7 +8,7 @@
8
8
  * Add Linux cross build targets `aarch64-linux-gnu`, `arm-linux-gnu`, `x86-linux-gnu`, and `x86_64-linux-gnu`. #111 (@flavorjones)
9
9
  * The cross build targets `aarch64-linux`, `arm-linux`, `x86-linux`, and `x86_64-linux` are now aliases for the `*-linux-gnu` targets. #111 (@flavorjones)
10
10
 
11
- Please read the README for more details.
11
+ **Please read the README for details and caveats!**
12
12
 
13
13
 
14
14
  ## Improvements
@@ -17,7 +17,7 @@ Please read the README for more details.
17
17
  across all RCD images.
18
18
 
19
19
 
20
- ## Changes
20
+ ## Changes to build containers
21
21
 
22
22
  * Replace `rvm` with `rbenv` and `ruby-build` in the build containers.
23
23
  - `rvm` has been replaced by `rbenv` and `ruby-build`
@@ -25,6 +25,8 @@ Please read the README for more details.
25
25
  - no longer updating gems belonging to the bootstrap rubies
26
26
  - user `rvm` no longer exists, replaced by `rubyuser`
27
27
 
28
+ Users of the `rake-compiler-dock` gem should not be affected by this change. However, users of the raw containers may be affected if there are assumptions about `rvm`.
29
+
28
30
 
29
31
  1.4.0 / 2023-12-27
30
32
  ------------------
data/README.md CHANGED
@@ -33,19 +33,55 @@ The following platforms are supported for cross-compilation by rake-compiler-doc
33
33
 
34
34
  `x64-mingw-ucrt` should be used for Ruby 3.1 and later on windows. `x64-mingw32` should be used for Ruby 3.0 and earlier. This is to match the [changed platform of RubyInstaller-3.1](https://rubyinstaller.org/2021/12/31/rubyinstaller-3.1.0-1-released.html).
35
35
 
36
- ### GNU and Musl
36
+ ### Linux GNU and Musl
37
37
 
38
38
  Platform names with a `*-linux` suffix are aliases for `*-linux-gnu`, since the Rubygems default is to assume `gnu` if no libc is specified.
39
39
 
40
- Some C extensions may not require separate GNU and Musl builds, in which case it's acceptable to ship a single `*-linux` gem to cover both platforms.
40
+ Some C extensions may not require separate GNU and Musl builds, in which case it's acceptable to ship a single `*-linux` gem to cover both platforms. We recommend you set up automated testing for both GNU and Musl to determine whether you need to ship distinct native gems for these platforms (see [`flavorjones/ruby-c-extensions-explained`](https://github.com/flavorjones/ruby-c-extensions-explained/blob/main/.github/workflows/precompiled.yml) for an example of how to set up testing pipelines on Github Actions).
41
41
 
42
- The `*-linux-gnu` and `*-linux-musl` platform name suffixes require Rubygems 3.3.22 or later (or Bundler 2.3.21 or later) at installation time. Ruby version 3.0 and later ship with a sufficient Rubygems version, but versions compatible with earlier Rubies are:
43
42
 
43
+ ## Linux GNU and Musl: important details
44
+
45
+ ### Summary
46
+
47
+ If you ship `-linux-gnu` and `-linux-musl` gems:
48
+
49
+ - Use rake-compiler `>= 1.2.7` to build your gems
50
+ - Recommend your musl users have bundler `>= 2.5.6`
51
+ - Require your linux users to have rubygems `>= 3.3.22` and bundler `>= 2.3.21`
52
+
53
+ ⚠ DO NOT ship a `-linux-musl` gem with a `-linux` gem. See https://github.com/rake-compiler/rake-compiler-dock/issues/117 for more context.
54
+
55
+
56
+ ### Warning about combining `-linux-musl` with other linux native platforms
57
+
58
+ After [evaluating many ruby, rubygems, and bundler versions](https://github.com/rake-compiler/rake-compiler-dock/issues/117), we strongly recommend that gem maintainers choose one of the following two options:
59
+
60
+ - ship a `-linux` platform gem that works for both gnu and musl systems if you can,
61
+ - or ship both `-linux-gnu` and `-linux-musl` platform gems
62
+
63
+ Do NOT ship `-linux` and `-linux-musl` gems together, some versions of bundler or rubygems will not work properly for your users.
64
+
65
+
66
+ ### Warning about required versions of rubygems
67
+
68
+ The `*-linux-gnu` and `*-linux-musl` platform gems require Rubygems 3.3.22 or later (or Bundler 2.3.21 or later) at installation time.
69
+
70
+ Ruby version 3.1 and later ship with a sufficient Rubygems version. For earlier versions of Ruby, here are the versions of Rubygems you should recommend to your users:
71
+
72
+ - ruby: "3.0", rubygems: "3.5.5" # or possibly higher
44
73
  - ruby: "2.7", rubygems: "3.4.22"
45
74
  - ruby: "2.6", rubygems: "3.4.22"
46
75
  - ruby: "2.5", rubygems: "3.3.26"
47
76
  - ruby: "2.4", rubygems: "3.3.26"
48
77
 
78
+ **It's strongly suggested that you use rake-compiler v1.2.7 or later to build `linux-musl` and/or `linux-gnu` native gems.** That version of rake-compiler sets `required_rubygems_version` automatically in the native platform gems' gemspecs.
79
+
80
+
81
+ ### Warning about required versions of bundler
82
+
83
+ Finally, there is a known bug in bundler `< 2.5.6` that may make it difficult for users on musl systems to resolve their `linux-musl` dependencies correctly. You can read a description of this problem at https://github.com/rubygems/rubygems/issues/7432, but in summary **you should recommend your musl users have bundler v2.5.6 or later**.
84
+
49
85
 
50
86
  ## Installation
51
87
 
data/Rakefile CHANGED
@@ -123,6 +123,10 @@ namespace :release do
123
123
  platforms.each do |platform, _|
124
124
  image_name = RakeCompilerDock::Starter.container_image_name(platform: platform)
125
125
  sh("docker", "push", image_name)
126
+
127
+ if image_name.include?("linux-gnu")
128
+ sh("docker", "push", image_name.sub("linux-gnu", "linux"))
129
+ end
126
130
  end
127
131
  end
128
132
  end
@@ -1,4 +1,4 @@
1
1
  module RakeCompilerDock
2
- VERSION = "1.5.0.rc1"
3
- IMAGE_VERSION = "1.5.0.rc1"
2
+ VERSION = "1.5.0"
3
+ IMAGE_VERSION = "1.5.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler-dock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0.rc1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-26 00:00:00.000000000 Z
11
+ date: 2024-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -125,7 +125,7 @@ homepage: https://github.com/rake-compiler/rake-compiler-dock
125
125
  licenses:
126
126
  - MIT
127
127
  metadata: {}
128
- post_install_message:
128
+ post_install_message:
129
129
  rdoc_options: []
130
130
  require_paths:
131
131
  - lib
@@ -136,12 +136,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - ">"
139
+ - - ">="
140
140
  - !ruby/object:Gem::Version
141
- version: 1.3.1
141
+ version: '0'
142
142
  requirements: []
143
- rubygems_version: 3.4.19
144
- signing_key:
143
+ rubygems_version: 3.5.3
144
+ signing_key:
145
145
  specification_version: 4
146
146
  summary: Easy to use and reliable cross compiler environment for building Windows
147
147
  and Linux binary gems.