forme-ruby 0.1.0 → 0.2.0

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: 863572f23813b5d5090e945bbfcd36d225584aa728aaed8ff1c3e7ca73e4cdd6
4
- data.tar.gz: b152a91177bffc61c05cdacabc76fb85262ed70947ba831da4109baf3d435724
3
+ metadata.gz: 59729e8bf94118b04388c22c7c31fec173f7ab915170da01a5c0889ebd982eb5
4
+ data.tar.gz: 283853492512983124933700ac6d092b539de4995f21c2d0c3aeb1f30dab5481
5
5
  SHA512:
6
- metadata.gz: 7e785dc05aa0846e664610eba4a013c9006731ea5b5e4295bd0b517527e70fdde7df931a6778c31b2097395630b152a98ffe8dfc85c129cb7a25dd9e3c8c7ea2
7
- data.tar.gz: 8361e47d81f21658f310384205290cb6590ab1c0b663ce6543c324f16270dfdee1d1002d2bdb11ccd685757bd0b4fa7e845fb1dee2bffcf585607019016d90fc
6
+ metadata.gz: 9467b66b514e7ece4284f9a09cc2ccbd15189ad8b93293ebbc99442f8f5ce7bf5b2240f9f2a8e82bf41d3f025daa7fcbcbc8b9bcffdce7871daa95558eea08f0
7
+ data.tar.gz: 0441de602d5a2ae9175254d2d00809d3aa6ff308a6f63d11a7e9a4291802c4786a018d3ba1e832211c647bbe1fda70aa5e660b5a87fa686648ee7b9ca0e7440c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,48 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.0 (unreleased)
3
+ ## 0.2.0 (2026-10-20)
4
+
5
+ ### Breaking
6
+
7
+ - File image sources (`/`, `./`, `../`) are omitted with a warning unless the new
8
+ `image_root:` option names a directory containing them. Allowed files are
9
+ inlined after checking they are regular files of at most 64 MiB.
10
+ - Font `weight` must be an Integer from 1 to 1000 and `italic` true or false;
11
+ invalid values and non-UTF-8 `css:` or font families raise `ArgumentError`.
12
+ - `FormePDF::Rails#render_forme_pdf` is private, so Rails does not expose it as
13
+ a controller action. Call it from your own actions as before.
14
+
15
+ ### Fixed
16
+
17
+ - Rendering deeply nested HTML on a non-main Ruby thread no longer overflows the
18
+ thread's stack and hangs the process. Renders run on a native thread with a
19
+ 64 MiB stack, and documents nested deeper than 512 elements raise
20
+ `FormePDF::RenderError`.
21
+ - Failed source builds show Cargo's diagnostics instead of only
22
+ "Forme native build failed".
23
+
24
+ ### Changed
25
+
26
+ - Require Ruby 3.3 or later. The Ubuntu 24.04 package job installs a pinned
27
+ Ruby 3.3 build in its clean container.
28
+ - State only platform requirements in the README and installation guide.
29
+ - Update the native engine to Forme HTML 0.28.0 at
30
+ `b97dc101b705ea5d7fea6fb1b20fabfb5bd2d63d`; running headers and footers
31
+ no longer inherit `<body>` color and font.
32
+ - Allow the `json` 3.x runtime dependency.
33
+ - Refresh locked Rust and development dependencies and regenerate third-party notices.
34
+ - Publish on a `v*` tag push instead of a manual dispatch. The release promotes
35
+ the tagged commit's CI packages unchanged, attaches them with `SHA256SUMS` to
36
+ the GitHub release, and pushes each to RubyGems with a Sigstore attestation.
37
+ - Re-review native audit exceptions against the new engine revision.
38
+ - CI installs the source gem on macOS as well as Linux, verifies the rustup
39
+ installer checksum and pins the Ubuntu test images by digest.
40
+
41
+ ## 0.1.0 (2026-09-18)
42
+
43
+ Released on [GitHub](https://github.com/clearstackio/forme-ruby/releases/tag/v0.1.0)
44
+ and [RubyGems](https://rubygems.org/gems/forme-ruby/versions/0.1.0)
45
+ with identical source and native gems.
4
46
 
5
47
  ### Added
6
48
 
@@ -23,7 +65,9 @@
23
65
 
24
66
  - Forme HTML 0.24.0 at `f408920e632c59da0651b5b6d32f8c1397477673`.
25
67
  - Build toolchain: Rust 1.94.0; target minimums macOS 15 and glibc 2.28.
26
- - RubyGems publication and qualification of the final release commit are pending.
68
+ - Release commit `266628a` passed the full hosted platform matrix and CodeQL.
69
+ - Published all three packages through trusted publishing; registry downloads
70
+ match the qualified CI and GitHub release artifacts byte-for-byte.
27
71
 
28
72
  ### Release preparation
29
73
 
data/CONTRIBUTING.md CHANGED
@@ -5,7 +5,7 @@ Use synthetic documents and assets that can be redistributed.
5
5
 
6
6
  ## Set up a checkout
7
7
 
8
- Use CRuby 3.2+ and Rust/Cargo 1.94.0, a native linker and make. From the repository:
8
+ Use CRuby 3.3+ and Rust/Cargo 1.94.0, a native linker and make. From the repository:
9
9
 
10
10
  ```bash
11
11
  bundle install
data/NOTICE CHANGED
@@ -1,5 +1,5 @@
1
1
  forme-ruby is an independent binding, not an official Forme project.
2
2
  Forme: https://github.com/danmolitor/forme
3
- Pinned revision: f408920e632c59da0651b5b6d32f8c1397477673
3
+ Pinned revision: b97dc101b705ea5d7fea6fb1b20fabfb5bd2d63d
4
4
  Forme is MIT licensed. Native distributions must include upstream and dependency
5
5
  license notices generated during their build (see third-party notices).
data/README.md CHANGED
@@ -9,18 +9,25 @@ WebAssembly or separate rendering service is needed.
9
9
 
10
10
  This is an independent MIT-licensed binding maintained by
11
11
  [ClearStack](https://github.com/clearstackio), not an official upstream project.
12
- **0.1.0 is in preparation; RubyGems publication is pending.**
12
+ **[0.2.0 is available on RubyGems](https://rubygems.org/gems/forme-ruby/versions/0.2.0).**
13
13
 
14
14
  ## Getting started
15
15
 
16
- Until the first RubyGems release, use the Git repository and commit the resolved
17
- lockfile. Git installation compiles the native extension and requires Rust/Cargo
18
- 1.94.0, a linker and make:
16
+ Add to your Gemfile and run `bundle install`:
19
17
 
20
18
  ```ruby
21
- gem "forme-ruby", github: "clearstackio/forme-ruby", branch: "main", require: "forme_pdf"
19
+ gem "forme-ruby", "~> 0.2.0", require: "forme_pdf"
22
20
  ```
23
21
 
22
+ Or install directly:
23
+
24
+ ```sh
25
+ gem install forme-ruby -v 0.2.0
26
+ ```
27
+
28
+ RubyGems selects a matching native package where available. The same packages
29
+ and checksums are available in the [GitHub release](https://github.com/clearstackio/forme-ruby/releases/tag/v0.2.0).
30
+
24
31
  ```ruby
25
32
  require "forme_pdf"
26
33
 
@@ -28,21 +35,14 @@ pdf = FormePDF.render_html("<h1>Hello from Ruby</h1>")
28
35
  File.binwrite("hello.pdf", pdf)
29
36
  ```
30
37
 
31
- Ruby 3.2 or later is required. Planned native packages target Apple Silicon macOS
32
- 15+ and Linux AMD64 glibc 2.28+ and need no compiler. Source installs require
33
- network access to locked upstream dependencies. See [installation](docs/installation.md).
34
-
35
- ## Native platform targets
38
+ ## Requirements
36
39
 
37
- | Native gem | Qualification environments |
38
- | --- | --- |
39
- | `arm64-darwin` | Apple Silicon macOS 15 and 26 |
40
- | `x86_64-linux-gnu` | Red Hat UBI 8, 9 and 10; Ubuntu 24.04 and 26.04; Arch Linux rolling |
40
+ - Ruby 3.3 or later.
41
+ - Native gems: macOS 15+ on Apple Silicon, or Linux AMD64 with glibc 2.28+.
42
+ - Source gem: Rust/Cargo 1.94.0, a C linker, make and network access to the
43
+ locked upstream dependencies.
41
44
 
42
- These are the release CI targets; qualification of this prepared commit is
43
- pending. Red Hat testing uses official UBI images, not RHEL certification.
44
- Linux ARM64, Windows and Alpine/musl binaries are not provided. See the
45
- [installation guide](docs/installation.md) for Ruby and source-build requirements.
45
+ See the [installation guide](docs/installation.md).
46
46
 
47
47
  ## Using Rails
48
48
 
@@ -65,7 +65,7 @@ Rails is optional. The [Rails guide](docs/rails.md) also covers the opt-in
65
65
  - [Release guide](docs/releasing.md): package qualification and future publication.
66
66
  - [Changelog](CHANGELOG.md), [license](LICENSE) and [third-party notices](THIRD_PARTY_LICENSES.txt).
67
67
 
68
- Use trusted HTML and assets. The engine can read local image paths and is not a
69
- sandbox for untrusted documents. See [security](SECURITY.md). Report reproducible
68
+ Use trusted HTML and assets. Local image files are read only inside an explicit
69
+ `image_root:`, and the engine is not a sandbox for untrusted documents. See [security](SECURITY.md). Report reproducible
70
70
  bugs through [GitHub issues](https://github.com/clearstackio/forme-ruby/issues)
71
71
  with synthetic input, Ruby/platform versions and renderer diagnostics.
data/SECURITY.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # Security
2
2
 
3
- Render trusted HTML and caller-selected assets only. Forme can read local image
4
- paths and consumes CPU/memory in the host process. It is not an HTML sandbox;
3
+ Render trusted HTML and caller-selected assets only. Local image files are read
4
+ only inside a caller-supplied `image_root:`, at most 64 MiB each. Rendering
5
+ consumes CPU/memory in the host process, and some layouts, such as deeply nested
6
+ tables, can take far longer than their size suggests. It is not an HTML sandbox;
5
7
  thread cancellation is not a reliable rendering timeout.
6
8
 
7
9
  Keep confidential documents out of logs and public issue attachments. Use a
@@ -9,9 +11,6 @@ minimal synthetic reproduction when reporting a problem. Send potential
9
11
  security vulnerabilities privately to ajaya@clearstack.io rather than posting
10
12
  sensitive details publicly. No response-time guarantee is offered.
11
13
 
12
- The initial 0.1.0 release is still in preparation. Before deployment, qualify the
13
- exact package and pinned native dependencies on your application's target.
14
-
15
14
  Dependency audit exceptions and their call-path evidence are recorded in
16
15
  [the security review](docs/security-exceptions.md). They must be re-reviewed
17
16
  when the pinned engine or public native interface changes.
@@ -3236,7 +3236,7 @@ DEALINGS IN THE SOFTWARE.
3236
3236
 
3237
3237
 
3238
3238
 
3239
- crc32fast 1.5.2 — MIT OR Apache-2.0
3239
+ crc32fast 1.5.3 — MIT OR Apache-2.0
3240
3240
  https://github.com/srijs/rust-crc32fast
3241
3241
 
3242
3242
  Apache License
@@ -6631,7 +6631,7 @@ DEALINGS IN THE SOFTWARE.
6631
6631
 
6632
6632
 
6633
6633
 
6634
- forme-pdf 0.24.0 — MIT
6634
+ forme-pdf 0.28.0 — MIT
6635
6635
  https://github.com/formepdf/forme
6636
6636
 
6637
6637
  MIT License
@@ -6658,7 +6658,7 @@ SOFTWARE.
6658
6658
 
6659
6659
 
6660
6660
 
6661
- forme-pdf-html 0.24.0 — MIT
6661
+ forme-pdf-html 0.28.0 — MIT
6662
6662
  https://github.com/formepdf/forme
6663
6663
 
6664
6664
  MIT License
@@ -8240,7 +8240,7 @@ SOFTWARE.
8240
8240
 
8241
8241
 
8242
8242
 
8243
- lazy_static 1.5.0 — MIT OR Apache-2.0
8243
+ lazy_static 1.5.1 — MIT OR Apache-2.0
8244
8244
  https://github.com/rust-lang-nursery/lazy-static.rs
8245
8245
 
8246
8246
  Apache License
@@ -8446,8 +8446,6 @@ See the License for the specific language governing permissions and
8446
8446
  limitations under the License.
8447
8447
 
8448
8448
 
8449
- Copyright (c) 2010 The Rust Project Developers
8450
-
8451
8449
  Permission is hereby granted, free of charge, to any
8452
8450
  person obtaining a copy of this software and associated
8453
8451
  documentation files (the "Software"), to deal in the
@@ -8474,7 +8472,7 @@ DEALINGS IN THE SOFTWARE.
8474
8472
 
8475
8473
 
8476
8474
 
8477
- libc 0.2.189 — MIT OR Apache-2.0
8475
+ libc 0.2.191 — MIT OR Apache-2.0
8478
8476
  https://github.com/rust-lang/libc
8479
8477
 
8480
8478
  Apache License
@@ -16370,7 +16368,7 @@ DEALINGS IN THE SOFTWARE.
16370
16368
 
16371
16369
 
16372
16370
 
16373
- serde_json 1.0.151 — MIT OR Apache-2.0
16371
+ serde_json 1.0.154 — MIT OR Apache-2.0
16374
16372
  https://github.com/serde-rs/json
16375
16373
 
16376
16374
  Apache License
@@ -17074,7 +17072,7 @@ SOFTWARE.
17074
17072
 
17075
17073
 
17076
17074
 
17077
- siphasher 1.0.3 — MIT/Apache-2.0
17075
+ siphasher 1.0.4 — MIT OR Apache-2.0
17078
17076
  https://github.com/jedisct1/rust-siphash
17079
17077
 
17080
17078
  Copyright 2012-2016 The Rust Project Developers.
@@ -17087,7 +17085,230 @@ option.
17087
17085
 
17088
17086
 
17089
17087
 
17090
- smallvec 1.16.1 — MIT OR Apache-2.0
17088
+ Apache License
17089
+ Version 2.0, January 2004
17090
+ http://www.apache.org/licenses/
17091
+
17092
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
17093
+
17094
+ 1. Definitions.
17095
+
17096
+ "License" shall mean the terms and conditions for use, reproduction,
17097
+ and distribution as defined by Sections 1 through 9 of this document.
17098
+
17099
+ "Licensor" shall mean the copyright owner or entity authorized by
17100
+ the copyright owner that is granting the License.
17101
+
17102
+ "Legal Entity" shall mean the union of the acting entity and all
17103
+ other entities that control, are controlled by, or are under common
17104
+ control with that entity. For the purposes of this definition,
17105
+ "control" means (i) the power, direct or indirect, to cause the
17106
+ direction or management of such entity, whether by contract or
17107
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
17108
+ outstanding shares, or (iii) beneficial ownership of such entity.
17109
+
17110
+ "You" (or "Your") shall mean an individual or Legal Entity
17111
+ exercising permissions granted by this License.
17112
+
17113
+ "Source" form shall mean the preferred form for making modifications,
17114
+ including but not limited to software source code, documentation
17115
+ source, and configuration files.
17116
+
17117
+ "Object" form shall mean any form resulting from mechanical
17118
+ transformation or translation of a Source form, including but
17119
+ not limited to compiled object code, generated documentation,
17120
+ and conversions to other media types.
17121
+
17122
+ "Work" shall mean the work of authorship, whether in Source or
17123
+ Object form, made available under the License, as indicated by a
17124
+ copyright notice that is included in or attached to the work
17125
+ (an example is provided in the Appendix below).
17126
+
17127
+ "Derivative Works" shall mean any work, whether in Source or Object
17128
+ form, that is based on (or derived from) the Work and for which the
17129
+ editorial revisions, annotations, elaborations, or other modifications
17130
+ represent, as a whole, an original work of authorship. For the purposes
17131
+ of this License, Derivative Works shall not include works that remain
17132
+ separable from, or merely link (or bind by name) to the interfaces of,
17133
+ the Work and Derivative Works thereof.
17134
+
17135
+ "Contribution" shall mean any work of authorship, including
17136
+ the original version of the Work and any modifications or additions
17137
+ to that Work or Derivative Works thereof, that is intentionally
17138
+ submitted to Licensor for inclusion in the Work by the copyright owner
17139
+ or by an individual or Legal Entity authorized to submit on behalf of
17140
+ the copyright owner. For the purposes of this definition, "submitted"
17141
+ means any form of electronic, verbal, or written communication sent
17142
+ to the Licensor or its representatives, including but not limited to
17143
+ communication on electronic mailing lists, source code control systems,
17144
+ and issue tracking systems that are managed by, or on behalf of, the
17145
+ Licensor for the purpose of discussing and improving the Work, but
17146
+ excluding communication that is conspicuously marked or otherwise
17147
+ designated in writing by the copyright owner as "Not a Contribution."
17148
+
17149
+ "Contributor" shall mean Licensor and any individual or Legal Entity
17150
+ on behalf of whom a Contribution has been received by Licensor and
17151
+ subsequently incorporated within the Work.
17152
+
17153
+ 2. Grant of Copyright License. Subject to the terms and conditions of
17154
+ this License, each Contributor hereby grants to You a perpetual,
17155
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
17156
+ copyright license to reproduce, prepare Derivative Works of,
17157
+ publicly display, publicly perform, sublicense, and distribute the
17158
+ Work and such Derivative Works in Source or Object form.
17159
+
17160
+ 3. Grant of Patent License. Subject to the terms and conditions of
17161
+ this License, each Contributor hereby grants to You a perpetual,
17162
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
17163
+ (except as stated in this section) patent license to make, have made,
17164
+ use, offer to sell, sell, import, and otherwise transfer the Work,
17165
+ where such license applies only to those patent claims licensable
17166
+ by such Contributor that are necessarily infringed by their
17167
+ Contribution(s) alone or by combination of their Contribution(s)
17168
+ with the Work to which such Contribution(s) was submitted. If You
17169
+ institute patent litigation against any entity (including a
17170
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
17171
+ or a Contribution incorporated within the Work constitutes direct
17172
+ or contributory patent infringement, then any patent licenses
17173
+ granted to You under this License for that Work shall terminate
17174
+ as of the date such litigation is filed.
17175
+
17176
+ 4. Redistribution. You may reproduce and distribute copies of the
17177
+ Work or Derivative Works thereof in any medium, with or without
17178
+ modifications, and in Source or Object form, provided that You
17179
+ meet the following conditions:
17180
+
17181
+ (a) You must give any other recipients of the Work or
17182
+ Derivative Works a copy of this License; and
17183
+
17184
+ (b) You must cause any modified files to carry prominent notices
17185
+ stating that You changed the files; and
17186
+
17187
+ (c) You must retain, in the Source form of any Derivative Works
17188
+ that You distribute, all copyright, patent, trademark, and
17189
+ attribution notices from the Source form of the Work,
17190
+ excluding those notices that do not pertain to any part of
17191
+ the Derivative Works; and
17192
+
17193
+ (d) If the Work includes a "NOTICE" text file as part of its
17194
+ distribution, then any Derivative Works that You distribute must
17195
+ include a readable copy of the attribution notices contained
17196
+ within such NOTICE file, excluding those notices that do not
17197
+ pertain to any part of the Derivative Works, in at least one
17198
+ of the following places: within a NOTICE text file distributed
17199
+ as part of the Derivative Works; within the Source form or
17200
+ documentation, if provided along with the Derivative Works; or,
17201
+ within a display generated by the Derivative Works, if and
17202
+ wherever such third-party notices normally appear. The contents
17203
+ of the NOTICE file are for informational purposes only and
17204
+ do not modify the License. You may add Your own attribution
17205
+ notices within Derivative Works that You distribute, alongside
17206
+ or as an addendum to the NOTICE text from the Work, provided
17207
+ that such additional attribution notices cannot be construed
17208
+ as modifying the License.
17209
+
17210
+ You may add Your own copyright statement to Your modifications and
17211
+ may provide additional or different license terms and conditions
17212
+ for use, reproduction, or distribution of Your modifications, or
17213
+ for any such Derivative Works as a whole, provided Your use,
17214
+ reproduction, and distribution of the Work otherwise complies with
17215
+ the conditions stated in this License.
17216
+
17217
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
17218
+ any Contribution intentionally submitted for inclusion in the Work
17219
+ by You to the Licensor shall be under the terms and conditions of
17220
+ this License, without any additional terms or conditions.
17221
+ Notwithstanding the above, nothing herein shall supersede or modify
17222
+ the terms of any separate license agreement you may have executed
17223
+ with Licensor regarding such Contributions.
17224
+
17225
+ 6. Trademarks. This License does not grant permission to use the trade
17226
+ names, trademarks, service marks, or product names of the Licensor,
17227
+ except as required for reasonable and customary use in describing the
17228
+ origin of the Work and reproducing the content of the NOTICE file.
17229
+
17230
+ 7. Disclaimer of Warranty. Unless required by applicable law or
17231
+ agreed to in writing, Licensor provides the Work (and each
17232
+ Contributor provides its Contributions) on an "AS IS" BASIS,
17233
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17234
+ implied, including, without limitation, any warranties or conditions
17235
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
17236
+ PARTICULAR PURPOSE. You are solely responsible for determining the
17237
+ appropriateness of using or redistributing the Work and assume any
17238
+ risks associated with Your exercise of permissions under this License.
17239
+
17240
+ 8. Limitation of Liability. In no event and under no legal theory,
17241
+ whether in tort (including negligence), contract, or otherwise,
17242
+ unless required by applicable law (such as deliberate and grossly
17243
+ negligent acts) or agreed to in writing, shall any Contributor be
17244
+ liable to You for damages, including any direct, indirect, special,
17245
+ incidental, or consequential damages of any character arising as a
17246
+ result of this License or out of the use or inability to use the
17247
+ Work (including but not limited to damages for loss of goodwill,
17248
+ work stoppage, computer failure or malfunction, or any and all
17249
+ other commercial damages or losses), even if such Contributor
17250
+ has been advised of the possibility of such damages.
17251
+
17252
+ 9. Accepting Warranty or Additional Liability. While redistributing
17253
+ the Work or Derivative Works thereof, You may choose to offer,
17254
+ and charge a fee for, acceptance of support, warranty, indemnity,
17255
+ or other liability obligations and/or rights consistent with this
17256
+ License. However, in accepting such obligations, You may act only
17257
+ on Your own behalf and on Your sole responsibility, not on behalf
17258
+ of any other Contributor, and only if You agree to indemnify,
17259
+ defend, and hold each Contributor harmless for any liability
17260
+ incurred by, or claims asserted against, such Contributor by reason
17261
+ of your accepting any such warranty or additional liability.
17262
+
17263
+ END OF TERMS AND CONDITIONS
17264
+
17265
+ APPENDIX: How to apply the Apache License to your work.
17266
+
17267
+ To apply the Apache License to your work, attach the following
17268
+ boilerplate notice, with the fields enclosed by brackets "[]"
17269
+ replaced with your own identifying information. (Don't include
17270
+ the brackets!) The text should be enclosed in the appropriate
17271
+ comment syntax for the file format. We also recommend that a
17272
+ file or class name and description of purpose be included on the
17273
+ same "printed page" as the copyright notice for easier
17274
+ identification within third-party archives.
17275
+
17276
+ Copyright [yyyy] [name of copyright owner]
17277
+
17278
+ Licensed under the Apache License, Version 2.0 (the "License");
17279
+ you may not use this file except in compliance with the License.
17280
+ You may obtain a copy of the License at
17281
+
17282
+ http://www.apache.org/licenses/LICENSE-2.0
17283
+
17284
+ Unless required by applicable law or agreed to in writing, software
17285
+ distributed under the License is distributed on an "AS IS" BASIS,
17286
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17287
+ See the License for the specific language governing permissions and
17288
+ limitations under the License.
17289
+
17290
+
17291
+ Permission is hereby granted, free of charge, to any person obtaining a copy
17292
+ of this software and associated documentation files (the "Software"), to deal
17293
+ in the Software without restriction, including without limitation the rights
17294
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17295
+ copies of the Software, and to permit persons to whom the Software is
17296
+ furnished to do so, subject to the following conditions:
17297
+
17298
+ The above copyright notice and this permission notice shall be included in all
17299
+ copies or substantial portions of the Software.
17300
+
17301
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17302
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17303
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17304
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17305
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17306
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17307
+ SOFTWARE.
17308
+
17309
+
17310
+
17311
+ smallvec 1.16.3 — MIT OR Apache-2.0
17091
17312
  https://github.com/servo/rust-smallvec
17092
17313
 
17093
17314
  Apache License
@@ -18291,7 +18512,7 @@ DEALINGS IN THE SOFTWARE.
18291
18512
 
18292
18513
 
18293
18514
 
18294
- syn 3.0.6 — MIT OR Apache-2.0
18515
+ syn 3.0.9 — MIT OR Apache-2.0
18295
18516
  https://github.com/dtolnay/syn
18296
18517
 
18297
18518
  Apache License
@@ -18732,7 +18953,7 @@ DEALINGS IN THE SOFTWARE.
18732
18953
 
18733
18954
 
18734
18955
 
18735
- thiserror 2.0.20 — MIT OR Apache-2.0
18956
+ thiserror 2.0.21 — MIT OR Apache-2.0
18736
18957
  https://github.com/dtolnay/thiserror
18737
18958
 
18738
18959
  Apache License
@@ -18939,7 +19160,7 @@ DEALINGS IN THE SOFTWARE.
18939
19160
 
18940
19161
 
18941
19162
 
18942
- thiserror-impl 2.0.20 — MIT OR Apache-2.0
19163
+ thiserror-impl 2.0.21 — MIT OR Apache-2.0
18943
19164
  https://github.com/dtolnay/thiserror
18944
19165
 
18945
19166
  Apache License
@@ -20768,7 +20989,7 @@ SOFTWARE.
20768
20989
 
20769
20990
 
20770
20991
 
20771
- unicode-ident 1.0.26 — (MIT OR Apache-2.0) AND Unicode-3.0
20992
+ unicode-ident 1.0.27 — (MIT OR Apache-2.0) AND Unicode-3.0
20772
20993
  https://github.com/dtolnay/unicode-ident
20773
20994
 
20774
20995
  Apache License
@@ -23307,7 +23528,7 @@ DEALINGS IN THE SOFTWARE.
23307
23528
 
23308
23529
 
23309
23530
 
23310
- zerocopy 0.8.57 — BSD-2-Clause OR Apache-2.0 OR MIT
23531
+ zerocopy 0.8.63 — BSD-2-Clause OR Apache-2.0 OR MIT
23311
23532
  https://github.com/google/zerocopy
23312
23533
 
23313
23534
  Apache License
@@ -23569,7 +23790,7 @@ DEALINGS IN THE SOFTWARE.
23569
23790
 
23570
23791
 
23571
23792
 
23572
- zerocopy-derive 0.8.57 — BSD-2-Clause OR Apache-2.0 OR MIT
23793
+ zerocopy-derive 0.8.63 — BSD-2-Clause OR Apache-2.0 OR MIT
23573
23794
  https://github.com/google/zerocopy
23574
23795
 
23575
23796
  Apache License
@@ -23831,7 +24052,7 @@ DEALINGS IN THE SOFTWARE.
23831
24052
 
23832
24053
 
23833
24054
 
23834
- zeroize 1.9.0 — Apache-2.0 OR MIT
24055
+ zeroize 1.9.1 — Apache-2.0 OR MIT
23835
24056
  https://github.com/RustCrypto/utils
23836
24057
 
23837
24058
 
data/docs/github-setup.md CHANGED
@@ -9,7 +9,7 @@ RubyGems settings a maintainer must enable. These instructions prepare
9
9
  The repository includes an MIT license, contributor and security guides, issue
10
10
  forms, a pull-request template, CODEOWNERS, Dependabot, CodeQL, dependency review,
11
11
  and build/release workflows. Actions are pinned to full commit SHAs; Dependabot
12
- proposes updates. CI runs on pull requests, main pushes and a weekly schedule.
12
+ proposes updates. CI runs on pull requests, master pushes and a weekly schedule.
13
13
  PR jobs do not receive publishing credentials. Checkout does not persist tokens.
14
14
 
15
15
  ## Configure GitHub after an authorized push
@@ -20,7 +20,7 @@ PR jobs do not receive publishing credentials. Checkout does not persist tokens.
20
20
  graph, Dependabot alerts, secret scanning and push protection where available.
21
21
  CodeQL is provided as an advanced workflow for Ruby, Rust and GitHub Actions; do not also enable
22
22
  CodeQL default setup.
23
- 3. After the first successful run, protect `main` with a ruleset requiring pull
23
+ 3. After the first successful run, protect `master` with a ruleset requiring pull
24
24
  requests, one approving review, resolved conversations, current branches and
25
25
  the `CI required`, CodeQL matrix and dependency-review checks. Select the
26
26
  actual check names from GitHub. Block deletion and force pushes. Require code
@@ -28,26 +28,28 @@ PR jobs do not receive publishing credentials. Checkout does not persist tokens.
28
28
  pull requests can be reviewed. Do not silently bypass review to unblock them.
29
29
  4. Allow only reviewed Actions, keep the default workflow token read-only, and
30
30
  disable Actions creating or approving pull requests. Keep fork approval on.
31
- 5. Create environment `rubygems`, restrict deployment to `main`, and configure a
31
+ 5. Create environment `rubygems`, restrict deployment to `v*` tags, and configure a
32
32
  trusted maintainer as required reviewer with self-review prevented. Confirm
33
33
  an eligible second reviewer exists before enabling this requirement.
34
34
  6. Configure RubyGems trusted publishing exactly as [releasing](releasing.md)
35
35
  specifies. Do not store a long-lived publishing key in repository secrets.
36
36
 
37
- The existing remote has older history. The prepared local root commit replaces
38
- that history only after explicit authorization and consumer coordination. Enable
39
- force-push protection after that authorized initial transition. A backup local
40
- branch preserves the prior history. Never force-push just to make CI pass.
37
+ The authorized initial history consolidation is complete. Remote branch
38
+ `archive/pre-0.1.0-squash` preserves the old consumer pin. The `rubygems`
39
+ environment deploys only from `v*` tags (it allowed the default branch for the manual 0.1.0
40
+ release). RubyGems trusted publishing successfully published 0.1.0. A second reviewer remains a
41
+ separate repository setup task.
42
+ Never force-push just to make CI pass.
41
43
 
42
44
  ## Release evidence
43
45
 
44
- `CI required` fails if any Ruby test, package build, distribution installation or
46
+ `CI required` fails if any Ruby test, package build, package installation or
45
47
  audit fails or is skipped. Linux packages are built against glibc 2.28 and checked
46
48
  for newer symbol requirements. Compatibility jobs install the same artifact,
47
- not a newly rebuilt library. Rolling Arch is deliberately retested weekly.
49
+ not a newly rebuilt library.
48
50
 
49
- The manual release workflow accepts only a successful CI run from this repository,
50
- for the exact main commit. It validates package names, versions, platforms and
51
+ The tag-triggered release workflow accepts only a successful CI run from this
52
+ repository, for the exact master commit the tag points to. It validates package names, versions, platforms and
51
53
  license files before trusted publication, and records an attestation for the
52
54
  promotion workflow. Keep the successful CI URL with release notes. GitHub
53
55
  settings, hosted matrix success and RubyGems setup must be confirmed separately;