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. [![Gem Version](https://badge.fury.io/rb/json-canonicalization.png)](http://badge.fury.io/rb/json-canonicalization) [![Build Status](https://github.com/dryruby/json-canonicalization/workflows/CI/badge.svg?branch=develop)](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/"