finrb 1.0.0 → 1.0.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +53 -0
  4. data/lib/finrb/version.rb +1 -1
  5. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e783eb0696497a848cc5506b4bd0d75e4327b383a8a4c998fd34ed86c3092a8c
4
- data.tar.gz: ca82637abc1703af93554215a2704469af63a3e4d95c4659da9ab86df289bdf2
3
+ metadata.gz: b167e3a39320ed5f8026b7451063d08f6eeb8e1047dc06f7688e4afc617434c2
4
+ data.tar.gz: 9407136f5589353ab3704f9bd7bb37b802191aa3aa51ca2bc3248cf359a276da
5
5
  SHA512:
6
- metadata.gz: a1b6da22366494309440b3095f6ea046512c27bf1aed43586701788f87c4fd25e67a246e35172419077cdf2c2a074c5bc9f2ae23ec110a2c3d4a65d690bdf0c0
7
- data.tar.gz: 2d3fa7f43260c6d00767e899a37ca977e86a4b146cb500dd6f1fa9ffaeabcc1dbed38fa2a7f1e38168e0a86c4f69e960131e96d9d2e8f3dedffe24f2c3064cd8
6
+ metadata.gz: 9ec1ff7159e4d1aadd5dde4fcb168a0f1a7679e20f59c50bb26a642ccbee1e6aa65b021e67906586382e64aca23a240e566625ea359dc48e9aa2987e24a9c433
7
+ data.tar.gz: 671ae01b065e636c0bf8ef60e851e53866b02e09238d3a233443150a11f09851af493a2462e891a305ce174c6cb57ba492f09f6cfef48ded3693a120e448c410
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # finrb changelog
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Runtime compatibility
6
+
7
+ - Test Ruby 3.3, 3.4, and 4.0 across x86-64, native ARM64, and Docker environments.
8
+ - Add experimental JRuby and TruffleRuby compatibility suites and isolated development/test images.
9
+ - Add Docker Buildx tasks for developing and running the ARM64 image on x86-64 hosts.
10
+ - Add version-selectable, failure-aware Docker build, test, and run tasks.
11
+
12
+ ### Packaging and assurance
13
+
14
+ - Verify gem metadata, packaged licenses, attribution, RBS declarations, and runtime dependencies.
15
+ - Install the built gem into an isolated gem home and smoke-test version loading, NPV, IRR, and opt-in core extensions.
16
+ - Add dependency review, ruby-advisory-db auditing, grouped Dependabot updates, workflow timeouts, and concurrency controls.
17
+ - Simplify CodeQL analysis and add reusable package and security verification tasks.
18
+ - Declare `ostruct` as a runtime dependency because it is required by `flt` and is no longer bundled with Ruby 4.
19
+
3
20
  ## 1.0.0
4
21
 
5
22
  This release intentionally breaks parts of the 0.1 public API.
data/README.md CHANGED
@@ -208,12 +208,65 @@ Install the bundle and run the self-contained quality checks:
208
208
  bundle install
209
209
  bundle exec rake quality
210
210
  bundle exec rubocop
211
+ bundle exec rake security:audit
212
+ bundle exec rake package:verify
211
213
  ```
212
214
 
213
215
  The quality task runs the RSpec suite with line and branch coverage, generated
214
216
  IRR/XIRR properties, committed SciPy/QuantLib reference fixtures, and RBS
215
217
  validation.
216
218
 
219
+ `security:audit` updates ruby-advisory-db and checks the locked dependencies.
220
+ `package:verify` builds the gem, validates its contents and metadata, installs
221
+ it with only its declared runtime dependencies, and runs packaged API smoke
222
+ tests without publishing or retaining the temporary installation.
223
+
224
+ CI runs every supported MRI version on x86-64, native ARM64, and Docker, plus
225
+ compatibility specs and Docker builds for the current stable JRuby and
226
+ TruffleRuby. Alternative Ruby jobs are initially informational while their
227
+ dependency and numerical compatibility is assessed.
228
+
229
+ Select the MRI version used by the ordinary Docker tasks with `RUBY_VER`:
230
+
231
+ ```shell
232
+ RUBY_VER=3.3 bundle exec rake docker:build
233
+ RUBY_VER=3.3 bundle exec rake docker:test
234
+ RUBY_VER=3.3 bundle exec rake docker:run
235
+ ```
236
+
237
+ On an x86-64 development machine with Docker Buildx and ARM64 emulation
238
+ available, build, test, and run the ARM64 development image with:
239
+
240
+ ```shell
241
+ bundle exec rake docker:arm64:build
242
+ bundle exec rake docker:arm64:test
243
+ bundle exec rake docker:arm64:run
244
+ ```
245
+
246
+ Docker Desktop normally provides the required emulation. A Linux Docker Engine
247
+ installation must have an ARM64-capable Buildx builder and binfmt/QEMU support
248
+ configured by the operator.
249
+
250
+ The alternative Ruby development images share a minimal, package-manager-
251
+ independent Dockerfile. Build, test, and run either implementation with:
252
+
253
+ ```shell
254
+ bundle exec rake docker:jruby:build
255
+ bundle exec rake docker:jruby:test
256
+ bundle exec rake docker:jruby:run
257
+
258
+ bundle exec rake docker:truffleruby:build
259
+ bundle exec rake docker:truffleruby:test
260
+ bundle exec rake docker:truffleruby:run
261
+ ```
262
+
263
+ The defaults track JRuby 10 on JDK 21 and the current TruffleRuby Community
264
+ image. Override them with `JRUBY_IMAGE` or `TRUFFLERUBY_IMAGE` when testing a
265
+ specific release. These images use `gemfiles/engines.gemfile`, which contains
266
+ only finrb's runtime dependencies and RSpec; MRI-only development tooling such
267
+ as RBS, RuboCop, and coverage is deliberately excluded from engine
268
+ compatibility runs.
269
+
217
270
  Maintainers with the optional Python environment can run the larger seeded
218
271
  solver verification campaign:
219
272
 
data/lib/finrb/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Finrb
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nadir Cohen
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: ostruct
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: amazing_print
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +66,7 @@ dependencies:
52
66
  - !ruby/object:Gem::Version
53
67
  version: '0'
54
68
  - !ruby/object:Gem::Dependency
55
- name: ostruct
69
+ name: bundler-audit
56
70
  requirement: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - ">="