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 +4 -4
- data/.github/workflows/ci.yml +19 -19
- data/.github/workflows/publish-images.yml +3 -3
- data/History.md +5 -3
- data/README.md +39 -3
- data/Rakefile +4 -0
- data/lib/rake_compiler_dock/version.rb +2 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecf9523e93d97a66f6dd1fe7155fba58309e260e43cec95193d2a2547cb43bb4
|
4
|
+
data.tar.gz: 5c6298e90e0612236e72bae47cb03b57c50ee7fe2222428a712fa800d5e393e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e66bf4925c3596be41032a7ffa833db592406124ae89b4fcccdfc8d4d08d8ba9c9fc85286b252030ca859dfb1f6c93dc1cf2e5524d00b46ef98c4f2e5b22c78
|
7
|
+
data.tar.gz: 9dd9782cfe62ffdefe57cfe2ba5384d7573d03eed4fa938c61d04ab32d6ff20bbf3ff4d4b50f6282f98ddeac1f791fffecec288151190e639e1fb7f830dbff5c
|
data/.github/workflows/ci.yml
CHANGED
@@ -21,7 +21,7 @@ jobs:
|
|
21
21
|
name: build source
|
22
22
|
runs-on: ubuntu-latest
|
23
23
|
steps:
|
24
|
-
- uses: actions/checkout@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
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@
|
240
|
+
- uses: actions/checkout@v4
|
241
241
|
- name: Download gem-${{ matrix.platform }}
|
242
|
-
uses: actions/download-artifact@
|
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@
|
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@
|
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@
|
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@
|
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@
|
396
|
+
- uses: actions/checkout@v4
|
397
397
|
- name: Download gem-${{ matrix.platform }}
|
398
|
-
uses: actions/download-artifact@
|
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@
|
32
|
+
- uses: actions/checkout@v4
|
33
33
|
- name: Use cache from primary pipeline
|
34
|
-
uses: actions/cache@
|
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@
|
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
|
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
|
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
|
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
|
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-
|
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:
|
141
|
+
version: '0'
|
142
142
|
requirements: []
|
143
|
-
rubygems_version: 3.
|
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.
|