rmagick 2.16.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (405) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +63 -0
  3. data/.devcontainer/Dockerfile +14 -0
  4. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  5. data/.devcontainer/devcontainer.json +11 -0
  6. data/.devcontainer/setup-repo.sh +10 -0
  7. data/.devcontainer/setup-user.sh +45 -0
  8. data/.editorconfig +3 -0
  9. data/.github/ISSUE_TEMPLATE.md +17 -0
  10. data/.github/workflows/ci.yml +79 -0
  11. data/.gitignore +5 -1
  12. data/.rspec +1 -0
  13. data/.rubocop.yml +37 -340
  14. data/.rubocop_todo.yml +448 -0
  15. data/.yardopts +5 -0
  16. data/CHANGELOG.md +435 -0
  17. data/CODE_OF_CONDUCT.md +122 -7
  18. data/CONTRIBUTING.md +37 -6
  19. data/Gemfile +0 -6
  20. data/README.md +317 -0
  21. data/Rakefile +37 -35
  22. data/before_install_linux.sh +65 -28
  23. data/before_install_osx.sh +58 -2
  24. data/ext/RMagick/extconf.rb +286 -393
  25. data/ext/RMagick/rmagick.c +106 -111
  26. data/ext/RMagick/rmagick.h +235 -331
  27. data/ext/RMagick/rmagick_gvl.h +224 -0
  28. data/ext/RMagick/rmdraw.c +484 -842
  29. data/ext/RMagick/rmenum.c +316 -755
  30. data/ext/RMagick/rmfill.c +281 -191
  31. data/ext/RMagick/rmilist.c +450 -455
  32. data/ext/RMagick/rmimage.c +6247 -5289
  33. data/ext/RMagick/rminfo.c +721 -894
  34. data/ext/RMagick/rmkinfo.c +228 -0
  35. data/ext/RMagick/rmmain.c +727 -519
  36. data/ext/RMagick/rmmontage.c +127 -172
  37. data/ext/RMagick/rmpixel.c +638 -431
  38. data/ext/RMagick/rmstruct.c +102 -282
  39. data/ext/RMagick/rmutil.c +450 -363
  40. data/lib/rmagick/version.rb +5 -4
  41. data/lib/rmagick.rb +2 -0
  42. data/lib/rmagick_internal.rb +349 -413
  43. data/lib/rvg/clippath.rb +3 -4
  44. data/lib/rvg/container.rb +30 -22
  45. data/lib/rvg/deep_equal.rb +11 -11
  46. data/lib/rvg/describable.rb +2 -2
  47. data/lib/rvg/embellishable.rb +63 -68
  48. data/lib/rvg/misc.rb +136 -139
  49. data/lib/rvg/paint.rb +2 -1
  50. data/lib/rvg/pathdata.rb +7 -8
  51. data/lib/rvg/rvg.rb +47 -46
  52. data/lib/rvg/stretchable.rb +22 -28
  53. data/lib/rvg/stylable.rb +12 -10
  54. data/lib/rvg/text.rb +169 -165
  55. data/lib/rvg/transformable.rb +17 -16
  56. data/lib/rvg/units.rb +5 -5
  57. data/rmagick.gemspec +16 -39
  58. metadata +118 -395
  59. data/.hound.yml +0 -2
  60. data/.simplecov +0 -27
  61. data/.travis.yml +0 -74
  62. data/Doxyfile +0 -1514
  63. data/README.textile +0 -251
  64. data/deprecated/RMagick.rb +0 -6
  65. data/doc/.cvsignore +0 -1
  66. data/doc/comtasks.html +0 -287
  67. data/doc/constants.html +0 -1581
  68. data/doc/css/doc.css +0 -299
  69. data/doc/css/popup.css +0 -34
  70. data/doc/css/ref.css +0 -67
  71. data/doc/draw.html +0 -3272
  72. data/doc/ex/InitialCoords.rb +0 -22
  73. data/doc/ex/NewCoordSys.rb +0 -30
  74. data/doc/ex/OrigCoordSys.rb +0 -16
  75. data/doc/ex/PreserveAspectRatio.rb +0 -204
  76. data/doc/ex/RotateScale.rb +0 -36
  77. data/doc/ex/Skew.rb +0 -38
  78. data/doc/ex/Use01.rb +0 -15
  79. data/doc/ex/Use02.rb +0 -20
  80. data/doc/ex/Use03.rb +0 -16
  81. data/doc/ex/ViewBox.rb +0 -31
  82. data/doc/ex/adaptive_threshold.rb +0 -9
  83. data/doc/ex/add_noise.rb +0 -16
  84. data/doc/ex/affine.rb +0 -48
  85. data/doc/ex/affine_transform.rb +0 -20
  86. data/doc/ex/arc.rb +0 -49
  87. data/doc/ex/arcpath.rb +0 -32
  88. data/doc/ex/arcs01.rb +0 -28
  89. data/doc/ex/arcs02.rb +0 -59
  90. data/doc/ex/average.rb +0 -15
  91. data/doc/ex/axes.rb +0 -64
  92. data/doc/ex/baseline_shift01.rb +0 -17
  93. data/doc/ex/bilevel_channel.rb +0 -8
  94. data/doc/ex/blur_image.rb +0 -12
  95. data/doc/ex/border.rb +0 -10
  96. data/doc/ex/bounding_box.rb +0 -42
  97. data/doc/ex/cbezier1.rb +0 -41
  98. data/doc/ex/cbezier2.rb +0 -41
  99. data/doc/ex/cbezier3.rb +0 -41
  100. data/doc/ex/cbezier4.rb +0 -42
  101. data/doc/ex/cbezier5.rb +0 -42
  102. data/doc/ex/cbezier6.rb +0 -53
  103. data/doc/ex/channel.rb +0 -25
  104. data/doc/ex/charcoal.rb +0 -12
  105. data/doc/ex/chop.rb +0 -29
  106. data/doc/ex/circle.rb +0 -33
  107. data/doc/ex/circle01.rb +0 -16
  108. data/doc/ex/clip_path.rb +0 -60
  109. data/doc/ex/coalesce.rb +0 -57
  110. data/doc/ex/color_fill_to_border.rb +0 -29
  111. data/doc/ex/color_floodfill.rb +0 -28
  112. data/doc/ex/color_histogram.rb +0 -47
  113. data/doc/ex/color_reset.rb +0 -11
  114. data/doc/ex/colorize.rb +0 -16
  115. data/doc/ex/colors.rb +0 -64
  116. data/doc/ex/compose_mask.rb +0 -22
  117. data/doc/ex/composite.rb +0 -133
  118. data/doc/ex/composite_layers.rb +0 -53
  119. data/doc/ex/composite_tiled.rb +0 -21
  120. data/doc/ex/contrast.rb +0 -36
  121. data/doc/ex/crop.rb +0 -31
  122. data/doc/ex/crop_with_gravity.rb +0 -42
  123. data/doc/ex/cubic01.rb +0 -43
  124. data/doc/ex/cubic02.rb +0 -91
  125. data/doc/ex/cycle_colormap.rb +0 -21
  126. data/doc/ex/dissolve.rb +0 -12
  127. data/doc/ex/drawcomp.rb +0 -42
  128. data/doc/ex/drop_shadow.rb +0 -60
  129. data/doc/ex/edge.rb +0 -11
  130. data/doc/ex/ellipse.rb +0 -45
  131. data/doc/ex/ellipse01.rb +0 -21
  132. data/doc/ex/emboss.rb +0 -11
  133. data/doc/ex/enhance.rb +0 -28
  134. data/doc/ex/equalize.rb +0 -11
  135. data/doc/ex/evenodd.rb +0 -42
  136. data/doc/ex/fill_pattern.rb +0 -23
  137. data/doc/ex/flatten_images.rb +0 -36
  138. data/doc/ex/flip.rb +0 -11
  139. data/doc/ex/flop.rb +0 -11
  140. data/doc/ex/font_styles.rb +0 -32
  141. data/doc/ex/fonts.rb +0 -20
  142. data/doc/ex/frame.rb +0 -12
  143. data/doc/ex/gaussian_blur.rb +0 -11
  144. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  145. data/doc/ex/get_pixels.rb +0 -47
  146. data/doc/ex/get_type_metrics.rb +0 -141
  147. data/doc/ex/gradientfill.rb +0 -27
  148. data/doc/ex/grav.rb +0 -45
  149. data/doc/ex/gravity.rb +0 -80
  150. data/doc/ex/group.rb +0 -26
  151. data/doc/ex/hatchfill.rb +0 -27
  152. data/doc/ex/image.rb +0 -44
  153. data/doc/ex/images/Apple.miff +0 -0
  154. data/doc/ex/images/Ballerina.jpg +0 -0
  155. data/doc/ex/images/Ballerina3.jpg +0 -0
  156. data/doc/ex/images/Button_0.gif +0 -0
  157. data/doc/ex/images/Button_1.gif +0 -0
  158. data/doc/ex/images/Button_2.gif +0 -0
  159. data/doc/ex/images/Button_3.gif +0 -0
  160. data/doc/ex/images/Button_4.gif +0 -0
  161. data/doc/ex/images/Button_5.gif +0 -0
  162. data/doc/ex/images/Button_6.gif +0 -0
  163. data/doc/ex/images/Button_7.gif +0 -0
  164. data/doc/ex/images/Button_8.gif +0 -0
  165. data/doc/ex/images/Button_9.gif +0 -0
  166. data/doc/ex/images/Button_A.gif +0 -0
  167. data/doc/ex/images/Button_B.gif +0 -0
  168. data/doc/ex/images/Button_C.gif +0 -0
  169. data/doc/ex/images/Button_D.gif +0 -0
  170. data/doc/ex/images/Button_E.gif +0 -0
  171. data/doc/ex/images/Button_F.gif +0 -0
  172. data/doc/ex/images/Button_G.gif +0 -0
  173. data/doc/ex/images/Button_H.gif +0 -0
  174. data/doc/ex/images/Button_I.gif +0 -0
  175. data/doc/ex/images/Button_J.gif +0 -0
  176. data/doc/ex/images/Button_K.gif +0 -0
  177. data/doc/ex/images/Button_L.gif +0 -0
  178. data/doc/ex/images/Button_M.gif +0 -0
  179. data/doc/ex/images/Button_N.gif +0 -0
  180. data/doc/ex/images/Button_O.gif +0 -0
  181. data/doc/ex/images/Button_P.gif +0 -0
  182. data/doc/ex/images/Button_Q.gif +0 -0
  183. data/doc/ex/images/Button_R.gif +0 -0
  184. data/doc/ex/images/Button_S.gif +0 -0
  185. data/doc/ex/images/Button_T.gif +0 -0
  186. data/doc/ex/images/Button_U.gif +0 -0
  187. data/doc/ex/images/Button_V.gif +0 -0
  188. data/doc/ex/images/Button_W.gif +0 -0
  189. data/doc/ex/images/Button_X.gif +0 -0
  190. data/doc/ex/images/Button_Y.gif +0 -0
  191. data/doc/ex/images/Button_Z.gif +0 -0
  192. data/doc/ex/images/Cheetah.jpg +0 -0
  193. data/doc/ex/images/Coffee.wmf +0 -0
  194. data/doc/ex/images/Flower_Hat.jpg +0 -0
  195. data/doc/ex/images/Gold_Statue.jpg +0 -0
  196. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  197. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  198. data/doc/ex/images/Leaf.miff +0 -0
  199. data/doc/ex/images/No.wmf +0 -0
  200. data/doc/ex/images/Polynesia.jpg +0 -0
  201. data/doc/ex/images/Red_Rocks.jpg +0 -0
  202. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  203. data/doc/ex/images/Shorts.jpg +0 -0
  204. data/doc/ex/images/Snake.wmf +0 -0
  205. data/doc/ex/images/Violin.jpg +0 -0
  206. data/doc/ex/images/Yellow_Rose.miff +0 -0
  207. data/doc/ex/images/big-duck.gif +0 -0
  208. data/doc/ex/images/duck.gif +0 -0
  209. data/doc/ex/images/duck0.gif +0 -0
  210. data/doc/ex/images/duck1.gif +0 -0
  211. data/doc/ex/images/duck10.gif +0 -0
  212. data/doc/ex/images/duck11.gif +0 -0
  213. data/doc/ex/images/duck12.gif +0 -0
  214. data/doc/ex/images/duck13.gif +0 -0
  215. data/doc/ex/images/duck14.gif +0 -0
  216. data/doc/ex/images/duck15.gif +0 -0
  217. data/doc/ex/images/duck2.gif +0 -0
  218. data/doc/ex/images/duck3.gif +0 -0
  219. data/doc/ex/images/duck4.gif +0 -0
  220. data/doc/ex/images/duck5.gif +0 -0
  221. data/doc/ex/images/duck6.gif +0 -0
  222. data/doc/ex/images/duck7.gif +0 -0
  223. data/doc/ex/images/duck8.gif +0 -0
  224. data/doc/ex/images/duck9.gif +0 -0
  225. data/doc/ex/images/graydient230x6.gif +0 -0
  226. data/doc/ex/images/image_with_profile.jpg +0 -0
  227. data/doc/ex/images/logo400x83.gif +0 -0
  228. data/doc/ex/images/model.miff +0 -0
  229. data/doc/ex/images/notimplemented.gif +0 -0
  230. data/doc/ex/images/smile.miff +0 -0
  231. data/doc/ex/images/spin.gif +0 -0
  232. data/doc/ex/implode.rb +0 -34
  233. data/doc/ex/level.rb +0 -11
  234. data/doc/ex/level_colors.rb +0 -11
  235. data/doc/ex/line.rb +0 -41
  236. data/doc/ex/line01.rb +0 -21
  237. data/doc/ex/mask.rb +0 -35
  238. data/doc/ex/matte_fill_to_border.rb +0 -39
  239. data/doc/ex/matte_floodfill.rb +0 -32
  240. data/doc/ex/matte_replace.rb +0 -39
  241. data/doc/ex/median_filter.rb +0 -28
  242. data/doc/ex/modulate.rb +0 -11
  243. data/doc/ex/mono.rb +0 -23
  244. data/doc/ex/morph.rb +0 -25
  245. data/doc/ex/mosaic.rb +0 -35
  246. data/doc/ex/motion_blur.rb +0 -11
  247. data/doc/ex/negate.rb +0 -11
  248. data/doc/ex/negate_channel.rb +0 -9
  249. data/doc/ex/nested_rvg.rb +0 -21
  250. data/doc/ex/nonzero.rb +0 -42
  251. data/doc/ex/normalize.rb +0 -11
  252. data/doc/ex/oil_paint.rb +0 -11
  253. data/doc/ex/opacity.rb +0 -37
  254. data/doc/ex/ordered_dither.rb +0 -11
  255. data/doc/ex/path.rb +0 -63
  256. data/doc/ex/pattern1.rb +0 -25
  257. data/doc/ex/pattern2.rb +0 -26
  258. data/doc/ex/polaroid.rb +0 -27
  259. data/doc/ex/polygon.rb +0 -23
  260. data/doc/ex/polygon01.rb +0 -21
  261. data/doc/ex/polyline.rb +0 -22
  262. data/doc/ex/polyline01.rb +0 -21
  263. data/doc/ex/posterize.rb +0 -8
  264. data/doc/ex/preview.rb +0 -8
  265. data/doc/ex/qbezierpath.rb +0 -52
  266. data/doc/ex/quad01.rb +0 -34
  267. data/doc/ex/quantize-m.rb +0 -25
  268. data/doc/ex/radial_blur.rb +0 -9
  269. data/doc/ex/raise.rb +0 -8
  270. data/doc/ex/random_threshold_channel.rb +0 -13
  271. data/doc/ex/rect01.rb +0 -14
  272. data/doc/ex/rect02.rb +0 -20
  273. data/doc/ex/rectangle.rb +0 -34
  274. data/doc/ex/reduce_noise.rb +0 -28
  275. data/doc/ex/remap.rb +0 -11
  276. data/doc/ex/remap_images.rb +0 -19
  277. data/doc/ex/resize_to_fill.rb +0 -8
  278. data/doc/ex/resize_to_fit.rb +0 -8
  279. data/doc/ex/roll.rb +0 -9
  280. data/doc/ex/rotate.rb +0 -44
  281. data/doc/ex/rotate_f.rb +0 -14
  282. data/doc/ex/roundrect.rb +0 -33
  283. data/doc/ex/rubyname.rb +0 -30
  284. data/doc/ex/rvg_clippath.rb +0 -12
  285. data/doc/ex/rvg_linecap.rb +0 -42
  286. data/doc/ex/rvg_linejoin.rb +0 -40
  287. data/doc/ex/rvg_opacity.rb +0 -18
  288. data/doc/ex/rvg_pattern.rb +0 -26
  289. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  290. data/doc/ex/segment.rb +0 -11
  291. data/doc/ex/sepiatone.rb +0 -7
  292. data/doc/ex/shade.rb +0 -11
  293. data/doc/ex/shadow.rb +0 -30
  294. data/doc/ex/shave.rb +0 -15
  295. data/doc/ex/shear.rb +0 -10
  296. data/doc/ex/sketch.rb +0 -17
  297. data/doc/ex/skewx.rb +0 -51
  298. data/doc/ex/skewy.rb +0 -47
  299. data/doc/ex/smile.rb +0 -125
  300. data/doc/ex/solarize.rb +0 -11
  301. data/doc/ex/sparse_color.rb +0 -54
  302. data/doc/ex/splice.rb +0 -8
  303. data/doc/ex/spread.rb +0 -11
  304. data/doc/ex/stegano.rb +0 -55
  305. data/doc/ex/stroke_dasharray.rb +0 -42
  306. data/doc/ex/stroke_fill.rb +0 -10
  307. data/doc/ex/stroke_linecap.rb +0 -44
  308. data/doc/ex/stroke_linejoin.rb +0 -48
  309. data/doc/ex/stroke_width.rb +0 -49
  310. data/doc/ex/swirl.rb +0 -17
  311. data/doc/ex/text.rb +0 -37
  312. data/doc/ex/text01.rb +0 -16
  313. data/doc/ex/text_align.rb +0 -36
  314. data/doc/ex/text_antialias.rb +0 -37
  315. data/doc/ex/text_styles.rb +0 -19
  316. data/doc/ex/text_undercolor.rb +0 -28
  317. data/doc/ex/texture_fill_to_border.rb +0 -34
  318. data/doc/ex/texture_floodfill.rb +0 -32
  319. data/doc/ex/texturefill.rb +0 -24
  320. data/doc/ex/threshold.rb +0 -13
  321. data/doc/ex/to_blob.rb +0 -13
  322. data/doc/ex/translate.rb +0 -39
  323. data/doc/ex/transparent.rb +0 -38
  324. data/doc/ex/transpose.rb +0 -9
  325. data/doc/ex/transverse.rb +0 -9
  326. data/doc/ex/tref01.rb +0 -24
  327. data/doc/ex/triangle01.rb +0 -15
  328. data/doc/ex/trim.rb +0 -23
  329. data/doc/ex/tspan01.rb +0 -17
  330. data/doc/ex/tspan02.rb +0 -17
  331. data/doc/ex/tspan03.rb +0 -19
  332. data/doc/ex/unsharp_mask.rb +0 -28
  333. data/doc/ex/viewex.rb +0 -33
  334. data/doc/ex/vignette.rb +0 -12
  335. data/doc/ex/watermark.rb +0 -27
  336. data/doc/ex/wave.rb +0 -9
  337. data/doc/ex/wet_floor.rb +0 -58
  338. data/doc/ex/writing_mode01.rb +0 -26
  339. data/doc/ex/writing_mode02.rb +0 -26
  340. data/doc/ilist.html +0 -2056
  341. data/doc/image1.html +0 -4680
  342. data/doc/image2.html +0 -3665
  343. data/doc/image3.html +0 -4522
  344. data/doc/imageattrs.html +0 -1638
  345. data/doc/imusage.html +0 -514
  346. data/doc/index.html +0 -416
  347. data/doc/info.html +0 -1499
  348. data/doc/magick.html +0 -565
  349. data/doc/optequiv.html +0 -2435
  350. data/doc/rvg.html +0 -975
  351. data/doc/rvgclip.html +0 -248
  352. data/doc/rvggroup.html +0 -305
  353. data/doc/rvgimage.html +0 -289
  354. data/doc/rvgpattern.html +0 -475
  355. data/doc/rvgshape.html +0 -406
  356. data/doc/rvgstyle.html +0 -270
  357. data/doc/rvgtext.html +0 -465
  358. data/doc/rvgtspan.html +0 -238
  359. data/doc/rvgtut.html +0 -530
  360. data/doc/rvguse.html +0 -145
  361. data/doc/rvgxform.html +0 -294
  362. data/doc/scripts/doc.js +0 -22
  363. data/doc/scripts/stripeTables.js +0 -23
  364. data/doc/struct.html +0 -1339
  365. data/doc/usage.html +0 -1621
  366. data/examples/constitute.rb +0 -7
  367. data/examples/crop_with_gravity.rb +0 -42
  368. data/examples/demo.rb +0 -324
  369. data/examples/describe.rb +0 -43
  370. data/examples/find_similar_region.rb +0 -34
  371. data/examples/histogram.rb +0 -321
  372. data/examples/identify.rb +0 -185
  373. data/examples/image_opacity.rb +0 -29
  374. data/examples/import_export.rb +0 -31
  375. data/examples/pattern_fill.rb +0 -38
  376. data/examples/rotating_text.rb +0 -44
  377. data/examples/spinner.rb +0 -49
  378. data/examples/thumbnail.rb +0 -64
  379. data/examples/vignette.rb +0 -78
  380. data/spec/rmagick/ImageList1_spec.rb +0 -24
  381. data/spec/rmagick/draw_spec.rb +0 -156
  382. data/spec/rmagick/image/blue_shift_spec.rb +0 -16
  383. data/spec/rmagick/image/composite_spec.rb +0 -140
  384. data/spec/rmagick/image/constitute_spec.rb +0 -15
  385. data/spec/rmagick/image/dispatch_spec.rb +0 -18
  386. data/spec/rmagick/image/from_blob_spec.rb +0 -14
  387. data/spec/rmagick/image/ping_spec.rb +0 -14
  388. data/spec/rmagick/image/properties_spec.rb +0 -29
  389. data/spec/spec_helper.rb +0 -4
  390. data/test/Image1.rb +0 -565
  391. data/test/Image2.rb +0 -1304
  392. data/test/Image3.rb +0 -1030
  393. data/test/ImageList1.rb +0 -806
  394. data/test/ImageList2.rb +0 -385
  395. data/test/Image_attributes.rb +0 -697
  396. data/test/Import_Export.rb +0 -121
  397. data/test/Info.rb +0 -345
  398. data/test/Magick.rb +0 -321
  399. data/test/Pixel.rb +0 -116
  400. data/test/Preview.rb +0 -57
  401. data/test/cmyk.icm +0 -0
  402. data/test/srgb.icm +0 -0
  403. data/test/test_all_basic.rb +0 -38
  404. data/test/tmpnam_test.rb +0 -50
  405. data/wercker.yml +0 -10
data/CHANGELOG.md CHANGED
@@ -3,6 +3,441 @@
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.1.0
7
+
8
+ Improvements
9
+ - Improve multi-thread performance by releasing GVL (#1352)
10
+ - Add Ractor support (#1349)
11
+ - Avoid overriding compilation variables (#1365)
12
+ - Remove pkg-config command dependency (#1366)
13
+
14
+ ## RMagick 5.0.0
15
+
16
+ Improvements
17
+
18
+ - Improve installer in order to avoid SEGV within pkg-config command (#1359)
19
+ - Clean up the documents and comment in source code referring to something that no longer exist (#1363)
20
+ - Remove deprecated 'tile' attribute in Draw#marshal_dump (#1364)
21
+ - Remove deprecated #instance_eval calling when block was given with Magick::ImageList#montage, Magick::Image::Info.new and more (#1362)
22
+ - Remove deprecated RMagick.rb file (#1361)
23
+ - Remove deprecated Magick.trace_proc= (#1351)
24
+ - Remove deprecated Magick::{Image, Image::Info}#monitor= (#1356)
25
+
26
+ ## RMagick 4.3.0
27
+
28
+ Deprecates
29
+
30
+ - Mark Magick.trace_proc= as deprecated (#1354)
31
+ - Mark Magick::{Image, Image::Info}#monitor= as deprecated (#1353)
32
+
33
+ These methods will be removed in RMagick 5.0 and no alternative.
34
+
35
+ ## RMagick 4.2.6
36
+
37
+ Improvements
38
+
39
+ - Remove test_files to reduce gem package size (#1338)
40
+
41
+ Bug Fixes
42
+
43
+ - Guard against an empty rpath (#1333)
44
+ - Call GetImageDistortion instead of IsImagesEqual to fix the issue reported in #1342 (#1343)
45
+
46
+ ## RMagick 4.2.5
47
+
48
+ Bug Fixes
49
+
50
+ - Specify rpath linker option to fix dynamic lib lookup failure on Linux (#1325)
51
+ - Fix Image#profile! that can't delete exif data (#1326)
52
+
53
+ ## RMagick 4.2.4
54
+
55
+ Improvements
56
+
57
+ - spec_helper: drop require_relative to lib directory (#1306)
58
+ - Fix build error with Ruby 3.1 on macOS (#1313)
59
+
60
+ Bug Fixes
61
+
62
+ - remove Mutex in trace_proc= (#1303)
63
+ - channel_mean_spec: fix floating point comparison (#1307)
64
+ - changed_predicate_spec: ensure target directory exists (#1305)
65
+ - Doc: Fix documentation of Magick::Image#crop (#1311)
66
+ - Magick::UndefinedKernel should also not be used when creating a new KernelInfo. (#1312)
67
+
68
+ ## RMagick 4.2.3
69
+
70
+ Bug Fixes
71
+
72
+ - Re-add block syntax deprecation warning and fix in RMagick source (#1279) (#1280)
73
+ - Doc: Replace Magick::Montage with Magick::ImageList::Montage (#1281)
74
+ - Update shadow example (#1297)
75
+ - Escape the backslashes in windows error message (#1298)
76
+ - Also set the alpha value of the target pixel (#1299)
77
+ - Set alpha_trait to BlendPixelTrait when the alpha value of the pixel is not opaque. (#1300)
78
+
79
+ ## RMagick 4.2.2
80
+
81
+ Bug Fixes:
82
+
83
+ - Remove deprecation warning about block syntax (#1272)
84
+
85
+ You are still recommended to use the block parameter instead of `self.` but
86
+ we're silencing the deprecation warning until we can get RMagick's code up to
87
+ that standard.
88
+
89
+ ## RMagick 4.2.1
90
+
91
+ Bug Fixes:
92
+
93
+ - Fix compilation with optimization on glibc (#1263)
94
+
95
+ ## RMagick 4.2.0
96
+
97
+ This adds a deprecation warning when using a block for image operations.
98
+ Instead of setting properties on `self`, you should accept a block argument and
99
+ modify that instead. In a future version we we no longer be binding the block
100
+ to the image.
101
+
102
+ ```diff
103
+ - img.to_blob { self.quality = 75 }
104
+ + img.to_blob { |image| image.quality = 75 }
105
+ ```
106
+
107
+ Improvements:
108
+
109
+ - Updated error messages if runtime ImageMagick version was not matched with when installed rmagick (#1213)
110
+ - Improve Image#resize performance with ImageMagick 7 (#1240)
111
+ - Added new colorspaces (#1252)
112
+
113
+ Bug Fixes:
114
+
115
+ - Fix assertion failed in Magick::TextureFill.new with with unexpected argument (#1216)
116
+ - Call with yield when there is a block arguments (#701)
117
+ - Avoid crash with monitor feature on Ruby 3.0 (#1253)
118
+
119
+ ## RMagick 4.1.2
120
+
121
+ Bug Fixes:
122
+
123
+ - Fix build error on Freebsd (#1199)
124
+ - Add workaround for FreeBSD that it isn't able to process PDF (#1203)
125
+
126
+ ## RMagick 4.1.1
127
+
128
+ Bug Fixes:
129
+
130
+ - Fix bug of signal handling internally (#1189)
131
+
132
+ ## RMagick 4.1.0
133
+
134
+ Improvements:
135
+
136
+ - reduce package size by more than 1.5mb (#849)
137
+ - improve memory usage (#836)
138
+ - add support for Ruby 2.7 (#853)
139
+ - *many* documentation fixes and cleanups
140
+ - *many* testing fixes and cleanups
141
+ - Support CMYK color in Image#get_pixels (#871)
142
+ - Support to get CMYK color in Image#pixel_color (#875)
143
+ - Support to set CMYK color in Image#pixel_color (#908)
144
+ - Add ImageList#map (#1154)
145
+
146
+ Bug Fixes:
147
+
148
+ - fixed memory leaks (#809, #815, #816, #960, #1024)
149
+ - eliminate compiler warnings (#855, #864, #878, #917, #969, #981, #996, #1000, #1044)
150
+ - Recognize invert option in Image#opaque_channel with ImageMagick 7 (#882)
151
+ - Fix heap-buffer-overflow in Image#wet_floor with ImageMagick 7 (#883)
152
+ - Handle channel value with new image in Image#opaque_channel with ImageMagick 7 (#886)
153
+ - Pass caption value into ImageMagick 7 API in Image#polaroid (#898)
154
+ - Example: Fix “uninitialized constant Magick::TransparentOpacity” error (#899)
155
+ - Example: Fix error of constant usage (#900)
156
+ - Example: Fix error in doc/ex/composite.rb (#901)
157
+ - Example: Fix error in doc/ex/crop_with_gravity.rb (#902)
158
+ - Revert removed RemapImages() calling in ImageList#remap for ImageMagick 6 (#904)
159
+ - Example: Fix alpha channel in examples/vignette.rb (#918)
160
+ - Example: Fix alpha channel in doc/ex/coalesce.rb (#920)
161
+ - Handle alpha value in Pixel#to_color (#922)
162
+ - Detect the proper ARCHFLAGS on macOS (#923)
163
+ - Handle boolean value as dither option in ImageList#quantize (#926)
164
+ - Use strlcpy instead of strncpy to ensure null terminating. (#933)
165
+ - Remove memalign() (#939)
166
+ - Add safe strlen() to ensure avoiding buffer overrun (#940)
167
+ - Use strlcpy() instead of strcpy() to ensure avoiding buffer overflow (#941)
168
+ - Use snprintf() instead of sprintf() to ensure avoiding buffer overflow (#945)
169
+ - Example: Remove unnecessary alpha setting (#950)
170
+ - Replace to correct format specifiers for size_t/ssize_t value (#978)
171
+ - Use proper format specifiers within MinGW (#997)
172
+ - Fix snprintf() format specifiers for unsigned value (#1006)
173
+ - Fix warning of “Variable is reassigned a value before the old one has been use” (#1008)
174
+ - Fix warning of “warning: explicitly assigning value of variable of type 'int' to itself” (#1013)
175
+ - Fix Image#resample to use blur option properly with ImageMagick 7 (#1023)
176
+ - Fix Image#resize to use blur option properly with ImageMagick 7 (#1032)
177
+ - Fix that Color#compliance returns nil with undefined bit (#1049)
178
+ - Check memory API properly on Windows (#1050)
179
+ - Example: Fix “undefined method `opacity’” (#1051)
180
+ - Add workaround to pdf problem (#1072)
181
+ - Fix exception message because #export_pixels accept 0 argument (#1121)
182
+ - Fix default value of `fill` argument in Image#initialize (#1122)
183
+ - Call rm_ensure_result() in creating Image object (#1144)
184
+ - Use StringValueCStr() instead of StringValuePtr() (#1156)
185
+ - Use RSTRING_PTR() to retrieve a pointer of String object for buffer (#1157)
186
+ - Use StringValueCStr() to get null-terminated C-lang string (#1158)
187
+ - Fix SEGV in Magick::Draw#marshal_load (#1162)
188
+ - Fix SEGV in rm_check_ary_len() with unexpected argument value (#1168)
189
+ - Fix SEGV in Image#marshal_load (#1169)
190
+
191
+ Breaking Changes:
192
+
193
+ - remove `tainted?` logic (#854)
194
+
195
+ ## RMagick 4.1.0.rc2
196
+
197
+ - fix a couple of compilation bugs (#796, #797)
198
+
199
+ ## RMagick 4.1.0.rc1
200
+
201
+ The ImageMagick 7 release is here! This adds beta support for ImageMagick 7.
202
+ Much thanks to **@Watson1978** for getting the ball rolling on this and to
203
+ **@dlemstra** for the extraordinary amount of work and patience that went into
204
+ seeing it through. RMagick should currently behave the same way under IM7 as it
205
+ did under IM6, so please open an issue if you find anything that seems out of
206
+ the ordinary.
207
+
208
+ ## RMagick 4.0.0
209
+
210
+ This release removes a *lot* of deprecated functionality, so first upgrade to
211
+ 3.2 and handle any deprecation warnings you see there before upgrading to 4.0.
212
+ There are a handful of removals that we could not, or forgot to deprecate, so
213
+ pay special attention to those below. This clears the road for ImageMagick 7
214
+ support in the very near future.
215
+
216
+ Breaking Changes:
217
+
218
+ - Removed deprecated Image#matte and Image#matte= (#731)
219
+ - Removed deprecated Draw#matte. (#736)
220
+ - Removed deprecated ImageList#fx. (#732)
221
+ - Removed deprecated Info#group and Info#group=. (#733)
222
+ - Removed deprecated KernelInfo#show. (#734)
223
+ - Removed deprecated Pixel#opacity and Pixel#opacity=. (#735)
224
+ - Removed deprecated KernelInfo#zero_nans. (#741)
225
+ - Removed deprecated ImageList#map (#740)
226
+ - Removed deprecated Pixel#from_HSL. (#742)
227
+ - Removed deprecated Image#alpha=. (#739)
228
+ - Removed deprecated Pixel#to_HSL. (#745)
229
+ - Removed deprecated Image#blur and Image#blur=. (#746)
230
+ - Removed deprecated Image#sync_profiles. (#754)
231
+ - Removed deprecated Image#opacity=. (#753)
232
+ - Removed deprecated Image#combine. (#752)
233
+ - Removed deprecated Image#map. (#751)
234
+ - Removed deprecated Image#mask=. (#750)
235
+ - Removed deprecated opacity arguments. (#757)
236
+ - Removed deprecated `OpaqueOpacity` and `TransparentOpacity`. (#765)
237
+ - Removed obsolete enumerations. (#766)
238
+
239
+ The following changes *did not have deprecation warnings* in 3.2, so you'll
240
+ want to double check that you update your code if you were relying on the
241
+ existing behavior:
242
+
243
+ - Changed Color#to_s to return an string that contains alpha instead of opacity. (#760)
244
+ - Changed Pixel#to_s to return a string that contains alpha instead of opacity. (#762)
245
+ - Changed Pixel#hash to use alpha instead of opacity. (#763)
246
+ - Changed Pixel#<=> to use alpha instead of opacity. (#764)
247
+ - Removed `BicubicInterpolatePixel` (use `CatromInterpolatePixel` instead) (#768)
248
+ - Removed `FilterInterpolatePixel` (no replacement) (#768)
249
+ - Renamed `NearestNeighborInterpolatePixel` to `NearestInterpolatePixel` (#768)
250
+
251
+ Enhancements:
252
+
253
+ - Add SetQuantumOperator (#755)
254
+
255
+ Bug Fixes:
256
+
257
+ - Fix SEGV in Image#each_profile (#737)
258
+
259
+ ## RMagick 3.2.0
260
+
261
+ This is expected to be the final deprecation release before RMagick 4.0. We
262
+ have added loads of deprecation warnings to clear the pathway for ImageMagick 7
263
+ support. Once you've fixed all of them you should be fine to upgrade to version
264
+ 4.0 without any pain. There are a small handful of edge cases which we could
265
+ not cleanly deprecate, though they should be extremely rare. These will be
266
+ documented in the 4.0 release. Thanks to @dlemstra for the hard work making
267
+ this release possible.
268
+
269
+ The biggest change in moving towards RMagick 4.0 will be the fact that
270
+ `opacity` is deprecated in favor of `alpha`.
271
+
272
+ **NOTE: `opacity` is the opposite of `alpha`!!!**
273
+
274
+ If you are currently passing opacity into methods, you will need to invert the
275
+ value and use the new `alpha:` keyword argument. If you are passing an integer,
276
+ `alpha = 255 - opacity`. An integer `opacity` of 0 is an `alpha` of 255.
277
+
278
+ Also, **major kudos to @Watson1978** for enabling Ruby's memory management in
279
+ (#697). This should go a long way towards improving RMagick's reputation for
280
+ memory usage.
281
+
282
+ Deprecations: (To be removed in RMagick 4.0)
283
+
284
+ - `Info#group` (#578) (no replacement)
285
+ - `Image#blur` (#579) (no replacement)
286
+ - Renamed `AlphaChannelType` to `AlphaChannelOption` (#596)
287
+ - Renamed `DistortImageMethod` to `DistortMethod` (#605)
288
+ - Renamed `FilterTypes` to `FilterType` (#611)
289
+ - Renamed `InterpolatePixelMethod` to `PixelInterpolateMethod` (#613)
290
+ - Renamed `ImageLayerMethod` to `LayerMethod` (#618)
291
+ - Deprecate the `opacity` property of the Pixel class. (use `alpha` instead) (#619)
292
+ - Deprecate old enum names. (use IM7 names instead) (#627)
293
+ - `StaticGravity` (use `CenterGravity` instead) (#638)
294
+ - `Image#sync_profiles` (no replacement) (#640)
295
+ - Deprecate old metric type values (use IM7 names instead) (#647)
296
+ - Deprecate `ResetAlphaChannel` (no replacement) (#644)
297
+ - Deprecate `FlattenAlphaChannel` (no replacement) (#645)
298
+ - Deprecate `MatteChannel` (no replacement) (#646)
299
+ - Deprecate `ConstantVirtualPixelMethod` (no replacement) (#649)
300
+ - Deprecate `IntegerPixel` (no replacement) (#650)
301
+ - Deprecate `Image.combine` (use `ImageList#combine` instead) (#690)
302
+ - Deprecate `Image#opacity` (use `Image#alpha` instead) (#669)
303
+ - Deprecate unnamed argument for opacity in `Image#transparent` (use keyword `alpha:` instead) (#695)
304
+ - Deprecate unnamed argument for opacity in `Image#black_threshold` and `Image#white_threshold.` (use keyword `alpha:` instead) (#709)
305
+ - Deprecate unnamed argument for opacity in `Image#matte_flood_fill` (use keyword `alpha:` instead) (#711)
306
+ - Deprecate unnamed argument for opacity in `Image#paint_transparent` (use keyword `alpha:` instead) (#717)
307
+ - Deprecate unnamed argument for opacity in `Image#transparent_chroma.` (use keyword `alpha:` instead) (#722)
308
+ - Deprecate `Draw#matte` (use `Draw#alpha` instead) (#724)
309
+
310
+ Enhancements:
311
+
312
+ - Many internal adjustments to prepare for ImageMagick 7 support.
313
+ - Added alpha property to the pixel class. (#617)
314
+ - Add combine to the ImageList class. (#589)
315
+ - Add new alpha constants (#651)
316
+ - Add `Image#mask=` (#660)
317
+ - Add `Draw#alpha` to replace `Draw#matte` (#726)
318
+ - Add Draw#image (#720)
319
+ - Add ArchLinux support (#727)
320
+
321
+ Bug Fixes:
322
+
323
+ - Fix `Font#to_s` to not raise error (#569)
324
+ - Fix a SEGV in `Image#reduce_noise` (#576)
325
+ - Fix infinite loop in `Image#compose` (#587)
326
+ - Fix enumeration memory leaks (#592) (#594) (#606) (#610) (#626)
327
+ - Don't allow `Image#class_type` to be set to undefined (#599)
328
+ - Fixed setting the name of the clip path. (#608)
329
+ - Fix memory leak in `Info#view=` (#642)
330
+ - Fix memory leak in `Image.constitute` (#665)
331
+ - Raise error on invalid arguments in `Draw#bezier` (#674)
332
+ - Fix memory leak in `Image#sparse_color` (#683)
333
+ - Prevent negative values for `Image#convolve` (#679)
334
+ - Several cleanups and fixes in the examples
335
+ - Raise error on invalid arguments in `Draw#color` (#691)
336
+ - Raise error on invalid arguments in `Draw#opacity` (#692)
337
+ - Raise error on invalid arguments in `Draw#fill_opacity` (#693)
338
+ - Raise error on invalid arguments in `Draw#stroke_opacity` (#694)
339
+ - Raise error on invalid arguments in `Draw#font_weight` (#696)
340
+ - Raise error on invalid arguments in `Draw#pattern` (#702)
341
+ - Raise error on invalid arguments in `Draw#point` (#703)
342
+ - Raise error on invalid arguments in `Draw#font_size` (#704)
343
+ - Raise error on invalid arguments in `Draw#polygon` (#705)
344
+ - Raise error on invalid arguments in `Draw#polyline` (#706)
345
+ - Raise error on invalid arguments in `Draw#rotate` (#707)
346
+ - Raise error on invalid arguments in `Draw#scale` (#708)
347
+ - Raise error on invalid arguments in `Draw#stroke_dashoffset` (#710)
348
+ - Raise error on invalid arguments in `Draw#translate` (#713)
349
+ - Raise error on invalid arguments in `Draw#text` (#714)
350
+ - Raise error on invalid arguments in `Draw#stroke` (#715)
351
+ - Raise error on invalid arguments in `Draw#matte` (#716)
352
+ - Raise error on invalid arguments in `Draw#skewx`, `Draw#skewy` (#719)
353
+ - Fix `Image#thumbnail` to keep image aspect ratio like ImageMagick (#718)
354
+ - Fix bug where `ImageList#montage` doesn't apply `border_color` & `matte_color` (#601)
355
+ - Fix stack-buffer-overflow in `Draw#annotate` (#725)
356
+ - Enable managed memory feature (#697)
357
+
358
+ Code Quality:
359
+
360
+ - Many tests written
361
+ - Several fixes to reduce compiler warnings.
362
+
363
+ ## RMagick 3.1.0
364
+
365
+ Deprecations: (To be removed in RMagick 4.0)
366
+
367
+ - Support for Ruby 2.3
368
+ - `KernelInfo#zero_nans` (#531) (no replacement)
369
+ - `KernelInfo#show` (#532) (no replacement)
370
+ - `ImageList#fx` (#529) (use `Image#fx` instead)
371
+ - `Image#alpha=` (#530) (use `Image#alpha` instead)
372
+ - `Image#mask=` (#530) (use `Image#mask` instead)
373
+ - `Image#matte` (#530) (use `Image#alpha` instead)
374
+ - `Image#matte=` (#530) (use `Image#alpha` instead)
375
+
376
+ Enhancements:
377
+
378
+ - Support ruby-mswin environment on Windows (#425)
379
+ - Add test for supporting webp format (#406)
380
+ - Add explicit Ruby 2.5 support (#339)
381
+ - Add explicit Ruby 2.6 support (#467)
382
+ - Restore support for ImageMagick 6.7 (#475)
383
+ - Add explicit ImageMagick 6.9 support (#340)
384
+ - Work towards ImageMagick 7.0 support (#470) (#487) (#489) (#492) (#494)
385
+ - Improve error messaging (#480) (#517)
386
+ - Add TimeResource support (#402)
387
+ - Add Image#fx method (#529)
388
+
389
+ Bug Fixes:
390
+
391
+ - Many, many memory leaks fixed
392
+ (#362) (#361) (#360) (#359) (#358) (#357) (#367) (#370) (#364) (#372) (#373)
393
+ (#374) (#375) (#376) (#385) (#384) (#383) (#382) (#381) (#380) (#379) (#378)
394
+ (#377) (#391) (#390) (#389) (#396) (#401) (#409) (#419) (#417) (#416) (#415)
395
+ (#414) (#413) (#412) (#411) (#410) (#418) (#454) (#453) (#452) (#451) (#450)
396
+ (#461) (#460) (#459) (#563)
397
+ - Fix SEGV in ImageList methods with invalid image list (#356)
398
+ - Fix SEGV in Image#recolor (#387)
399
+ - Fix SEGV in Image#profile! (#400)
400
+ - Fix build error on Homebrew environment (#426)
401
+ - Fix Image#quantize and ImageList#quantize could not make dither false (#458)
402
+ - Replace obsoleted $defout to $stdout (#463)
403
+ - Avoid SEGV in monitor feature for Ruby 2.5+ (#462)
404
+ - Fix SEGV in Image#write with CMYKColorspace (#465)
405
+ - Avoid problems related to GC in monitor feature (#468)
406
+ - Get rid of compiler warnings (#484) (#491) (#500)
407
+ - Fix rmfill leaks (#528)
408
+ - Removed automatic allocation of the ImageInfo that is broken. (#547)
409
+ - Fix color histogram (#540)
410
+ - Fix Image#iptc_profile does not work with ImageMagick 6.7 (#558)
411
+
412
+ Code Quality:
413
+
414
+ - Many tests written
415
+ - CI improvements
416
+ - Other refactors
417
+
418
+ ## RMagick 3.0.0
419
+
420
+ Breaking Changes:
421
+
422
+ - Drop support for Ruby < 2.3.
423
+ - Drop support for ImageMagick < 6.8.
424
+ - Raise error when `nil` or empty string are passed to `Image.read`. (#351)
425
+ - Monitor feature disabled on Windows. (#344)
426
+ - Note: ruby versions > 2.4 and ImageMagick versions > 6.8 are not *explicitly*
427
+ supported, yet, but if you are using them already, they should continue to
428
+ work in the same fashion.
429
+
430
+ Enhancements:
431
+
432
+ - Add feature `Image#channel_entropy` (#300)
433
+ - Many quality of life improvements in the codebase.
434
+
435
+ Bug Fixes:
436
+
437
+ - Many memory leaks fixed!
438
+ - Fix `LoadError` on Windows. (#315)
439
+ - fix argument count in `Image#morphology_channel` (#306)
440
+
6
441
  ## RMagick 2.16.0
7
442
 
8
443
  - Support ImageMagick 6.9+ - @ZipoKing
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,13 +1,128 @@
1
- # Contributor Code of Conduct
1
+ # Contributor Covenant Code of Conduct
2
2
 
3
- As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
3
+ ## Our Pledge
4
4
 
5
- We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
6
11
 
7
- Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
8
14
 
9
- Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
15
+ ## Our Standards
10
16
 
11
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
12
19
 
13
- *This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)*
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the
26
+ overall community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or
31
+ advances of any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email
35
+ address, without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ robert@boon.gl. All complaints will be reviewed and investigated promptly and
64
+ fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series
86
+ of actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or
93
+ permanent ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within
113
+ the community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120
+
121
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct
122
+ enforcement ladder](https://github.com/mozilla/diversity).
123
+
124
+ [homepage]: https://www.contributor-covenant.org
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ https://www.contributor-covenant.org/faq. Translations are available at
128
+ https://www.contributor-covenant.org/translations.
data/CONTRIBUTING.md CHANGED
@@ -20,8 +20,13 @@ RMagick is a Ruby gem with a C extension. The extension wraps the ImageMagick C
20
20
  Priorities
21
21
  ----------
22
22
 
23
- 1. Green build of the gem on all operating systems. You can see the current build state on [the project page at Travis CI](https://travis-ci.org/rmagick/rmagick). You are welcome to improve it.
24
- 2. [Open issues](https://github.com/rmagick/rmagick/issues). You are welcome to reproduce them, report current state, suggest solutions, open pull requests with fixes. If you don't know where to start, sort issues by least recently updated. You can also [subscribe to receive random issues by email](http://www.codetriage.com/rmagick/rmagick).
23
+ 1. [Open issues][open-issues]. You are welcome to reproduce them, report
24
+ current state, suggest solutions, open pull requests with fixes. If you
25
+ don't know where to start, sort issues by least recently updated. You can
26
+ also [subscribe to receive random issues by email][codetriage].
27
+
28
+ 2. [CodeClimate Issues][codeclimate-issues]. You can install [CodeClimate
29
+ Browser Extension][codeclimate-extension] to see them right on GitHub.
25
30
 
26
31
 
27
32
  Testing
@@ -33,18 +38,44 @@ If you write new tests, please do it in RSpec.
33
38
 
34
39
  You are also welcome to convert existing Test/Unit tests to RSpec.
35
40
 
41
+ Run all tests:
42
+
43
+ bundle exec rake
44
+
45
+ It will run RSpec and Minitest tests.
46
+
47
+ Useful information about RSpec:
48
+ * [Better Specs](http://www.betterspecs.org/) — how to write RSpec tests better
49
+ * [RSpec matchers cheat sheet](http://cheatrags.com/rspec-matchers) - how to use RSpec matchers to test different things
50
+
36
51
 
37
52
  Committing
38
53
  ----------
39
54
 
40
- All work for a next release is done in the `develop` branch. Please create your branch off of it.
41
-
42
55
  It is better if you follow [Git Style Guide](https://github.com/agis-/git-style-guide).
43
56
 
44
57
 
45
58
  Pull Requests
46
59
  -------------
47
60
 
48
- Please choose the `rmagick/rmagick` repo and the `develop` branch as the destination for your pull request.
61
+ Please choose the `rmagick/rmagick` repo as the destination for your pull
62
+ request. GitHub may suggest `rmagick-temp/rmagick` repo by default. **This is
63
+ incorrect.** Please switch to `rmagick/rmagick`. It should be the next repo in
64
+ the drop-down list.
65
+
66
+ Every pull request is tested on GitHub Actions to cover Linux builds and Windows builds.
67
+ It runs all tests on several Ruby and ImageMagick versions.
68
+
69
+ A quick way to fix formatting errors is to run `bundle exec rubocop --autocorrect path/to/file.rb`.
70
+
71
+ If you add new classes or methods, please add tests for them as well.
72
+ RSpec is preferred (see above).
73
+ Tests should test all possible branches of code execution (all conditions in `if`/`case` statements, etc.) to avoid errors later.
74
+
75
+ Thanks
76
+ ------
49
77
 
50
- NOTE: GitHub suggests `rmagick-temp/rmagick` repo by default. **This is incorrect.** Please switch to `rmagick/rmagick`. It should be the next repo in the drop-down list.
78
+ [open-issues]: https://github.com/rmagick/rmagick/issues
79
+ [codetriage]: http://www.codetriage.com/rmagick/rmagick
80
+ [codeclimate-issues]: https://codeclimate.com/github/rmagick/rmagick/issues
81
+ [codeclimate-extension]: https://docs.codeclimate.com/docs/browser-extension
data/Gemfile CHANGED
@@ -2,9 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in rmagick.gemspec
4
4
  gemspec
5
-
6
- group :development, :test do
7
- gem 'simplecov', :require => false
8
- end
9
- # Used by README.textile
10
- # gem "RedCloth"