confium 0.3.1 → 0.3.2

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: 975eebface92795a6a5493274a696fae3bd9bc451fdd8011be74af8ab5bf7b9b
4
- data.tar.gz: a0b92a831f5391175e789fbc02ad5e674d097b20d92e1fd7059cc91890a9fbc8
3
+ metadata.gz: c8445c7b4b7f4fdea4740a5f22874c5a97eda59e75ebe5cf327dbc84b67ff6f2
4
+ data.tar.gz: 68381a40a3a7f21b5f4330611bbe86e7abbf9223602288f105f611553e86cd21
5
5
  SHA512:
6
- metadata.gz: 244d4c7edcafe5cc22234cc3ad58676f765e8b840c22b1427817d3ed6e33f22cb5f57415cc2fdc7dccf7faa2bad217ec50ede0ea6a4bfd859ae3ea61ed6e5c25
7
- data.tar.gz: 8a71c86a8b467209b49e1526d0be8a9c35d528e339851db5703e7a0e64993c70d6d68ea8198c8c22649daa1e3688fabaad8d9d2eb8a32dfb2502ca225e4fb38e
6
+ metadata.gz: 00cf2dd64ba0bce3897db2d5f026818ccc5f90cc1ad1f27a65869827f530811df1a60c50e6fefeb9c83183859bccce81194b0e031e2fbff5b8213d53bb3cb4cb
7
+ data.tar.gz: a2f6509125418022a2aa3d98d86b724cc841f7f3067884c482d345f2f3b28a0adb63b51dbba34d48dd5d64aa1c827a42d8bf86be273160feb631d5e8a68b72b9
data/CHANGELOG.md CHANGED
@@ -1,10 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.2] — 2026-08-22
4
+
5
+ Native platform gems (linux x86_64/aarch64, macOS x86_64/arm64) ship
6
+ alongside the source gem — `gem install` no longer needs a Rust
7
+ toolchain on those platforms.
8
+
9
+ The 0.3.0/0.3.1 native-gem builds never actually produced platform
10
+ gems: the cross-compile task targeted a nonexistent rake task inside
11
+ a container whose shell swallowed the failure, and the fallback
12
+ `gem build` stamped platform=ruby. RubyGems blocks re-pushing a
13
+ version that ever existed, so the native gems first appear here.
14
+
15
+ ### Fixed
16
+
17
+ - Platform gems now build on native-arch runners (one per target
18
+ platform). Cross-compilation via rake-compiler-dock is impossible
19
+ for this gem: the dock images are Ubuntu 20.04 (gcc 9.4) while the
20
+ vendored RNP stack needs Botan 3.12, which requires gcc 11+.
21
+ - Each platform gem carries one extension per C-ABI window — exact
22
+ minors 3.1 and 3.2, plus 3.3 (loads on 3.3+) — because Ruby 3.2
23
+ broke the 3.1 ABI (a 3.1-built extension segfaults on 3.2) and
24
+ rb-sys references `ruby_current_vm_ptr` when built against
25
+ Ruby <= 3.2, which libruby stopped exporting in 3.3.
26
+ `lib/confium.rb` picks the window for the running Ruby; source
27
+ builds keep the flat extension path.
28
+ - The release workflow no longer builds a source gem (that burned
29
+ the 0.3.1 version slots against test-and-release.yml's publish),
30
+ refuses to push any gem stamped platform=ruby, and installs each
31
+ packaged gem on Ruby 3.1 through 3.4 before publishing.
32
+ - Windows remains unsupported: the vendored RNP (json-c + botan)
33
+ build has no MSVC/mingw story.
34
+
3
35
  ## [0.3.1] — 2026-08-21
4
36
 
5
- Native platform gems (linux x86_64/aarch64, macOS x86_64/arm64,
6
- Windows x64-mingw-ucrt) ship alongside the source gem — `gem install`
7
- no longer needs a Rust toolchain on those platforms.
37
+ Shipped as a source gem only (the intended native platform gems
38
+ failed to materialize; see 0.3.2).
8
39
 
9
40
  ### Added
10
41
 
data/Cargo.lock CHANGED
@@ -647,6 +647,7 @@ dependencies = [
647
647
  "rnp-rs",
648
648
  "serde_json",
649
649
  "sha2",
650
+ "subtle",
650
651
  ]
651
652
 
652
653
  [[package]]
data/Rakefile CHANGED
@@ -1,11 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'rake/clean'
3
4
  require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
- RSpec::Core::RakeTask.new(:spec)
6
-
7
- require 'rubocop/rake_task'
8
- RuboCop::RakeTask.new
9
5
 
10
6
  require 'rb_sys/extensiontask'
11
7
  gemspec = Gem::Specification.load('confium.gemspec')
@@ -13,5 +9,22 @@ RbSys::ExtensionTask.new('confium_native', gemspec) do |ext|
13
9
  ext.lib_dir = 'lib/confium_native'
14
10
  end
15
11
 
12
+ # Tooling tasks are dev-only and are not needed to build the
13
+ # extension. Guard the requires so minimal environments (e.g. release
14
+ # tooling containers) can still load this Rakefile.
15
+ begin
16
+ require 'rspec/core/rake_task'
17
+ RSpec::Core::RakeTask.new(:spec)
18
+ rescue LoadError
19
+ nil
20
+ end
21
+
22
+ begin
23
+ require 'rubocop/rake_task'
24
+ RuboCop::RakeTask.new
25
+ rescue LoadError
26
+ nil
27
+ end
28
+
16
29
  task compile: :clean
17
30
  task default: %i[compile spec rubocop]
data/confium.gemspec CHANGED
@@ -48,7 +48,7 @@ Gem::Specification.new do |spec|
48
48
  spec.add_dependency 'rb_sys', '~> 0.9.39'
49
49
 
50
50
  spec.add_development_dependency 'rake', '~> 13.0'
51
- spec.add_development_dependency 'rake-compiler', '~> 1.2.0'
51
+ spec.add_development_dependency 'rake-compiler', '~> 1.3.0'
52
52
  spec.add_development_dependency 'rake-compiler-dock', '~> 1.3'
53
53
  spec.add_development_dependency 'rspec', '~> 3.0'
54
54
  spec.add_development_dependency 'rubocop', '~> 1.0'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Confium
4
- VERSION = '0.3.1'
4
+ VERSION = '0.3.2'
5
5
  end
data/lib/confium.rb CHANGED
@@ -12,7 +12,19 @@
12
12
  require_relative 'confium/version'
13
13
 
14
14
  begin
15
- require_relative 'confium_native/confium_native'
15
+ # Pre-built platform gems ship one extension per C-ABI window
16
+ # (Ruby 3.2 broke the 3.1 ABI — object shapes — and rb-sys
17
+ # references the VM pointer libruby stopped exporting in 3.3, so
18
+ # 3.1 and 3.2 get exact-minor builds while 3.3 covers 3.3+).
19
+ # Source builds install the extension flat, without a version
20
+ # directory.
21
+ major, minor = RUBY_VERSION.split('.').first(2).map(&:to_i)
22
+ window = major > 3 || minor >= 3 ? '3.3' : "#{major}.#{minor}"
23
+ begin
24
+ require_relative "confium_native/#{window}/confium_native"
25
+ rescue LoadError
26
+ require_relative 'confium_native/confium_native'
27
+ end
16
28
  rescue LoadError => e
17
29
  warn 'confium: native extension not built — run `bundle exec rake compile`'
18
30
  raise e
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Open
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-08-22 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: rb_sys
@@ -43,14 +44,14 @@ dependencies:
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: 1.2.0
47
+ version: 1.3.0
47
48
  type: :development
48
49
  prerelease: false
49
50
  version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: 1.2.0
54
+ version: 1.3.0
54
55
  - !ruby/object:Gem::Dependency
55
56
  name: rake-compiler-dock
56
57
  requirement: !ruby/object:Gem::Requirement
@@ -182,6 +183,7 @@ metadata:
182
183
  homepage_uri: https://www.confium.org
183
184
  source_code_uri: https://github.com/confium/confium-ruby
184
185
  rubygems_mfa_required: 'true'
186
+ post_install_message:
185
187
  rdoc_options: []
186
188
  require_paths:
187
189
  - lib
@@ -196,7 +198,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
198
  - !ruby/object:Gem::Version
197
199
  version: '0'
198
200
  requirements: []
199
- rubygems_version: 4.0.6
201
+ rubygems_version: 3.5.22
202
+ signing_key:
200
203
  specification_version: 4
201
204
  summary: Ruby bindings for the Confium multi-stakeholder threshold cryptography framework.
202
205
  test_files: []