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 +4 -4
- data/CHANGELOG.md +46 -2
- data/CONTRIBUTING.md +1 -1
- data/NOTICE +1 -1
- data/README.md +20 -20
- data/SECURITY.md +4 -5
- data/THIRD_PARTY_LICENSES.txt +238 -17
- data/docs/github-setup.md +13 -11
- data/docs/installation.md +16 -32
- data/docs/releasing.md +54 -40
- data/docs/rendering.md +26 -7
- data/docs/security-exceptions.md +7 -4
- data/ext/forme_pdf/Cargo.lock +37 -34
- data/ext/forme_pdf/Cargo.toml +5 -2
- data/ext/forme_pdf/extconf.rb +3 -2
- data/ext/forme_pdf/src/lib.rs +200 -5
- data/lib/forme_pdf/rails.rb +2 -0
- data/lib/forme_pdf/renderer.rb +30 -10
- data/lib/forme_pdf/version.rb +2 -2
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 59729e8bf94118b04388c22c7c31fec173f7ab915170da01a5c0889ebd982eb5
|
|
4
|
+
data.tar.gz: 283853492512983124933700ac6d092b539de4995f21c2d0c3aeb1f30dab5481
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9467b66b514e7ece4284f9a09cc2ccbd15189ad8b93293ebbc99442f8f5ce7bf5b2240f9f2a8e82bf41d3f025daa7fcbcbc8b9bcffdce7871daa95558eea08f0
|
|
7
|
+
data.tar.gz: 0441de602d5a2ae9175254d2d00809d3aa6ff308a6f63d11a7e9a4291802c4786a018d3ba1e832211c647bbe1fda70aa5e660b5a87fa686648ee7b9ca0e7440c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
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
|
-
-
|
|
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.
|
|
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:
|
|
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.
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
4
|
-
|
|
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.
|
data/THIRD_PARTY_LICENSES.txt
CHANGED
|
@@ -3236,7 +3236,7 @@ DEALINGS IN THE SOFTWARE.
|
|
|
3236
3236
|
|
|
3237
3237
|
|
|
3238
3238
|
|
|
3239
|
-
crc32fast 1.5.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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 `
|
|
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 `
|
|
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
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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,
|
|
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.
|
|
49
|
+
not a newly rebuilt library.
|
|
48
50
|
|
|
49
|
-
The
|
|
50
|
-
for the exact
|
|
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;
|