mjml-rb 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b17ed30bd6634734e144e636e50a7a940cb074a355b85d0021bf60d4cf12232
4
- data.tar.gz: d6c58cb0e3b7e5d23315eab2fa71cbbfc7598ac6d1acbaf9b3eb1abace8473c2
3
+ metadata.gz: 576ea91f6ddfa5f9761941fa5472420588e1d772907673ba53c6152648a8d42c
4
+ data.tar.gz: ebf5669edd5b226f15489207df1f50759c91bcff8b3f30a053582fb0a87f84c3
5
5
  SHA512:
6
- metadata.gz: 7240ddaa993999e89a757206971805019f40b0092db716a355c9b41aa711dbb4ae49808ac3eb498123c39844762483d8f3680271f9f836dc5fccee231c56d9dd
7
- data.tar.gz: 80adca7028ef0dafb1d91b5b13b2a9f420bbb4a1c5922d3305249f07f4691438e29f73664387dbfe6f89bfcbebba119aaea98c7f4eb3d5918ee748b60f1b0489
6
+ metadata.gz: 53032c44384bc5ef6293a93afb4560025b686858b083d8bebf628ebd2df39b65d926f6afd89fb555f79ceb09da6175ea1d06f3eb43e55d2e8e5e982657f0736a
7
+ data.tar.gz: 77793e15678450c9fb13c8788863d0396a611b8354886b822341d080bb948229d1e28a1d69aa6c9880f9423a5b6507df126b977a31c3a1ad29128df82d4d1fec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.1 — 2026-11-05
4
+
5
+ - Raise the minimum `nokogiri` version from 1.13 to 1.19.5, which fixes
6
+ use-after-free, mutation XSS, and JRuby SSRF vulnerabilities.
7
+ - Keep the MJML compatibility target at 5.4.1.
8
+
9
+ See the [release notes](docs/releases/v0.6.1.md) and
10
+ [Nokogiri security release](https://github.com/sparklemotion/nokogiri/releases/tag/v1.19.5).
11
+
3
12
  ## 0.6.0 — 2026-10-16
4
13
 
5
14
  Target MJML 5.4.1 with a development-only pinned reference compiler. Runtime
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # MJML Ruby Implementation
4
4
 
5
- `mjml-rb` **0.6.0** is a pure-Ruby compiler targeting **MJML 5.4.1**.
5
+ `mjml-rb` **0.6.1** is a pure-Ruby compiler targeting **MJML 5.4.1**.
6
6
  The gem version and the upstream MJML version are separate. Node.js/npm is used
7
7
  only for the development reference checks; compilation requires neither.
8
8
 
@@ -16,16 +16,16 @@ only for the development reference checks; compilation requires neither.
16
16
 
17
17
  **[Full Usage Guide](docs/USAGE.md)** — API reference, all compiler options, component attribute tables, CLI flags, Rails setup, custom components, and more.
18
18
 
19
- See the [0.6.0 release notes](docs/releases/v0.6.0.md) and [changelog](CHANGELOG.md).
19
+ See the [0.6.1 release notes](docs/releases/v0.6.1.md) and [changelog](CHANGELOG.md).
20
20
 
21
21
  ## Installation
22
22
 
23
- Requires Ruby **>= 3.3**, `css_parser` **>= 1.17, < 4**, and Nokogiri **>= 1.13**.
23
+ Requires Ruby **>= 3.3**, `css_parser` **>= 1.17, < 4**, and Nokogiri **>= 1.19.5**.
24
24
  CI covers Ruby 3.3, 3.4 and 4.0 with `css_parser` 1.21, 2.x and 3.x.
25
25
 
26
26
  ```ruby
27
27
  # Gemfile
28
- gem "mjml-rb", "~> 0.6.0"
28
+ gem "mjml-rb", "~> 0.6.1"
29
29
  ```
30
30
 
31
31
  ## Quick Start
@@ -1,10 +1,10 @@
1
1
  # Migrating to MJML v5
2
2
 
3
- `mjml-rb` 0.6.0 targets **MJML 5.4.1**. The 0.5.x line retains v4 behavior.
3
+ `mjml-rb` 0.6.1 targets **MJML 5.4.1**. The 0.5.x line retains v4 behavior.
4
4
  There is no v4/v5 runtime switch. The library remains synchronous and requires
5
5
  no Node.js packages at runtime.
6
6
 
7
- Requires Ruby >= 3.3, `css_parser` >= 1.17 and < 4, and Nokogiri >= 1.13.
7
+ Requires Ruby >= 3.3, `css_parser` >= 1.17 and < 4, and Nokogiri >= 1.19.5.
8
8
  The CI matrix covers `css_parser` 1.21, 2.x and 3.x on Ruby 3.3, 3.4 and 4.0.
9
9
 
10
10
  ## Includes require opt-in
data/docs/RELEASING.md CHANGED
@@ -1,35 +1,35 @@
1
- # Publishing mjml-rb 0.6.0
1
+ # Publishing mjml-rb 0.6.1
2
2
 
3
- The maintainer merges and publishes this release. Preparation does not create a
4
- tag, publish to RubyGems, or create a GitHub release.
3
+ Release preparation bumps the version, validates the gem, and creates a draft
4
+ GitHub release targeting the release commit. Publishing the GitHub release and
5
+ pushing the gem to RubyGems are separate maintainer actions.
5
6
 
6
- Before merging PR #24, confirm all ten CI jobs pass for its final head, inspect
7
- the packaged gem and smoke-test its API and CLI from outside the checkout.
8
- Runtime source under `lib/` and `bin/` must match the downstream-validated
9
- commit `90f646e35968fdca3afda58c1f2891a7f7a290d6` unless a confirmed blocker is
10
- fixed and revalidated. Release documentation and package contents may change.
7
+ Before publishing, review the release commit and its CI results, inspect the
8
+ packaged gem, and smoke-test its API and CLI from outside the checkout. Confirm
9
+ that the draft targets the intended release commit and includes the matching
10
+ `mjml-rb-0.6.1.gem` asset. If the release commit changes, rebuild and replace the
11
+ asset and update the draft's target before publishing.
11
12
 
12
- After merging PR #24, run the following from a clean repository checkout.
13
- The detached checkout selects the PR's exact merge commit even if `main` has
14
- subsequently advanced. The release date in the changelog and prepared
15
- [release notes](releases/v0.6.0.md) is 2026-10-16.
13
+ The prepared [release notes](releases/v0.6.1.md) and changelog use 2026-11-05.
14
+ Update the date if publication happens later.
15
+
16
+ From a clean checkout of the reviewed release commit:
16
17
 
17
18
  ```sh
18
19
  set -e
19
20
  test -z "$(git status --porcelain)"
20
- test "$(gh pr view 24 --repo faraquet/mjml-rb --json state --jq .state)" = "MERGED"
21
- git fetch origin main --tags
22
- release_commit=$(gh pr view 24 --repo faraquet/mjml-rb --json mergeCommit --jq .mergeCommit.oid)
23
- git switch --detach "$release_commit"
24
- test "$(ruby -Ilib -rmjml-rb/version -e 'print MjmlRb::VERSION')" = "0.6.0"
21
+ test "$(ruby -Ilib -rmjml-rb/version -e 'print MjmlRb::VERSION')" = "0.6.1"
22
+ bundle exec rake test
25
23
  gem build mjml-rb.gemspec
26
- git tag -a v0.6.0 -m "mjml-rb 0.6.0"
27
- git push origin refs/tags/v0.6.0
28
- gem push mjml-rb-0.6.0.gem
29
- gh release create v0.6.0 --repo faraquet/mjml-rb --verify-tag --title "mjml-rb 0.6.0" --notes-file docs/releases/v0.6.0.md
30
24
  ```
31
25
 
32
- `gem push` publishes the built artifact to RubyGems using the maintainer's
33
- credentials, as described in the [RubyGems publishing guide](https://guides.rubygems.org/publishing/).
34
- No version bump is needed: the gem version is already 0.6.0, and
35
- `MjmlRb::MJML_COMPATIBILITY_VERSION` remains 5.4.1.
26
+ After maintainer approval to publish:
27
+
28
+ ```sh
29
+ gem push mjml-rb-0.6.1.gem
30
+ gh release edit v0.6.1 --repo faraquet/mjml-rb --draft=false --latest
31
+ ```
32
+
33
+ Publishing the draft creates its `v0.6.1` tag at the selected target if the tag
34
+ does not already exist. `gem push` publishes to RubyGems using the maintainer's
35
+ credentials. `MjmlRb::MJML_COMPATIBILITY_VERSION` remains 5.4.1.
data/docs/USAGE.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # mjml-rb Usage Guide
2
2
 
3
- `mjml-rb` 0.6.0 is a pure-Ruby compiler targeting [MJML 5.4.1](https://mjml.io/).
3
+ `mjml-rb` 0.6.1 is a pure-Ruby compiler targeting [MJML 5.4.1](https://mjml.io/).
4
4
  Node.js/npm is only used for development reference checks, never at runtime.
5
5
 
6
6
  - **Ruby**: >= 3.3 (CI-tested on 3.3, 3.4, and 4.0)
7
- - **Dependencies**: css_parser (>= 1.17, < 4; CI-tested with 1.21, 2.x and 3.x), nokogiri (>= 1.13)
7
+ - **Dependencies**: css_parser (>= 1.17, < 4; CI-tested with 1.21, 2.x and 3.x), nokogiri (>= 1.19.5)
8
8
  - **License**: MIT
9
9
 
10
10
  ---
@@ -0,0 +1,23 @@
1
+ # mjml-rb 0.6.1 — 2026-11-05
2
+
3
+ Raise the minimum `nokogiri` dependency from 1.13 to 1.19.5 so installations
4
+ include the fixes from Nokogiri's latest security release. Newer Nokogiri
5
+ versions remain supported.
6
+
7
+ Nokogiri 1.19.5 fixes:
8
+
9
+ - A possible use-after-free when replacing attribute values on CRuby
10
+ ([GHSA-3w22-6jfg-527w](https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-3w22-6jfg-527w)).
11
+ - Mutation XSS involving HTML5 `noscript` serialization on CRuby
12
+ ([GHSA-4p39-36wj-23h4](https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-4p39-36wj-23h4)).
13
+ - A `NONET` bypass that could allow SSRF on JRuby
14
+ ([GHSA-v995-44v6-5fqm](https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v995-44v6-5fqm)).
15
+
16
+ These are upstream Nokogiri fixes; this release does not change the MJML
17
+ compiler's rendering behavior. The MJML compatibility target remains **5.4.1**.
18
+ Ruby >= 3.3 and `css_parser` >= 1.17, < 4 are still required.
19
+
20
+ Update with `bundle update mjml-rb nokogiri`.
21
+
22
+ See the [Nokogiri 1.19.5 release notes](https://github.com/sparklemotion/nokogiri/releases/tag/v1.19.5)
23
+ for details and the HTML sanitization guidance for `noscript`.
@@ -1,4 +1,4 @@
1
1
  module MjmlRb
2
2
  MJML_COMPATIBILITY_VERSION = "5.4.1".freeze
3
- VERSION = "0.6.0".freeze
3
+ VERSION = "0.6.1".freeze
4
4
  end
data/mjml-rb.gemspec CHANGED
@@ -19,5 +19,5 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = ["mjml"]
20
20
  spec.require_paths = ["lib"]
21
21
  spec.add_dependency "css_parser", ">= 1.17", "< 4"
22
- spec.add_dependency "nokogiri", ">= 1.13"
22
+ spec.add_dependency "nokogiri", ">= 1.19.5"
23
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Andriichuk
@@ -35,14 +35,14 @@ dependencies:
35
35
  requirements:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
- version: '1.13'
38
+ version: 1.19.5
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: '1.13'
45
+ version: 1.19.5
46
46
  description: Ruby-first MJML compiler API and CLI with compatibility-focused behavior.
47
47
  email:
48
48
  - andreiandriichuk@gmail.com
@@ -65,6 +65,7 @@ files:
65
65
  - docs/RELEASING.md
66
66
  - docs/USAGE.md
67
67
  - docs/releases/v0.6.0.md
68
+ - docs/releases/v0.6.1.md
68
69
  - lib/mjml-rb.rb
69
70
  - lib/mjml-rb/cli.rb
70
71
  - lib/mjml-rb/column_gutter.rb