rmagick 4.2.6 → 5.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/ImageMagick6/devcontainer.json +1 -1
  3. data/.devcontainer/{ImageMagick7/devcontainer.json → devcontainer.json} +2 -2
  4. data/.devcontainer/setup-user.sh +1 -1
  5. data/.editorconfig +1 -1
  6. data/.github/workflows/ci.yml +87 -9
  7. data/.gitignore +4 -0
  8. data/.rubocop_todo.yml +16 -9
  9. data/.yardopts +1 -1
  10. data/CHANGELOG.md +130 -0
  11. data/Gemfile +20 -0
  12. data/README.md +10 -17
  13. data/Rakefile +63 -80
  14. data/before_install_linux.sh +3 -3
  15. data/before_install_osx.sh +6 -5
  16. data/ext/RMagick/extconf.rb +112 -52
  17. data/ext/RMagick/{rmagick.c → rmagick.cpp} +19 -22
  18. data/ext/RMagick/rmagick.h +88 -59
  19. data/ext/RMagick/rmagick_gvl.h +224 -0
  20. data/ext/RMagick/{rmdraw.c → rmdraw.cpp} +170 -159
  21. data/ext/RMagick/{rmenum.c → rmenum.cpp} +69 -50
  22. data/ext/RMagick/{rmfill.c → rmfill.cpp} +85 -24
  23. data/ext/RMagick/{rmilist.c → rmilist.cpp} +191 -93
  24. data/ext/RMagick/{rmimage.c → rmimage.cpp} +1543 -989
  25. data/ext/RMagick/{rminfo.c → rminfo.cpp} +140 -152
  26. data/ext/RMagick/{rmkinfo.c → rmkinfo.cpp} +46 -34
  27. data/ext/RMagick/rmmain.cpp +1923 -0
  28. data/ext/RMagick/{rmmontage.c → rmmontage.cpp} +50 -29
  29. data/ext/RMagick/{rmpixel.c → rmpixel.cpp} +108 -83
  30. data/ext/RMagick/{rmstruct.c → rmstruct.cpp} +6 -6
  31. data/ext/RMagick/{rmutil.c → rmutil.cpp} +62 -161
  32. data/lib/rmagick/version.rb +3 -1
  33. data/lib/rmagick.rb +2 -0
  34. data/lib/rmagick_internal.rb +76 -110
  35. data/lib/rvg/embellishable.rb +6 -2
  36. data/lib/rvg/misc.rb +7 -7
  37. data/lib/rvg/rvg.rb +2 -0
  38. data/lib/rvg/stretchable.rb +2 -2
  39. data/lib/rvg/transformable.rb +1 -1
  40. data/rmagick.gemspec +4 -13
  41. data/sig/rmagick/_draw_common_methods.rbs +64 -0
  42. data/sig/rmagick/_image_common_methods.rbs +389 -0
  43. data/sig/rmagick/draw.rbs +38 -0
  44. data/sig/rmagick/draw_attribute.rbs +28 -0
  45. data/sig/rmagick/enum.rbs +814 -0
  46. data/sig/rmagick/error.rbs +11 -0
  47. data/sig/rmagick/fill.rbs +21 -0
  48. data/sig/rmagick/geometry.rbs +14 -0
  49. data/sig/rmagick/image.rbs +194 -0
  50. data/sig/rmagick/image_list.rbs +181 -0
  51. data/sig/rmagick/iptc.rbs +101 -0
  52. data/sig/rmagick/kernel_info.rbs +12 -0
  53. data/sig/rmagick/optional_method_arguments.rbs +10 -0
  54. data/sig/rmagick/pixel.rbs +46 -0
  55. data/sig/rmagick/struct.rbs +90 -0
  56. data/sig/rmagick.rbs +43 -0
  57. data/sig/rvg/clippath.rbs +34 -0
  58. data/sig/rvg/container.rbs +78 -0
  59. data/sig/rvg/deep_equal.rbs +48 -0
  60. data/sig/rvg/describable.rbs +30 -0
  61. data/sig/rvg/embellishable.rbs +226 -0
  62. data/sig/rvg/misc.rbs +145 -0
  63. data/sig/rvg/paint.rbs +55 -0
  64. data/sig/rvg/pathdata.rbs +77 -0
  65. data/sig/rvg/rvg.rbs +125 -0
  66. data/sig/rvg/stretchable.rbs +56 -0
  67. data/sig/rvg/stylable.rbs +66 -0
  68. data/sig/rvg/text.rbs +118 -0
  69. data/sig/rvg/transformable.rbs +59 -0
  70. data/sig/rvg/units.rbs +33 -0
  71. metadata +59 -129
  72. data/.codeclimate.yml +0 -63
  73. data/deprecated/RMagick.rb +0 -6
  74. data/ext/RMagick/rmmain.c +0 -1951
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd92f37d8a01928beb9e4b44c7f7712dab8b2307c42484253b179e474d363e47
4
- data.tar.gz: 1faa1f97938450f4199f3019c7b6848efc7cf4a4e43aa06d218c81fad82e21fe
3
+ metadata.gz: 41d6b9634204858bad669688ff19fc54c14dc3578f011696ade0295b5e4f7e88
4
+ data.tar.gz: 781493a793ec5ee4b9a60063761484e8b1d44e622963c2593caefac314d7ed8a
5
5
  SHA512:
6
- metadata.gz: 36585f543e7e3edb3f967524e8e6a498d0fb9059adb54e96652bb8ddf2772d51d43a183822dd32149fad24c48001de8073dfac9e7e4a3781fe1c8462c940407a
7
- data.tar.gz: 19197353b30bf77c73267bf3d939149dc9e078938382d27e24cada606b0edf4c6c21fae0603d00742301a850f9a959f35fd86f1026b104ba342a990dfe887f9d
6
+ metadata.gz: e90299bfe4a9b5d9a6291d53707db9ec772fb2247517f4e9ca9e4633320a6a9c2067195dcc90109bc743cd9f0a12882adfd679fb4e06c6995958e8b962125e0e
7
+ data.tar.gz: 1e2b528111b27b48ec4f3dc8be1e65d3bf181ec8888c5e1562959b98af4762f12dd9285d4d78520eb400ffb16e09f93950e8527b27e552396487c56fd1258b95
@@ -4,7 +4,7 @@
4
4
  "dockerfile": "../Dockerfile",
5
5
  "args": {
6
6
  "RUBY_VERSION": "3.1.2",
7
- "IMAGEMAGICK_VERSION": "6.9.12-54"
7
+ "IMAGEMAGICK_VERSION": "6.9.13-4"
8
8
  }
9
9
  },
10
10
  "onCreateCommand": "/setup/setup-repo.sh"
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "ImageMagick 7",
3
3
  "build": {
4
- "dockerfile": "../Dockerfile",
4
+ "dockerfile": "Dockerfile",
5
5
  "args": {
6
6
  "RUBY_VERSION": "3.1.2",
7
- "IMAGEMAGICK_VERSION": "7.1.0-39"
7
+ "IMAGEMAGICK_VERSION": "7.1.1-26"
8
8
  }
9
9
  },
10
10
  "onCreateCommand": "/setup/setup-repo.sh"
@@ -42,4 +42,4 @@ __show_notice
42
42
  EOF
43
43
  )"
44
44
 
45
- echo "${codespaces_bash}" >> "/root/.bashrc"
45
+ echo "${codespaces_bash}" >> "/root/.bashrc"
data/.editorconfig CHANGED
@@ -13,5 +13,5 @@ tab_width = 2
13
13
  [{*.{rb,yml,sh,md}]
14
14
  indent_size = 2
15
15
 
16
- [*.c]
16
+ [*.cpp]
17
17
  indent_size = 4
@@ -15,7 +15,7 @@ jobs:
15
15
  runs-on: ubuntu-latest
16
16
  timeout-minutes: 20
17
17
  steps:
18
- - uses: actions/checkout@v3
18
+ - uses: actions/checkout@v4
19
19
  - name: Set up Ruby 2.3
20
20
  uses: ruby/setup-ruby@master
21
21
  with:
@@ -25,21 +25,49 @@ jobs:
25
25
  bundle install --path=vendor/bundle --jobs 4 --retry 3
26
26
  STYLE_CHECKS=true bundle exec rubocop
27
27
 
28
+ rbs:
29
+ runs-on: ubuntu-latest
30
+ name: RBS
31
+ timeout-minutes: 20
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - name: Set up Ruby 3.0
35
+ uses: ruby/setup-ruby@master
36
+ with:
37
+ ruby-version: '3.0'
38
+ - name: Validate RBS signatures
39
+ run: |
40
+ bundle install --path=vendor/bundle --jobs 4 --retry 3
41
+ bundle exec rake rbs:validate && bundle exec steep check
42
+
28
43
  test-linux:
29
44
  runs-on: ubuntu-latest
30
45
  timeout-minutes: 20
31
46
  strategy:
32
47
  matrix:
33
- ruby-version: ['2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1']
48
+ ruby-version: ['2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
34
49
  imagemagick-version:
35
50
  - { full: 6.7.7-10, major-minor: '6.7' }
36
51
  - { full: 6.8.9-10, major-minor: '6.8' }
37
- - { full: 6.9.12-56, major-minor: '6.9' }
38
- - { full: 7.1.0-41, major-minor: '7.0' }
52
+ - { full: 6.9.13-4, major-minor: '6.9' }
53
+ - { full: 7.0.11-14, major-minor: '7.0' }
54
+ - { full: 7.1.1-26, major-minor: '7.1' }
55
+ exclude:
56
+ # Ghostscript 9.55.0 causes error with Ruby 3.3 + ImageMagick 6.7 when run Magick::Draw tests.
57
+ # It disable running tests with Ruby 3.3 + ImageMagick 6.7 because it might be difficult to support old ImageMagick.
58
+ - ruby-version: '3.3'
59
+ imagemagick-version: { major-minor: '6.7' }
39
60
 
40
61
  name: Linux, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }}
41
62
  steps:
42
- - uses: actions/checkout@v3
63
+ - uses: actions/checkout@v4
64
+ - name: Cache ImageMagick built objects
65
+ uses: actions/cache@v4
66
+ with:
67
+ path: ./build-ImageMagick
68
+ key: v1-${{ runner.os }}-imagemagick-${{ matrix.imagemagick-version.full }}
69
+ restore-keys: |
70
+ v1-${{ runner.os }}-imagemagick-${{ matrix.imagemagick-version.full }}
43
71
  - name: Set up Ruby ${{ matrix.ruby-version }}
44
72
  uses: ruby/setup-ruby@master
45
73
  with:
@@ -58,14 +86,21 @@ jobs:
58
86
  timeout-minutes: 20
59
87
  strategy:
60
88
  matrix:
61
- ruby-version: ['2.6', '2.7', '3.0', '3.1']
89
+ ruby-version: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
62
90
  imagemagick-version:
63
- - { full: 6.9.12-56, major-minor: '6.9' }
64
- - { full: 7.1.0-41, major-minor: '7.0' }
91
+ - { full: 6.9.13-4, major-minor: '6.9' }
92
+ - { full: 7.1.1-26, major-minor: '7.1' }
65
93
 
66
94
  name: macOS, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }}
67
95
  steps:
68
- - uses: actions/checkout@v3
96
+ - uses: actions/checkout@v4
97
+ - name: Cache ImageMagick built objects
98
+ uses: actions/cache@v4
99
+ with:
100
+ path: ./build-ImageMagick
101
+ key: v1-${{ runner.os }}-imagemagick-${{ matrix.imagemagick-version.full }}
102
+ restore-keys: |
103
+ v1-${{ runner.os }}-imagemagick-${{ matrix.imagemagick-version.full }}
69
104
  - name: Set up Ruby ${{ matrix.ruby-version }}
70
105
  uses: ruby/setup-ruby@master
71
106
  with:
@@ -77,3 +112,46 @@ jobs:
77
112
  run: |
78
113
  bundle install --path=vendor/bundle --jobs 4 --retry 3
79
114
  bundle exec rake
115
+
116
+ test-windows:
117
+ runs-on: windows-latest
118
+ timeout-minutes: 20
119
+ strategy:
120
+ matrix:
121
+ ruby-version: ['3.3']
122
+ imagemagick-version:
123
+ - { full: 6.9.13-4, major-minor: '6.9' }
124
+ - { full: 7.1.1-26, major-minor: '7.1' }
125
+ env:
126
+ bundled_im_dir: C:\Program Files\ImageMagick-7.1.1-Q16-HDRI
127
+ install_im_dir: D:\ImageMagick
128
+
129
+ name: MSWin, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }}
130
+ steps:
131
+ - uses: actions/checkout@v4
132
+ - name: Setup environment variable
133
+ # https://stackoverflow.com/questions/60169752/how-to-update-the-path-in-a-github-action-workflow-file-for-a-windows-latest-hos
134
+ run: |
135
+ Add-Content $env:GITHUB_PATH ${{ env.install_im_dir }}
136
+ - name: Uninstall bundled ImageMagick
137
+ # Bundled ImageMagick does not have C/C++ library and dll which required by rmagick.
138
+ run: |
139
+ Start-Process -FilePath "${{ env.bundled_im_dir }}\unins000.exe" -ArgumentList "/VERYSILENT /NORESTART"
140
+ - name: Set up Ruby ${{ matrix.ruby-version }}
141
+ uses: ruby/setup-ruby@master
142
+ with:
143
+ ruby-version: ${{ matrix.ruby-version }}
144
+ - name: Install ghostscript
145
+ run: |
146
+ choco install ghostscript
147
+ - name: Install ImageMagick
148
+ # https://github.com/rmagick/ImageMagick-binaries
149
+ run: |
150
+ $imagemagick_version = "${{ matrix.imagemagick-version.full }}"
151
+ $installer_name = "ImageMagick-$($imagemagick_version)-Q16-x64-dll.exe"
152
+ $url = "https://github.com/rmagick/ImageMagick-binaries/raw/main/$($installer_name)"
153
+ Invoke-WebRequest -Uri $url -OutFile $installer_name
154
+ Start-Process -FilePath $installer_name -ArgumentList "/DIR=${{ env.install_im_dir }} /VERYSILENT /NORESTART /TASKS=install_Devel"
155
+ - name: Build and test with Rake
156
+ run: |
157
+ cmd.exe /D /S /C "bundle install --path=vendor/bundle --retry 3 & bundle exec rake"
data/.gitignore CHANGED
@@ -20,6 +20,10 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  *.log
23
+ *.def
23
24
  Makefile
24
25
  extconf.h
26
+ compile_flags.txt
25
27
  build-ImageMagick/
28
+ doc/node_modules/
29
+ doc/package-lock.json
data/.rubocop_todo.yml CHANGED
@@ -6,6 +6,21 @@
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 9
10
+ # Configuration parameters: Include, IgnoredGems.
11
+ # Include: **/*.gemfile, **/Gemfile, **/gems.rb
12
+ Bundler/GemComment:
13
+ Exclude:
14
+ - 'Gemfile'
15
+
16
+ # Offense count: 1
17
+ # Cop supports --auto-correct.
18
+ # Configuration parameters: TreatCommentsAsGroupSeparators, Include.
19
+ # Include: **/*.gemfile, **/Gemfile, **/gems.rb
20
+ Bundler/OrderedGems:
21
+ Exclude:
22
+ - 'Gemfile'
23
+
9
24
  # Offense count: 1
10
25
  # Cop supports --auto-correct.
11
26
  # Configuration parameters: TreatCommentsAsGroupSeparators, Include.
@@ -26,7 +41,6 @@ Layout/ClassStructure:
26
41
  - 'lib/rvg/misc.rb'
27
42
  - 'lib/rvg/pathdata.rb'
28
43
  - 'lib/rvg/rvg.rb'
29
- - 'lib/rvg/to_c.rb'
30
44
 
31
45
  # Offense count: 2312
32
46
  # Cop supports --auto-correct.
@@ -79,7 +93,6 @@ Lint/NumberConversion:
79
93
  - 'examples/thumbnail.rb'
80
94
  - 'lib/rmagick_internal.rb'
81
95
  - 'lib/rvg/misc.rb'
82
- - 'lib/rvg/to_c.rb'
83
96
  - 'spec/magick_spec.rb'
84
97
  - 'spec/rmagick/align_type/class_methods/values_spec.rb'
85
98
  - 'spec/rmagick/enum/bitwise_or_spec.rb'
@@ -127,7 +140,7 @@ Metrics/BlockNesting:
127
140
  # Offense count: 9
128
141
  # Configuration parameters: CountComments.
129
142
  Metrics/ClassLength:
130
- Max: 460
143
+ Max: 469
131
144
 
132
145
  # Offense count: 21
133
146
  # Configuration parameters: IgnoredMethods.
@@ -182,7 +195,6 @@ Naming/ConstantName:
182
195
  # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
183
196
  Naming/FileName:
184
197
  Exclude:
185
- - 'deprecated/RMagick.rb'
186
198
  - 'doc/ex/InitialCoords.rb'
187
199
  - 'doc/ex/NewCoordSys.rb'
188
200
  - 'doc/ex/OrigCoordSys.rb'
@@ -227,11 +239,6 @@ Security/MarshalLoad:
227
239
  - 'spec/rmagick/image/marshal_spec.rb'
228
240
  - 'spec/rmagick/image_list/marshal_spec.rb'
229
241
 
230
- # Offense count: 1
231
- Style/AutoResourceCleanup:
232
- Exclude:
233
- - 'lib/rvg/to_c.rb'
234
-
235
242
  # Offense count: 7
236
243
  Style/CaseEquality:
237
244
  Exclude:
data/.yardopts CHANGED
@@ -1,5 +1,5 @@
1
1
  --no-private
2
2
  lib/**/*.rb
3
- ext/**/*.c
3
+ ext/**/*.cpp
4
4
  *.md
5
5
  LICENSE
data/CHANGELOG.md CHANGED
@@ -3,6 +3,136 @@
3
3
  All notable changes to this project are documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## RMagick 5.5.0
7
+
8
+ Improvements
9
+
10
+ - Add RBS signatures (#1458)
11
+ - Remove unnecessary type check in KernelInfo#{unity_add, scale} (#1514)
12
+ - Remove unnecessary type check in Image#{morphology, morphology_channel} (#1513)
13
+ - Improve HatchFill.new to accept Pixel object as color (#1512)
14
+ - Fix GraphicContext#font_weight to accept Numeric object (#1510)
15
+ - Improve GraphicContext#font_weight to accept Symbol object (#1509)
16
+ - Improve Stretchable#viewbox to use implicitly conversioned value (#1507)
17
+ - Improve RVG::Transformable#rotate to convert to Float implicitly (#1506)
18
+ - Fix Image#modulate in order to accept negative number (#1505)
19
+ - Improve Image#modulate to accept "NN%" form string (#1504)
20
+ - Implicit conversion to string with methods that expect a string (#1496)
21
+ - Coerce to string instead of using #to_s (#1495)
22
+ - Coerce to string where pass object into string interpolation (#1494)
23
+ - Fix Draw#{fill_opacity, opacity, stroke_opacity} to correctly handle arguments (#1492)
24
+ - Fix Draw#{interline_spacing, interword_spacing, kerning} to correctly handle arguments that can be converted to Float (#1491)
25
+ - Remove unnecessary type check in KernelInfo methods (#1489)
26
+ - Generate compile_flags.txt for clangd for development (#1488)
27
+ - Fix Draw#{stroke_dasharray, stroke_miterlimit} to accept object which has #to_f method (#1486)
28
+ - Fix Image#composite_affine to accept ImageList object (#1484)
29
+ - Fix Image#add_compose_mask to accept ImageList object (#1483)
30
+ - Fix incorrect number of required arguments in ArgumentError (#1482)
31
+ - Fix ImageList#sort! that should return self (#1481)
32
+ - Fix ImageList#eql? that should not raise exception if can't compare (#1479)
33
+ - Fix ImageList#<=> that should return nil if can't compare (#1478)
34
+ - Add DrawAttribute module to simplify Draw, DrawOptions and PolaroidOptions (#1477)
35
+ - Add missing attribute writer methods in Image::{DrawOptions, PolaroidOptions} (#1476)
36
+ - Add Image::PolaroidOptions#affine= (#1475)
37
+ - Add Image::PolaroidOptions#tile= (#1474)
38
+ - Attribute writer methods should return passed value (#1473)
39
+ - Return self with ImageList if Image's method return self (#1472)
40
+ - Fix Image#clut_channel to accept ImageList object (#1471)
41
+ - Fix Magick::GradientFill#fill and Magick::TextureFill#fill to accept ImageList object (#1467)
42
+
43
+ Bug Fixes
44
+
45
+ - Fix typo in order to fix NoMethodError (#1515)
46
+ - Sync compression value in order fix the problem of compression being ignored by ImageMagick 7 (#1503)
47
+ - Add PKG_CONFIG_PATH for ImageMagick 7 in order to fix installation error on macOS (#1501)
48
+
49
+ ## RMagick 5.4.4
50
+
51
+ Bug Fixes
52
+
53
+ - Fix installation error again in some environment at creatint Makefile (#1465)
54
+ - Fix Pixel#<=> which should accept other class instance (#1463)
55
+
56
+ ## RMagick 5.4.3
57
+
58
+ Bug Fixes
59
+
60
+ - Fix installation error in some environment by using x flag to use C++ compiler in order to create Makefile (#1460)
61
+
62
+ ## RMagick 5.4.2
63
+
64
+ Improvements
65
+
66
+ - Check C++ compiler exists (#1453)
67
+
68
+ ## RMagick 5.4.1
69
+
70
+ Bug Fixes
71
+
72
+ - Fix invalid cast between different size variables (#1448)
73
+
74
+ ## RMagick 5.4.0
75
+
76
+ Improvements
77
+
78
+ - Use rb_io_path() if exist because pathv attr was marked as deprecated at Ruby 3.3 (#1409)
79
+ - Add observer gem as dependency (#1411)
80
+ - Add aliases of filter type (#1439)
81
+ - Release GVL in Image#contrast (#1440)
82
+
83
+ Bug Fixes
84
+
85
+ - Use C++ compiler in order to fix installation error with latest ImageMagick 7 on Windows (#1433)
86
+
87
+ ## RMagick 5.3.0
88
+
89
+ Improvements
90
+
91
+ - Support GC compaction (#1388)
92
+
93
+ Bug Fixes
94
+
95
+ - Fix memory leak in `Magick::Draw` for recentry ImageMagick 6 by removing unnecessary `GetDrawInfo()` calling (#1406)
96
+ - Fix crash on ImageList#write with animation gif (#1379)
97
+ - Windows: Fix RubyInstaller::Runtime::DllDirectory::WinApiError (#1381)
98
+
99
+ ## RMagick 5.2.0
100
+
101
+ Improvements
102
+
103
+ - Add OnAlphaChannel and OffAlphaChannel to the AlphaChannelOption enumeration. (#1377)
104
+ - Add Ruby 3.2 support (#1370)
105
+
106
+ ## RMagick 5.1.0
107
+
108
+ Improvements
109
+
110
+ - Improve multi-thread performance by releasing GVL (#1352)
111
+ - Add Ractor support (#1349)
112
+ - Avoid overriding compilation variables (#1365)
113
+ - Remove pkg-config command dependency (#1366)
114
+
115
+ ## RMagick 5.0.0
116
+
117
+ Improvements
118
+
119
+ - Improve installer in order to avoid SEGV within pkg-config command (#1359)
120
+ - Clean up the documents and comment in source code referring to something that no longer exist (#1363)
121
+ - Remove deprecated 'tile' attribute in Draw#marshal_dump (#1364)
122
+ - Remove deprecated #instance_eval calling when block was given with Magick::ImageList#montage, Magick::Image::Info.new and more (#1362)
123
+ - Remove deprecated RMagick.rb file (#1361)
124
+ - Remove deprecated Magick.trace_proc= (#1351)
125
+ - Remove deprecated Magick::{Image, Image::Info}#monitor= (#1356)
126
+
127
+ ## RMagick 4.3.0
128
+
129
+ Deprecates
130
+
131
+ - Mark Magick.trace_proc= as deprecated (#1354)
132
+ - Mark Magick::{Image, Image::Info}#monitor= as deprecated (#1353)
133
+
134
+ These methods will be removed in RMagick 5.0 and no alternative.
135
+
6
136
  ## RMagick 4.2.6
7
137
 
8
138
  Improvements
data/Gemfile CHANGED
@@ -2,3 +2,23 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in rmagick.gemspec
4
4
  gemspec
5
+
6
+ gem 'pry', '~> 0.14'
7
+ gem 'rake-compiler', '~> 1.0'
8
+ gem 'rspec', '~> 3.8'
9
+ gem 'rspec_junit_formatter', '~> 0.6.0'
10
+ gem 'simplecov', '~> 0.16.1'
11
+ gem 'yard', '~> 0.9.24'
12
+
13
+ if RUBY_PLATFORM !~ /mswin|mingw/
14
+ gem 'rubocop', '~> 0.81.0'
15
+ gem 'rubocop-rspec', '~> 1.38.1'
16
+ gem 'rubocop-performance', '~> 1.5.2'
17
+ end
18
+
19
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
20
+ # For CI
21
+ gem 'rbs', '~> 3.4'
22
+
23
+ gem 'steep', '~> 1.6'
24
+ end
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  RMagick
2
2
  =======
3
3
 
4
- [![Codacy Badge](https://api.codacy.com/project/badge/Grade/901780ea1a244a8584b18033b2e03866)](https://app.codacy.com/gh/rmagick/rmagick?utm_source=github.com&utm_medium=referral&utm_content=rmagick/rmagick&utm_campaign=Badge_Grade_Settings)
5
4
  [![GemVersion](https://img.shields.io/gem/v/rmagick.svg?style=flat)](https://rubygems.org/gems/rmagick)
6
5
  ![CI](https://github.com/rmagick/rmagick/workflows/CI/badge.svg)
7
6
 
@@ -39,6 +38,9 @@ These prerequisites are required for the latest version of RMagick.
39
38
  - Windows
40
39
  - Other \*nix-like systems
41
40
 
41
+ **C++ compiler**
42
+ - RMagick 5.4.0 or later requires a C++ compiler.
43
+
42
44
  **Ruby**
43
45
  - Version 2.3 or later.
44
46
 
@@ -64,40 +66,40 @@ sudo apt-get install libmagickwand-dev
64
66
  On Centos, you can run:
65
67
 
66
68
  ```sh
67
- sudo yum install gcc ImageMagick-devel make which
69
+ sudo yum install ImageMagick-devel
68
70
  ```
69
71
 
70
72
  #### Arch Linux
71
73
  On Arch Linux, you can run:
72
74
 
73
75
  ```sh
74
- pacman -Syy pkg-config imagemagick
76
+ pacman -Syy imagemagick
75
77
  ```
76
78
 
77
79
  #### Alpine Linux
78
80
  On Alpine Linux, you can run:
79
81
 
80
82
  ```
81
- apk add pkgconfig imagemagick imagemagick-dev imagemagick-libs
83
+ apk add imagemagick imagemagick-dev imagemagick-libs
82
84
  ```
83
85
 
84
86
  or you can run if you would like to use ImageMagick 6:
85
87
 
86
88
  ```
87
- apk add pkgconfig imagemagick6 imagemagick6-dev imagemagick6-libs
89
+ apk add imagemagick6 imagemagick6-dev imagemagick6-libs
88
90
  ```
89
91
 
90
92
  ### macOS
91
93
  On macOS, you can run:
92
94
 
93
95
  ```sh
94
- brew install pkg-config imagemagick
96
+ brew install imagemagick
95
97
  ```
96
98
 
97
99
  or you can run if you would like to use ImageMagick 6:
98
100
 
99
101
  ```sh
100
- brew install pkg-config imagemagick@6
102
+ brew install imagemagick@6
101
103
  ```
102
104
 
103
105
  ### Windows
@@ -105,7 +107,7 @@ brew install pkg-config imagemagick@6
105
107
  2. You might need to configure `PATH` environment variable to where the compiler is located.
106
108
  (Ex: `set PATH=C:\Ruby27-x64\msys64\usr\bin;C:\Ruby27-x64\msys64\mingw64\bin;%PATH%`)
107
109
  3. Download `ImageMagick-7.XXXX-Q16-x64-dll.exe` (not, `ImageMagick-7.XXXX-Q16-x64-static.exe`) binary from [Windows Binary Release](https://imagemagick.org/script/download.php#windows), or you can download ImageMagick 6 from [Windows Binary Release](https://legacy.imagemagick.org/script/download.php#windows).
108
- 4. Install ImageMagick. You need to turn on checkboxes `Add application directory to your system path` and `Install development headers and librarries for C and C++` in an installer for RMagick.
110
+ 4. Install ImageMagick. You need to turn on checkboxes `Add application directory to your system path` and `Install development headers and libraries for C and C++` in an installer for RMagick.
109
111
  <img width="50%" src="https://user-images.githubusercontent.com/199156/77183472-b72cbd00-6b11-11ea-8b9a-247bc1f9d8b1.png" />
110
112
 
111
113
  Installing RMagick
@@ -164,15 +166,6 @@ subdirectory of the installation directory for any error messages. These
164
166
  messages typically contain enough additional information for you to be able to
165
167
  diagnose the problem. Also see [this FAQ][libmagick-faq].
166
168
 
167
- On OS X with Homebrew, try (re)installing pkg-config:
168
-
169
- ```sh
170
- brew uninstall pkg-config
171
- brew install pkg-config
172
- brew unlink pkg-config
173
- brew link pkg-config
174
- ```
175
-
176
169
  ### Cannot open shared object file
177
170
 
178
171
  If you get a message like this: