ilios 1.1.0 → 1.1.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: 35886070e9a98cd40ab1628296e5f2a1cf50fcd5f8429ade4d79eeb0a363cf29
4
- data.tar.gz: e6b9d75e242db36c5fc96774fbf2dd31a135b3702ccaedc57e3efb07cd1fa22b
3
+ metadata.gz: 2b605b28e1524aca634a188b28f9f557745673a789912e4971f173f5687d7ef6
4
+ data.tar.gz: 46cc89d6f8f096f926339f2e9d14e76b72858167a9332d4e53ba1800fe10f527
5
5
  SHA512:
6
- metadata.gz: 2219b69eef45cc7977f79354bf4e03fc8e7583f59ed91dc4290653a0e1a0ea669d9b5dd1225b8cb043203824d3c6d4bf5294baee658e3f07d8ac04be87422c3c
7
- data.tar.gz: 7e7919c71dd7d876f84331ad33f2b66a9c0831bd5b342eaf766a6e6794e018183b1ba48e798eebb1305480031464c426c11ee79ec490d2d5fec56d826239cf14
6
+ metadata.gz: d7008c470792420f2ff04f03c7d48d4f267a89de816f90d1381ccef7f0c19a7a5623067c916ba58c2a3dd14e4698e68822313692b0a7e19f1e6275803297e4ce
7
+ data.tar.gz: 2c073c1b1b2e8227579bfd5b9e1847d4124f379615e236bf573a15a971aa55a9a26e920efa3f8e857363465cab24af2d17e49730a33043a45299f0907d81dbd6
data/CHANGELOG.md CHANGED
@@ -1,11 +1,16 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.1.1
4
+
5
+ - Fix out-of-bounds read when binding a `list`/`set` whose element mutates the array while it is being converted (#31)
6
+ - Verify the sha256 checksum of the libuv and cpp-driver archives downloaded at build time (#32)
7
+
3
8
  ## 1.1.0
4
9
 
5
10
  - Support Cassandra collection types (`list`, `set` and `map`, including nested collections). `list` maps to `Array`, `set` to `Set`, `map` to `Hash` (#28)
6
11
  - Accept `Symbol` values for `text`/`ascii`/`varchar` columns and collection elements (#28)
7
12
  - Require Ruby 3.4 or later (#28)
8
- - Fix `Ilios::Cassandra::Future#await` returning before the registered callback ran (PR #29)
13
+ - Fix `Ilios::Cassandra::Future#await` returning before the registered callback ran (#29)
9
14
 
10
15
  ## 1.0.6
11
16
 
data/Gemfile CHANGED
@@ -9,10 +9,11 @@ gem 'extconf_compile_commands_json'
9
9
  gem 'minitest', '~> 5.20'
10
10
  gem 'rake', '~> 13.0'
11
11
  gem 'rake-compiler', '~> 1.2'
12
- gem 'rbs', '~> 3.4'
12
+ gem 'rbs', '~> 4.0'
13
13
  gem 'rubocop', '~> 1.57'
14
14
  gem 'rubocop-minitest', '~> 0.33'
15
+ gem 'rubocop-on-rbs', '~> 2.0'
15
16
  gem 'rubocop-performance', '~> 1.19'
16
17
  gem 'rubocop-rake', '~> 0.6'
17
18
 
18
- gem 'rubocop-on-rbs', '~> 1.5'
19
+ gem 'ruby_memcheck', '~> 3.0' if RUBY_PLATFORM.include?('linux')
data/Rakefile CHANGED
@@ -13,9 +13,10 @@ Rake::ExtensionTask.new('ilios') do |ext|
13
13
  ext.ext_dir = 'ext/ilios'
14
14
  end
15
15
 
16
- Rake::TestTask.new do |task|
17
- task.pattern = 'test/test_*.rb'
16
+ test_config = lambda do |t|
17
+ t.pattern = 'test/test_*.rb'
18
18
  end
19
+ Rake::TestTask.new(test: :compile, &test_config)
19
20
 
20
21
  namespace :rbs do
21
22
  desc 'Validate RBS definitions'
@@ -26,3 +27,11 @@ namespace :rbs do
26
27
  end
27
28
  end
28
29
  end
30
+
31
+ if RUBY_PLATFORM.include?('linux')
32
+ require 'ruby_memcheck'
33
+
34
+ namespace :test do
35
+ RubyMemcheck::TestTask.new(valgrind: :compile, &test_config)
36
+ end
37
+ end
data/ext/ilios/extconf.rb CHANGED
@@ -35,7 +35,8 @@ module LibuvInstaller
35
35
  unless File.exist?(LIBUV_INSTALL_PATH)
36
36
  libuv_recipe = LibuvRecipe.new('libuv', Ilios::LIBUV_VERSION, make_command: "make -j #{Etc.nprocessors}")
37
37
  libuv_recipe.files << {
38
- url: "https://github.com/libuv/libuv/archive/v#{Ilios::LIBUV_VERSION}.tar.gz"
38
+ url: "https://github.com/libuv/libuv/archive/v#{Ilios::LIBUV_VERSION}.tar.gz",
39
+ sha256: Ilios::LIBUV_SHA256
39
40
  }
40
41
  libuv_recipe.cook
41
42
  if RUBY_PLATFORM.include?('darwin')
@@ -97,7 +98,8 @@ module CassandraDriverInstaller
97
98
  unless File.exist?(CASSANDRA_CPP_DRIVER_INSTALL_PATH)
98
99
  cassandra_recipe = CassandraRecipe.new('cpp-driver', Ilios::CASSANDRA_CPP_DRIVER_VERSION, make_command: "make -j #{Etc.nprocessors}")
99
100
  cassandra_recipe.files << {
100
- url: "https://github.com/datastax/cpp-driver/archive/#{Ilios::CASSANDRA_CPP_DRIVER_VERSION}.tar.gz"
101
+ url: "https://github.com/datastax/cpp-driver/archive/#{Ilios::CASSANDRA_CPP_DRIVER_VERSION}.tar.gz",
102
+ sha256: Ilios::CASSANDRA_CPP_DRIVER_SHA256
101
103
  }
102
104
  cassandra_recipe.cook
103
105
  if RUBY_PLATFORM.include?('darwin')
@@ -428,8 +428,8 @@ static VALUE statement_snapshot_value(const CassDataType *data_type, VALUE value
428
428
 
429
429
  length = RARRAY_LEN(array);
430
430
  snapshot = rb_ary_new_capa(length);
431
- for (long i = 0; i < length; i++) {
432
- rb_ary_push(snapshot, statement_snapshot_value(element_type, RARRAY_AREF(array, i)));
431
+ for (long i = 0; i < RARRAY_LEN(array); i++) {
432
+ rb_ary_push(snapshot, statement_snapshot_value(element_type, rb_ary_entry(array, i)));
433
433
  }
434
434
  return rb_ary_freeze(snapshot);
435
435
  }
data/lib/ilios/version.rb CHANGED
@@ -1,12 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ilios
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  public_constant :VERSION
6
6
 
7
7
  CASSANDRA_CPP_DRIVER_VERSION = '2.17.1'
8
8
  public_constant :CASSANDRA_CPP_DRIVER_VERSION
9
9
 
10
+ CASSANDRA_CPP_DRIVER_SHA256 = 'e6ab5f5c60a916dd6c0dd9a19a883a4a1ab3d6b4e95cab925a186fecff08344e'
11
+ public_constant :CASSANDRA_CPP_DRIVER_SHA256
12
+
10
13
  LIBUV_VERSION = '1.52.1'
11
14
  public_constant :LIBUV_VERSION
15
+
16
+ LIBUV_SHA256 = '478baf2599bfbc882c355288c9cb6f92e0e7dda435fa04031fa5b607cf3f414c'
17
+ public_constant :LIBUV_SHA256
12
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ilios
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watson
@@ -58,7 +58,7 @@ metadata:
58
58
  homepage_uri: https://github.com/Watson1978/ilios
59
59
  source_code_uri: https://github.com/Watson1978/ilios
60
60
  bug_tracker_uri: https://github.com/Watson1978/ilios/issues
61
- documentation_uri: https://www.rubydoc.info/gems/ilios/1.1.0
61
+ documentation_uri: https://www.rubydoc.info/gems/ilios/1.1.1
62
62
  rubygems_mfa_required: 'true'
63
63
  rdoc_options: []
64
64
  require_paths: