From ae69cdd54897c9342f2e6c73f93a6b8bb7d8894a Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 6 Aug 2021 12:09:52 -0700 Subject: [PATCH 01/10] Remove unused travis config. --- .travis.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a9004fb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: ruby -script: "bundle exec rspec spec" -env: - - CI=true -gemfile: - - Gemfile - - Gemfile-pure -rvm: - - 2.4 - - 2.5 - - 2.6 - - 2.7 - - ruby-head - - jruby -cache: bundler -sudo: false -matrix: - allow_failures: - - rvm: jruby - - rvm: ruby-head -dist: trusty From 78fb3bc39503bca91f84c94f195f9adc6807fb20 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 6 Aug 2021 12:15:54 -0700 Subject: [PATCH 02/10] Don't use Nokogumbo directly, as it is included in Nokgiri 1.12. Dependency remains 1.10 in Gemfile until Ruby 2.4 is deprecated. (Removes testing on Ruby 2.4). --- .github/workflows/ci.yml | 1 - Gemfile | 1 - README.md | 10 ++++------ lib/rdf/rdfa/reader.rb | 14 +------------- lib/rdf/rdfa/reader/nokogiri.rb | 3 --- 5 files changed, 5 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cb531d..ad39081 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,6 @@ jobs: fail-fast: false matrix: ruby: - - 2.4 - 2.5 - 2.6 - 2.7 diff --git a/Gemfile b/Gemfile index 8de2085..09e7717 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,6 @@ gem "rdf", github: "ruby-rdf/rdf", branch: "develop" gem "rdf-spec", github: "ruby-rdf/rdf-spec", branch: "develop" gem "rdf-xsd", github: "ruby-rdf/rdf-xsd", branch: "develop" gem "nokogiri", '~> 1.10', platforms: [:mri, :jruby] -gem "nokogumbo", '~> 2.0', platforms: :mri gem 'equivalent-xml', '~> 0.5' group :development, :test do diff --git a/README.md b/README.md index 0b8c813..f93718b 100755 --- a/README.md +++ b/README.md @@ -16,15 +16,15 @@ RDF::RDFa parses [RDFa][RDFa 1.1 Core] into statements or triples. * Fully compliant RDFa 1.1 parser. * Template-based Writer to generate XHTML+RDFa. * Writer uses user-replaceable [Haml][Haml] -based templates to generate RDFa. -* If available, uses [Nokogiri][] for parsing HTML/SVG, falls back to REXML otherwise. For HTML5, include the [Nokogumbo][] gem for a pure-HTML5 parser with better error detection. +* If available, uses [Nokogiri][] for parsing HTML/SVG, falls back to REXML otherwise. Install with `gem install rdf-rdfa` ### Pure Ruby -In order to run as pure ruby (not requiring any C modules), this gem does not directly depend on [Nokogiri][] or [Nokogumbo][] -and falls back to using REXML. [Nokogumbo][] uses the [Gumbo pure-C HTML5 parser](https://github.com/google/gumbo-parser#readme). +In order to run as pure ruby (not requiring any C modules), this gem does not directly depend on [Nokogiri][] +and falls back to using REXML. As REXML is not really an HTML parsing library, the results will only be useful if the HTML is well-formed. -For best performance, install the [Nokogiri][] and [Nokogumbo][] gems as well. +For best performance, install the [Nokogiri][] gem as well. ### Important changes from previous versions RDFa is an evolving standard, undergoing some substantial recent changes partly due to perceived competition @@ -402,7 +402,6 @@ The template hash defines four Haml templates: * [Haml](https://rubygems.org/gems/haml) (~> 5.1) * [HTMLEntities](https://rubygems.org/gems/htmlentities) (>= 4.3) * Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (>= 1.10) -* Soft dependency on [Nokogumbo](https://github.com/rubys/nokogumbo) (>= 2.0) ## Documentation Full documentation available on [Rubydoc.info][RDFa doc] @@ -478,4 +477,3 @@ see or the accompanying [UNLICENSE](UNLICENSE) file. [Haml]: https://haml-lang.com/ [Turtle]: https://www.w3.org/TR/2011/WD-turtle-20110809/ [Nokogiri]: https://www.nokogiri.org -[Nokogumbo]: https://github.com/rubys/nokogumbo/#readme \ No newline at end of file diff --git a/lib/rdf/rdfa/reader.rb b/lib/rdf/rdfa/reader.rb index febe8b0..5020e3f 100644 --- a/lib/rdf/rdfa/reader.rb +++ b/lib/rdf/rdfa/reader.rb @@ -329,19 +329,7 @@ def initialize(input = $stdin, **options, &block) detect_host_language_version(input, **options) - parse_lib = if @library == :nokogiri && @host_language == :html5 - begin - require 'nokogumbo' unless defined?(::Nokogumbo) - :nokobumbo - rescue LoadError - :nokogiri - end - else - @library - end - - parse_lib = @library == :nokogiri && defined?(::Nokogumbo) ? :nokogumbo : @library - add_info(@doc, "version = #{@version}, host_language = #{@host_language}, library = #{parse_lib}, rdfagraph = #{@options[:rdfagraph].inspect}, expand = #{@options[:vocab_expansion]}") + add_info(@doc, "version = #{@version}, host_language = #{@host_language}, library = #{@library}, rdfagraph = #{@options[:rdfagraph].inspect}, expand = #{@options[:vocab_expansion]}") begin initialize_xml(input, **options) diff --git a/lib/rdf/rdfa/reader/nokogiri.rb b/lib/rdf/rdfa/reader/nokogiri.rb index 353a8a8..15019c1 100644 --- a/lib/rdf/rdfa/reader/nokogiri.rb +++ b/lib/rdf/rdfa/reader/nokogiri.rb @@ -176,7 +176,6 @@ def initialize_xml(input, **options) ::Nokogiri::HTML.parse(input, base_uri.to_s, options[:encoding]) when :html5 begin - require 'nokogumbo' unless defined?(::Nokogumbo) input = input.read if input.respond_to?(:read) ::Nokogiri::HTML5(input.force_encoding(options[:encoding]), max_parse_errors: 1000) rescue LoadError @@ -283,8 +282,6 @@ def root ## # Document errors def doc_errors - # FIXME: Nokogiri version 1.5 thinks many HTML5 elements are invalid, so just ignore all Tag errors. - # Nokogumbo might make this simpler if @host_language == :html5 @doc.errors.reject do |e| e.to_s =~ %r{(The doctype must be the first token in the document)|(Expected a doctype token)|(Unexpected '\?' where start tag name is expected)} From 43ab8461f14299acb402f0e46ba5b923a7012809 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 8 Aug 2021 16:15:45 -0700 Subject: [PATCH 03/10] Update CI for coveralls. --- .github/workflows/ci.yml | 8 ++++++-- lib/rdf/rdfa/reader/nokogiri.rb | 2 +- spec/spec_helper.rb | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad39081..d3b69a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,5 +39,9 @@ jobs: - name: Install dependencies run: bundle install --jobs 4 --retry 3 - name: Run tests - run: bundle exec rspec spec - + run: bundle exec rspec spec || $ALLOW_FAILURES + - name: Coveralls GitHub Action + uses: coverallsapp/github-action@v1.1.2 + if: ${{ matrix.ruby == '3.0' && matrix.gemfile == 'Gemfile' }} + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/lib/rdf/rdfa/reader/nokogiri.rb b/lib/rdf/rdfa/reader/nokogiri.rb index 15019c1..97d31d7 100644 --- a/lib/rdf/rdfa/reader/nokogiri.rb +++ b/lib/rdf/rdfa/reader/nokogiri.rb @@ -178,7 +178,7 @@ def initialize_xml(input, **options) begin input = input.read if input.respond_to?(:read) ::Nokogiri::HTML5(input.force_encoding(options[:encoding]), max_parse_errors: 1000) - rescue LoadError + rescue LoadError, NoMethodError ::Nokogiri::HTML.parse(input, base_uri.to_s, options[:encoding]) end else diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 04a5922..09cb719 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -17,10 +17,17 @@ end begin require 'simplecov' + require 'simplecov-lcov' require 'coveralls' + 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 + SimpleCov::Formatter::LcovFormatter ]) SimpleCov.start do add_filter "/spec/" From 657fb01811fa088dd7429839a866c3fe6c27ca1d Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 8 Aug 2021 16:18:34 -0700 Subject: [PATCH 04/10] Update CI for coveralls. --- Gemfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 09e7717..39ec277 100644 --- a/Gemfile +++ b/Gemfile @@ -24,8 +24,9 @@ group :development, :test do end group :test do - gem 'simplecov', '~> 0.16', platforms: :mri - gem 'coveralls', '~> 0.8', platforms: :mri + gem 'simplecov', '~> 0.21', platforms: :mri + gem 'simplecov-lcov', '~> 0.8', platforms: :mri + gem 'coveralls', platforms: :mri end group :debug do From f30555a36c764e3b189ee9da48b34410c5cf86e5 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 11 Aug 2021 12:33:00 -0700 Subject: [PATCH 05/10] Remove explicit dependency on coveralls gem. --- Gemfile | 1 - spec/spec_helper.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index 39ec277..ffd9394 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,6 @@ end group :test do gem 'simplecov', '~> 0.21', platforms: :mri gem 'simplecov-lcov', '~> 0.8', platforms: :mri - gem 'coveralls', platforms: :mri end group :debug do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 09cb719..030d93a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -18,7 +18,6 @@ begin require 'simplecov' require 'simplecov-lcov' - require 'coveralls' SimpleCov::Formatter::LcovFormatter.config do |config| #Coveralls is coverage by default/lcov. Send info results config.report_with_single_file = true From 8b51f3b0b820b98ee43a25975b139f5f15e6663d Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Tue, 26 Oct 2021 11:39:38 -0700 Subject: [PATCH 06/10] Update CI. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d3b69a7..7369632 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Install dependencies run: bundle install --jobs 4 --retry 3 - name: Run tests - run: bundle exec rspec spec || $ALLOW_FAILURES + 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' && matrix.gemfile == 'Gemfile' }} From 248df479bb7752cb299d95d0a388f13336b1ce53 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 8 Dec 2021 10:48:29 -0800 Subject: [PATCH 07/10] Update documentation, dependencies, and version sync for 3.2. --- .github/workflows/ci.yml | 4 ++-- Gemfile | 4 ++-- README.md | 12 ++++++------ rdf-rdfa.gemspec | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7369632..30fbaee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,17 +15,17 @@ jobs: runs-on: ubuntu-latest env: CI: true + ALLOW_FAILURES: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'jruby' }} BUNDLE_GEMFILE: "${{ matrix.gemfile }}" strategy: fail-fast: false matrix: ruby: - - 2.5 - 2.6 - 2.7 - 3.0 - ruby-head # Until net-http-persistent updated - #- jruby # No Nokogumbo on JRuby + - jruby # No Nokogumbo on JRuby gemfile: - Gemfile - Gemfile-pure diff --git a/Gemfile b/Gemfile index ffd9394..d90521f 100644 --- a/Gemfile +++ b/Gemfile @@ -5,8 +5,8 @@ gemspec gem "rdf", github: "ruby-rdf/rdf", branch: "develop" gem "rdf-spec", github: "ruby-rdf/rdf-spec", branch: "develop" gem "rdf-xsd", github: "ruby-rdf/rdf-xsd", branch: "develop" -gem "nokogiri", '~> 1.10', platforms: [:mri, :jruby] -gem 'equivalent-xml', '~> 0.5' +gem "nokogiri", '~> 1.12', platforms: [:mri, :jruby] +gem 'equivalent-xml', '~> 0.6' group :development, :test do gem 'ebnf', github: "dryruby/ebnf", branch: "develop" diff --git a/README.md b/README.md index f93718b..6d918ef 100755 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ generates the following turtle: dc:description "A yellow rectangle with sharp corners." . ### Support for embedded N-Triples or Turtle -If the document includes a `<script>` element having an `@type` attribute whose value matches that of a loaded RDF reader (text/ntriples and text/turtle are loaded if they are availble), the data will be extracted and added to the default graph. For example: +If the document includes a `<script>` element having an `@type` attribute whose value matches that of a loaded RDF reader (text/ntriples and text/turtle are loaded if they are available), the data will be extracted and added to the default graph. For example: @@ -397,11 +397,11 @@ The template hash defines four Haml templates: } ## Dependencies -* [Ruby](https://ruby-lang.org/) (>= 2.4) -* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.1) -* [Haml](https://rubygems.org/gems/haml) (~> 5.1) -* [HTMLEntities](https://rubygems.org/gems/htmlentities) (>= 4.3) -* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (>= 1.10) +* [Ruby](https://ruby-lang.org/) (>= 2.6) +* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.2) +* [Haml](https://rubygems.org/gems/haml) (~> 5.2) +* [HTMLEntities](https://rubygems.org/gems/htmlentities) (~> 4.3) +* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (~> 1.12) ## Documentation Full documentation available on [Rubydoc.info][RDFa doc] diff --git a/rdf-rdfa.gemspec b/rdf-rdfa.gemspec index 88e7e91..7493597 100755 --- a/rdf-rdfa.gemspec +++ b/rdf-rdfa.gemspec @@ -18,20 +18,20 @@ Gem::Specification.new do |gem| gem.files = %w(AUTHORS README.md UNLICENSE VERSION) + Dir.glob('lib/**/*.rb') gem.require_paths = %w(lib) - gem.required_ruby_version = '>= 2.4' + gem.required_ruby_version = '>= 2.6' gem.requirements = [] - gem.add_runtime_dependency 'rdf', '~> 3.1', '>= 3.1.13' - gem.add_runtime_dependency 'rdf-vocab', '~> 3.1', '>= 3.1.11' + gem.add_runtime_dependency 'rdf', '~> 3.2' + gem.add_runtime_dependency 'rdf-vocab', '~> 3.2' gem.add_runtime_dependency 'haml', '~> 5.2' - gem.add_runtime_dependency 'rdf-xsd', '~> 3.1' - gem.add_runtime_dependency 'rdf-aggregate-repo', '~> 3.1' + gem.add_runtime_dependency 'rdf-xsd', '~> 3.2' + gem.add_runtime_dependency 'rdf-aggregate-repo', '~> 3.2' gem.add_runtime_dependency 'htmlentities', '~> 4.3' gem.add_development_dependency 'json-ld', '~> 3.1' gem.add_development_dependency 'rspec', '~> 3.10' gem.add_development_dependency 'rspec-its', '~> 1.3' - gem.add_development_dependency 'rdf-spec', '~> 3.1' + gem.add_development_dependency 'rdf-spec', '~> 3.2' gem.add_development_dependency 'rdf-turtle', '~> 3.1' gem.add_development_dependency 'rdf-isomorphic', '~> 3.1' gem.add_development_dependency 'rdf-tabular', '~> 3.1' From f2197d4079aac81f9d7911b813be9f35e59d79db Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 8 Dec 2021 10:50:18 -0800 Subject: [PATCH 08/10] Version 3.2.0. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index ff365e0..944880f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.1.3 +3.2.0 From 6558e14793f97e9f2d764a0b3aa449d358ec07a4 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 13 Dec 2021 14:46:01 -0800 Subject: [PATCH 09/10] Sync more gem versions. --- rdf-rdfa.gemspec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rdf-rdfa.gemspec b/rdf-rdfa.gemspec index 7493597..3eadc19 100755 --- a/rdf-rdfa.gemspec +++ b/rdf-rdfa.gemspec @@ -28,15 +28,15 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency 'rdf-aggregate-repo', '~> 3.2' gem.add_runtime_dependency 'htmlentities', '~> 4.3' - gem.add_development_dependency 'json-ld', '~> 3.1' + gem.add_development_dependency 'json-ld', '~> 3.2' gem.add_development_dependency 'rspec', '~> 3.10' gem.add_development_dependency 'rspec-its', '~> 1.3' gem.add_development_dependency 'rdf-spec', '~> 3.2' - gem.add_development_dependency 'rdf-turtle', '~> 3.1' - gem.add_development_dependency 'rdf-isomorphic', '~> 3.1' - gem.add_development_dependency 'rdf-tabular', '~> 3.1' - gem.add_development_dependency 'rdf-rdfxml', '~> 3.1' - gem.add_development_dependency 'sparql', '~> 3.1' + gem.add_development_dependency 'rdf-turtle', '~> 3.2' + gem.add_development_dependency 'rdf-isomorphic', '~> 3.2' + gem.add_development_dependency 'rdf-tabular', '~> 3.2' + gem.add_development_dependency 'rdf-rdfxml', '~> 3.2' + gem.add_development_dependency 'sparql', '~> 3.2' gem.add_development_dependency 'yard' , '~> 0.9' gem.post_install_message = nil From 5c5a078a410a6bd7affccd39e3a0dfe383c6f71b Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 26 Dec 2021 22:37:58 -0800 Subject: [PATCH 10/10] CI on Ruby 3.1. --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30fbaee..9eaddce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,9 @@ jobs: - 2.6 - 2.7 - 3.0 - - ruby-head # Until net-http-persistent updated - - jruby # No Nokogumbo on JRuby + - 3.1 + - ruby-head + - jruby gemfile: - Gemfile - Gemfile-pure