Skip to content

Releases: ruby-rdf/rdf-spec

Release 3.3.0

01 Sep 19:58
Compare
Choose a tag to compare
  • Update documentation links to use gh-pages, and add action to publish gh-pages from Yard docs.
  • Rspec-mocks recieve.with become more sensitive to hash vs keyword arguments for Ruby > 3.
  • Minor change to queryable.
  • Add specs for Enumerable#canonicalize.
  • Use inferred format when dumping, if not defined in info.
  • Updates for version 3.3.0 with minimum Ruby version 3.0.

Release 3.2.0

29 Dec 21:37
Compare
Choose a tag to compare
  • Minimum Ruby version now 2.6.
  • Replace dependency on awesome_print with amazing_print.
  • Improve Literal#inspect to show language and built-in datatype.
  • Fix Struct initialization for upcoming change to Ruby after 3.1.

Release 3.1.2

25 Dec 21:00
Compare
Choose a tag to compare
  • Update log formatting for constant-width severity, which makes tracing indented logs simpler.
  • Update PDD info in the README.
  • Allow other options to be used when serializing results in be_equivalent_graph along with base and prefixes, which are passed to dump.
  • Add development runtime on rexml, which seems to be needed for ruby-head and is used for webmock/crack.
  • Run CI on GitHub.

Release 3.1.1

25 Dec 20:58
Compare
Choose a tag to compare
  • Update DOAP and related files in /etc.
  • Normalize URLs to HTTPS, where possible.
  • Change doap:license to https://unlicense.org/1.0/.

Release 3.1.0

16 Dec 21:00
Compare
Choose a tag to compare
  • Remove support for Ruby < 2.4.
  • Make sure buffer encoding set using format or passed option.
  • Fix transaction check and enable local running of spec.
  • Rename instance variables used in specs to be localized so as not to confuse with the same variable that could be named in the surrounding context.
  • Allow readers to define more default prefixes.
  • Allow dump format to be specified in be_equivalent_graph.
  • Add check for default and user-specified User-Agent.
  • Fix write matcher to handle exceptions in block.
  • Don't override Array.inspect, and use awesome_print in produce matcher.
  • Be explicit when argument is a hash and not keyword arguments.

Release 3.0.0

30 Dec 21:38
Compare
Choose a tag to compare

Changes since 2.2

  • Add failure_message_when_negated for be_equivalent_graph.
  • Don't run reader or writer open tests over all formats, just that being tested.
  • Verify that property Accept header is sent when a specific reader is determined in Reader.open.
  • Change validation on Boolean, to reflect changes in RDF.rb.

Release 2.2.0

08 Jan 01:21
Compare
Choose a tag to compare
  • Updates for RDF.rb 2.2.
  • Update minumum ruby version to 2.2.2. See ruby-rdf/rdf#307.
  • Tests Transaction#mutate?
    • We deliberately avoid checking for false positives, since the interface makes no guarantee that they won't appear.
  • Generalize protected method check for Queryable
  • Remove false as default assumption in Queryable specs
    • This assumption has only held for RDF::Repository in the past. The test should be replaced in either Repository or Dataset.
  • Remove duplicate Transactable tests from Repository
  • Isolate Transactable#transaction test from blank nodes
    *This test used to implictly test stablity of blank node identifers across multiple #statements calls. By using URIs instead of blank nodes, we avoid failures when they change.
  • Filter for #supports?(:literal_equality)
  • Use #to_h instead of #to_hash. Test for DEPRECATION on uses of #to_hash. This is associated with ruby-rdf/rdf#333.

Pre-release 2.2.0-rc1

31 Dec 21:24
Compare
Choose a tag to compare
Pre-release 2.2.0-rc1 Pre-release
Pre-release
  • Updates for RDF.rb 2.0.
  • Update minumum ruby version to 2.2.2. See ruby-rdf/rdf#307.
  • Tests Transaction#mutate?
    • We deliberately avoid checking for false positives, since the interface makes no guarantee that they won't appear.
  • Generalize protected method check for Queryable
  • Remove false as default assumption in Queryable specs
    • This assumption has only held for RDF::Repository in the past. The test should be replaced in either Repository or Dataset.
  • Remove duplicate Transactable tests from Repository
  • Isolate Transactable#transaction test from blank nodes
    *This test used to implictly test stablity of blank node identifers across multiple #statements calls. By using URIs instead of blank nodes, we avoid failures when they change.
  • Filter for #supports?(:literal_equality)
  • Use #to_h instead of #to_hash. Test for DEPRECATION on uses of #to_hash. This is associated with ruby-rdf/rdf#333.

Release 2.0.0

31 Dec 21:21
Compare
Choose a tag to compare

Updates for RDF.rb 2.0

  • Specs for Queryable#query tested internal implementation rather than behavior, this caused issues for classes mixing in Queryable, but delegating #query to some collaborator. See, e.g. ActiveTriples/ActiveTriples#169. This tests the contract directly, instead.
  • Add tests for Transaction, Changeset, and Dataset
  • Refactor Queryable specs
    • #33 created some duplicate tests; this refactors by moving them into a shared example set.
    • Additionally, it skips specs for #query_pattern and #query_execute if they are not defined by the Queryable. This allows implementations to fulfill the #query interface directly, if desired.
  • Disable an enumerable test unless the subject supports named graphs. (Moved some other checks inside the spec, where it's defined).
  • In Mutable, when doing deletes with patterns, make sure to not use BNodes, which might not be supported by repository implementation.
  • Add RDF::Spec.logger, which creates a Logger instance using a StringIO. Also implements #clear and #to_s instance methods.
  • Added be_equivalent_graph and produce matchers.
  • Simplify Enumerable#has_statement? spec as both Repositories and Graphs should have a statement, either matching on graph_name, or ignoring it. Previously, if a Graph had a bound graph_name it would need to match that in the statement, but this is inconsistent with the notion that a graph has only triples.
  • Change Queryable#first_* specs to not depend on query result ordering.
  • Add a round-trip check for Writers also having a Reader to ensure that different BNodes having the same identifier get written out with unique identifiers (see ruby-rdf/rdf/issues/262).
  • Soften RDF::Transaction buffering requirements
  • Not every Transaction needs to keep an up-to-date Changeset in buffer. This change loosens the requirements. some of the tests are removed to the rdf test suite in spec/transaction_spec.rb.
  • Introduce RDF::Dataset as a distinct concept
    • Dataset is introduced as a base class of RDF::Repository. It represents a (default read only) set of graphs. Some of the specs are removed from the repository specs, but are re-included indirectly through dataset's tests.
  • Test atomic/transactional #delete_insert application
    • When a Mutable #supports?(:transactions), #delete_insert is guaranteed to update atomically.
    • Repository#delete_insert always applies within a transaction scope and conforms to the individual Repository`s transaction semantics.
  • Check durability by re-creating the repository using uri and verifying that when subject is updated, the new instance is also updated. Fixes #52.
  • Skip mutable and writable tests unless resource is mutable or writable. This is better than testing separately in each test.
  • Avoid changing Repository while tx is in progress
    • Adding or deleting statements in the Repository causes serializable transactions to break (correctly). Instead, prepare the repository state before beginning the test transaction.
  • Test isolation semantics for transactions.
  • Fix array inspector when values are hashes.
  • Allow formats to not have readers (vocabulary is a write-only format).

2.0 Beta Release

23 Feb 17:34
Compare
Choose a tag to compare
2.0 Beta Release Pre-release
Pre-release

Updates for RDF.rb 2.0 Beta

  • Specs for Queryable#query tested internal implementation rather than behavior, this caused issues for classes mixing in Queryable, but delegating #query to some collaborator. See, e.g. ActiveTriples/ActiveTriples#169. This tests the contract directly, instead.
  • Add tests for Transaction, Changeset, and Dataset
  • Refactor Queryable specs
    • #33 created some duplicate tests; this refactors by moving them into a shared example set.
    • Additionally, it skips specs for #query_pattern and #query_execute if they are not defined by the Queryable. This allows implementations to fulfill the #query interface directly, if desired.
  • Disable an enumerable test unless the subject supports named graphs. (Moved some other checks inside the spec, where it's defined).
  • In Mutable, when doing deletes with patterns, make sure to not use BNodes, which might not be supported by repository implementation.
  • Add RDF::Spec.logger, which creates a Logger instance using a StringIO. Also implements #clear and #to_s instance methods.
  • Added be_equivalent_graph and produce matchers.
  • Simplify Enumerable#has_statement? spec as both Repositories and Graphs should have a statement, either matching on graph_name, or ignoring it. Previously, if a Graph had a bound graph_name it would need to match that in the statement, but this is inconsistent with the notion that a graph has only triples.
  • Change Queryable#first_* specs to not depend on query result ordering.
  • Add a round-trip check for Writers also having a Reader to ensure that different BNodes having the same identifier get written out with unique identifiers (see ruby-rdf/rdf/issues/262).
  • Soften RDF::Transaction buffering requirements
  • Not every Transaction needs to keep an up-to-date Changeset in buffer. This change loosens the requirements. some of the tests are removed to the rdf test suite in spec/transaction_spec.rb.
  • Introduce RDF::Dataset as a distinct concept
    • Dataset is introduced as a base class of RDF::Repository. It represents a (default read only) set of graphs. Some of the specs are removed from the repository specs, but are re-included indirectly through dataset's tests.
  • Test atomic/transactional #delete_insert application
    • When a Mutable #supports?(:transactions), #delete_insert is guaranteed to update atomically.
    • Repository#delete_insert always applies within a transaction scope and conforms to the individual Repository`s transaction semantics.
  • Check durability by re-creating the repository using uri and verifying that when subject is updated, the new instance is also updated. Fixes #52.
  • Skip mutable and writable tests unless resource is mutable or writable. This is better than testing separately in each test.
  • Avoid changing Repository while tx is in progress
    • Adding or deleting statements in the Repository causes serializable transactions to break (correctly). Instead, prepare the repository state before beginning the test transaction.
  • Test isolation semantics for transactions.