Releases: ruby-rdf/rdf-spec
Releases · ruby-rdf/rdf-spec
Release 3.3.0
- 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
- 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
- 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 withbase
andprefixes
, which are passed todump
. - 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
- 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
- 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
Changes since 2.2
- Add
failure_message_when_negated
forbe_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
- 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 eitherRepository
orDataset
.
- This assumption has only held for
- 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
- 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 eitherRepository
orDataset
.
- This assumption has only held for
- 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
Updates for RDF.rb 2.0
- Specs for
Queryable#query
tested internal implementation rather than behavior, this caused issues for classes mixing inQueryable
, 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 theQueryable
. 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
andproduce
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 boundgraph_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-dateChangeset
in buffer. This change loosens the requirements. some of the tests are removed to therdf
test suite inspec/transaction_spec.rb
. - Introduce
RDF::Dataset
as a distinct conceptDataset
is introduced as a base class ofRDF::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.
- When a Mutable
- 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
Updates for RDF.rb 2.0 Beta
- Specs for
Queryable#query
tested internal implementation rather than behavior, this caused issues for classes mixing inQueryable
, 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 theQueryable
. 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
andproduce
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 boundgraph_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-dateChangeset
in buffer. This change loosens the requirements. some of the tests are removed to therdf
test suite inspec/transaction_spec.rb
. - Introduce
RDF::Dataset
as a distinct conceptDataset
is introduced as a base class ofRDF::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.
- When a Mutable
- 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.