diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8d5176a..970180d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,14 +15,14 @@ jobs:
runs-on: ubuntu-latest
env:
CI: true
+ ALLOW_FAILURES: ${{ endsWith(matrix.ruby, 'head') }}
strategy:
fail-fast: false
matrix:
ruby:
- - 2.4
- - 2.5
- 2.6
- 2.7
+ - 3.0
- ruby-head
- jruby
steps:
@@ -35,5 +35,9 @@ jobs:
- name: Install dependencies
run: bundle install --jobs 4 --retry 3
- name: Run tests
- run: bundle exec rspec spec
-
+ run: ruby --version; bundle exec rspec spec || $ALLOW_FAILURES
+ - name: Coveralls GitHub Action
+ uses: coverallsapp/github-action@v1.1.2
+ if: "matrix.ruby == '3.0'"
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/Gemfile b/Gemfile
index fb415cd..697b11a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,8 +2,8 @@ source "https://rubygems.org"
gemspec
group :development, :test do
- gem 'simplecov', platforms: :mri
- gem 'coveralls', '~> 0.8', platforms: :mri
+ gem 'simplecov', '~> 0.21', platforms: :mri
+ gem 'simplecov-lcov', '~> 0.8', platforms: :mri
gem 'benchmark-ips'
gem 'rake'
end
diff --git a/README.md b/README.md
index 1ed207b..73d6085 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# json-canonicalization
An implementation of the JSON Canonicalization Scheme for Ruby
-Implements version 5 of [draft-rundgren-json-canonicalization-scheme-05](https://tools.ietf.org/html/draft-rundgren-json-canonicalization-scheme-05#page-5).
+Implements [RFC8785](https://datatracker.ietf.org/doc/html/rfc8785) (JSON Canonicalization Scheme) in Ruby.
[](http://badge.fury.io/rb/json-canonicalization)
[](https://github.com/dryruby/json-canonicalization/actions?query=workflow%3ACI)
@@ -19,8 +19,7 @@ primitives as defined by ECMAScript [[ES6](https://www.ecma-international.org/ec
constraining JSON data to the
I-JSON [[RFC7493](https://tools.ietf.org/html//rfc7493)] subset,
and through a platform independent property sorting scheme.
-Working document: https://cyberphone.github.io/ietf-json-canon
-Published IETF Draft: https://tools.ietf.org/html/draft-rundgren-json-canonicalization-scheme-16
+RFC: https://datatracker.ietf.org/doc/html/rfc8785
The JSON Canonicalization Scheme concept in a nutshell:
- Serialization of primitive JSON data types using methods compatible with ECMAScript's `JSON.stringify()`
@@ -67,8 +66,8 @@ Full documentation available on [RubyDoc](http://rubydoc.info/gems/json-canonica
* {JSON::Canonicalization}
## Dependencies
-* [Ruby](http://ruby-lang.org/) (>= 2.4)
-* [JSON](https://rubygems.org/gems/json) (>= 2.3)
+* [Ruby](http://ruby-lang.org/) (>= 2.6)
+* [JSON](https://rubygems.org/gems/json) (>= 2.6)
## Author
* [Gregg Kellogg](http://github.com/gkellogg) -
@@ -90,7 +89,7 @@ Full documentation available on [RubyDoc](http://rubydoc.info/gems/json-canonica
## License
This is free and unencumbered public domain software. For more information,
-see or the accompanying {file:UNLICENSE} file.
+see or the accompanying {file:UNLICENSE} file.
[YARD]: https://yardoc.org/
[YARD-GS]: https://rubydoc.info/docs/yard/file/docs/GettingStarted.md
diff --git a/VERSION b/VERSION
index 0c62199..0d91a54 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.2.1
+0.3.0
diff --git a/json-canonicalization.gemspec b/json-canonicalization.gemspec
index 2ee4cf4..410d044 100755
--- a/json-canonicalization.gemspec
+++ b/json-canonicalization.gemspec
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
gem.files = %w(AUTHORS README.md LICENSE VERSION) + Dir.glob('lib/**/*.rb')
gem.test_files = Dir.glob('spec/**/*.rb') + Dir.glob('spec/**/*.json')
- gem.required_ruby_version = '>= 2.4'
+ gem.required_ruby_version = '>= 2.6'
gem.requirements = []
gem.add_development_dependency 'rspec', '~> 3.10'
gem.add_development_dependency 'yard' , '~> 0.9'
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 9db2b16..bbd5c8e 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -5,10 +5,17 @@
begin
require 'simplecov'
- require 'coveralls' unless ENV['NOCOVERALLS']
+ require 'simplecov-lcov'
+
+ SimpleCov::Formatter::LcovFormatter.config do |config|
+ #Coveralls is coverage by default/lcov. Send info results
+ config.report_with_single_file = true
+ config.single_report_path = 'coverage/lcov.info'
+ end
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
SimpleCov::Formatter::HTMLFormatter,
- (Coveralls::SimpleCov::Formatter unless ENV['NOCOVERALLS'])
+ SimpleCov::Formatter::LcovFormatter
])
SimpleCov.start do
add_filter "/spec/"