From b69e0d38f68edb2a5cb07adebbe17ef9898d52b5 Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 4 Jul 2023 17:29:43 +0200 Subject: [PATCH 01/24] Fixes a testsuite typo --- testsuite/oxigraph-tests/sparql-results/manifest.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/oxigraph-tests/sparql-results/manifest.ttl b/testsuite/oxigraph-tests/sparql-results/manifest.ttl index 55b4f7df..9993b63a 100644 --- a/testsuite/oxigraph-tests/sparql-results/manifest.ttl +++ b/testsuite/oxigraph-tests/sparql-results/manifest.ttl @@ -5,7 +5,7 @@ @prefix ox: . <> rdf:type mf:Manifest ; - rdfs:label "Oxigraph SPARQL resutls tests" ; + rdfs:label "Oxigraph SPARQL results tests" ; mf:entries ( :results_json_duplicated_variables From 3bb05e2af2736b0d65f93d315c5b8963181c51e6 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 9 Aug 2023 22:35:40 +0200 Subject: [PATCH 02/24] Adds documentation field to Cargo.toml --- lib/Cargo.toml | 1 + lib/oxrdf/Cargo.toml | 1 + lib/oxsdatatypes/Cargo.toml | 1 + lib/sparesults/Cargo.toml | 1 + lib/spargebra/Cargo.toml | 1 + lib/sparql-smith/Cargo.toml | 1 + oxrocksdb-sys/Cargo.toml | 1 + 7 files changed, 7 insertions(+) diff --git a/lib/Cargo.toml b/lib/Cargo.toml index c7fa0d26..fc904d8f 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -8,6 +8,7 @@ keywords = ["RDF", "SPARQL", "graph-database", "database"] categories = ["database-implementations"] repository = "https://github.com/oxigraph/oxigraph/tree/main/lib" homepage = "https://oxigraph.org/" +documentation = "https://docs.rs/oxigraph" description = """ a SPARQL database and RDF toolkit """ diff --git a/lib/oxrdf/Cargo.toml b/lib/oxrdf/Cargo.toml index 3e7789c8..f9b38af7 100644 --- a/lib/oxrdf/Cargo.toml +++ b/lib/oxrdf/Cargo.toml @@ -10,6 +10,7 @@ homepage = "https://oxigraph.org/" description = """ A library providing basic data structures related to RDF """ +documentation = "https://docs.rs/oxrdf" edition = "2021" rust-version = "1.60" diff --git a/lib/oxsdatatypes/Cargo.toml b/lib/oxsdatatypes/Cargo.toml index 27f2084e..293c8047 100644 --- a/lib/oxsdatatypes/Cargo.toml +++ b/lib/oxsdatatypes/Cargo.toml @@ -10,6 +10,7 @@ homepage = "https://oxigraph.org/" description = """ An implementation of some XSD datatypes for SPARQL implementations """ +documentation = "https://docs.rs/oxsdatatypes" edition = "2021" rust-version = "1.60" diff --git a/lib/sparesults/Cargo.toml b/lib/sparesults/Cargo.toml index a278e55e..2ca9d325 100644 --- a/lib/sparesults/Cargo.toml +++ b/lib/sparesults/Cargo.toml @@ -10,6 +10,7 @@ homepage = "https://oxigraph.org/" description = """ SPARQL query results formats parsers and serializers """ +documentation = "https://docs.rs/sparesults" edition = "2021" rust-version = "1.60" diff --git a/lib/spargebra/Cargo.toml b/lib/spargebra/Cargo.toml index c2ff363a..dd48edb9 100644 --- a/lib/spargebra/Cargo.toml +++ b/lib/spargebra/Cargo.toml @@ -7,6 +7,7 @@ readme = "README.md" keywords = ["SPARQL"] repository = "https://github.com/oxigraph/oxigraph/tree/main/lib/spargebra" homepage = "https://oxigraph.org/" +documentation = "https://docs.rs/spargebra" description = """ A SPARQL parser """ diff --git a/lib/sparql-smith/Cargo.toml b/lib/sparql-smith/Cargo.toml index 8dc8ea57..bd025f78 100644 --- a/lib/sparql-smith/Cargo.toml +++ b/lib/sparql-smith/Cargo.toml @@ -7,6 +7,7 @@ readme = "README.md" keywords = ["SPARQL"] repository = "https://github.com/oxigraph/oxigraph/tree/main/lib/sparql-smith" homepage = "https://oxigraph.org/" +documentation = "https://docs.rs/sparql-smith" description = """ A SPARQL test cases generator """ diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index cda577e8..bbe69f07 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -8,6 +8,7 @@ readme = "README.md" description = """ Rust bindings for RocksDB for Oxigraph usage. """ +documentation = "https://docs.rs/oxrocksdb-sys" edition = "2021" rust-version = "1.60" build = "build.rs" From 382aa2e01ffb93166c31ce0980484bc9af1b37e2 Mon Sep 17 00:00:00 2001 From: Tpt Date: Tue, 8 Aug 2023 21:15:11 +0200 Subject: [PATCH 03/24] Python: allows giving pathlib.Path for input --- python/src/io.rs | 17 +++++++++-------- python/src/store.rs | 23 ++++++++++++----------- python/tests/test_store.py | 8 ++++---- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/python/src/io.rs b/python/src/io.rs index 53e53af4..c7e84757 100644 --- a/python/src/io.rs +++ b/python/src/io.rs @@ -13,6 +13,7 @@ use std::cmp::max; use std::error::Error; use std::fs::File; use std::io::{self, BufRead, BufReader, BufWriter, Cursor, Read, Write}; +use std::path::{Path, PathBuf}; pub fn add_to_module(module: &PyModule) -> PyResult<()> { module.add_wrapped(wrap_pyfunction!(parse))?; @@ -34,7 +35,7 @@ pub fn add_to_module(module: &PyModule) -> PyResult<()> { /// and ``application/xml`` for `RDF/XML `_. /// /// :param input: The binary I/O object or file path to read from. For example, it could be a file path as a string or a file reader opened in binary mode with ``open('my_file.ttl', 'rb')``. -/// :type input: io(bytes) or io(str) or str +/// :type input: io(bytes) or io(str) or str or pathlib.Path /// :param mime_type: the MIME type of the RDF serialization. /// :type mime_type: str /// :param base_iri: the base IRI used to resolve the relative IRIs in the file or :py:const:`None` if relative IRI resolution should not be done. @@ -55,8 +56,8 @@ pub fn parse( base_iri: Option<&str>, py: Python<'_>, ) -> PyResult { - let input = if let Ok(path) = input.extract::<&str>(py) { - PyReadable::from_file(path, py).map_err(map_io_err)? + let input = if let Ok(path) = input.extract::(py) { + PyReadable::from_file(&path, py).map_err(map_io_err)? } else { PyReadable::from_data(input, py) }; @@ -106,7 +107,7 @@ pub fn parse( /// :param input: the RDF triples and quads to serialize. /// :type input: iterable(Triple) or iterable(Quad) /// :param output: The binary I/O object or file path to write to. For example, it could be a file path as a string or a file writer opened in binary mode with ``open('my_file.ttl', 'wb')``. -/// :type output: io(bytes) or str +/// :type output: io(bytes) or str or pathlib.Path /// :param mime_type: the MIME type of the RDF serialization. /// :type mime_type: str /// :rtype: None @@ -119,8 +120,8 @@ pub fn parse( /// b' "1" .\n' #[pyfunction] pub fn serialize(input: &PyAny, output: PyObject, mime_type: &str, py: Python<'_>) -> PyResult<()> { - let output = if let Ok(path) = output.extract::<&str>(py) { - PyWritable::from_file(path, py).map_err(map_io_err)? + let output = if let Ok(path) = output.extract::(py) { + PyWritable::from_file(&path, py).map_err(map_io_err)? } else { PyWritable::from_data(output) }; @@ -202,7 +203,7 @@ pub enum PyReadable { } impl PyReadable { - pub fn from_file(file: &str, py: Python<'_>) -> io::Result { + pub fn from_file(file: &Path, py: Python<'_>) -> io::Result { Ok(Self::File(BufReader::new( py.allow_threads(|| File::open(file))?, ))) @@ -253,7 +254,7 @@ pub enum PyWritable { } impl PyWritable { - pub fn from_file(file: &str, py: Python<'_>) -> io::Result { + pub fn from_file(file: &Path, py: Python<'_>) -> io::Result { Ok(Self::File(BufWriter::new( py.allow_threads(|| File::create(file))?, ))) diff --git a/python/src/store.rs b/python/src/store.rs index 5e3c1df9..957c1b5c 100644 --- a/python/src/store.rs +++ b/python/src/store.rs @@ -9,6 +9,7 @@ use oxigraph::sparql::Update; use oxigraph::store::{self, LoaderError, SerializerError, StorageError, Store}; use pyo3::exceptions::{PyIOError, PyRuntimeError, PyValueError}; use pyo3::prelude::*; +use std::path::PathBuf; /// RDF store. /// @@ -26,7 +27,7 @@ use pyo3::prelude::*; /// :param path: the path of the directory in which the store should read and write its data. If the directory does not exist, it is created. /// If no directory is provided a temporary one is created and removed when the Python garbage collector removes the store. /// In this case, the store data are kept in memory and never written on disk. -/// :type path: str or None, optional +/// :type path: str or pathlib.Path or None, optional /// :raises IOError: if the target directory contains invalid data or could not be accessed. /// /// The :py:func:`str` function provides a serialization of the store in NQuads: @@ -45,7 +46,7 @@ pub struct PyStore { impl PyStore { #[new] #[pyo3(signature = (path = None))] - fn new(path: Option<&str>, py: Python<'_>) -> PyResult { + fn new(path: Option, py: Python<'_>) -> PyResult { py.allow_threads(|| { Ok(Self { inner: if let Some(path) = path { @@ -357,7 +358,7 @@ impl PyStore { /// and ``application/xml`` for `RDF/XML `_. /// /// :param input: The binary I/O object or file path to read from. For example, it could be a file path as a string or a file reader opened in binary mode with ``open('my_file.ttl', 'rb')``. - /// :type input: io(bytes) or io(str) or str + /// :type input: io(bytes) or io(str) or str or pathlib.Path /// :param mime_type: the MIME type of the RDF serialization. /// :type mime_type: str /// :param base_iri: the base IRI used to resolve the relative IRIs in the file or :py:const:`None` if relative IRI resolution should not be done. @@ -387,8 +388,8 @@ impl PyStore { } else { None }; - let input = if let Ok(path) = input.extract::<&str>(py) { - PyReadable::from_file(path, py).map_err(map_io_err)? + let input = if let Ok(path) = input.extract::(py) { + PyReadable::from_file(&path, py).map_err(map_io_err)? } else { PyReadable::from_data(input, py) }; @@ -439,7 +440,7 @@ impl PyStore { /// and ``application/xml`` for `RDF/XML `_. /// /// :param input: The binary I/O object or file path to read from. For example, it could be a file path as a string or a file reader opened in binary mode with ``open('my_file.ttl', 'rb')``. - /// :type input: io(bytes) or io(str) or str + /// :type input: io(bytes) or io(str) or str or pathlib.Path /// :param mime_type: the MIME type of the RDF serialization. /// :type mime_type: str /// :param base_iri: the base IRI used to resolve the relative IRIs in the file or :py:const:`None` if relative IRI resolution should not be done. @@ -469,8 +470,8 @@ impl PyStore { } else { None }; - let input = if let Ok(path) = input.extract::<&str>(py) { - PyReadable::from_file(path, py).map_err(map_io_err)? + let input = if let Ok(path) = input.extract::(py) { + PyReadable::from_file(&path, py).map_err(map_io_err)? } else { PyReadable::from_data(input, py) }; @@ -518,7 +519,7 @@ impl PyStore { /// and ``application/xml`` for `RDF/XML `_. /// /// :param output: The binary I/O object or file path to write to. For example, it could be a file path as a string or a file writer opened in binary mode with ``open('my_file.ttl', 'wb')``. - /// :type output: io(bytes) or str + /// :type output: io(bytes) or str or pathlib.Path /// :param mime_type: the MIME type of the RDF serialization. /// :type mime_type: str /// :param from_graph: if a triple based format is requested, the store graph from which dump the triples. By default, the default graph is used. @@ -541,8 +542,8 @@ impl PyStore { from_graph: Option<&PyAny>, py: Python<'_>, ) -> PyResult<()> { - let output = if let Ok(path) = output.extract::<&str>(py) { - PyWritable::from_file(path, py).map_err(map_io_err)? + let output = if let Ok(path) = output.extract::(py) { + PyWritable::from_file(&path, py).map_err(map_io_err)? } else { PyWritable::from_data(output) }; diff --git a/python/tests/test_store.py b/python/tests/test_store.py index 8883b7ef..d6693c4e 100644 --- a/python/tests/test_store.py +++ b/python/tests/test_store.py @@ -266,11 +266,11 @@ class TestStore(unittest.TestCase): def test_load_file(self) -> None: with NamedTemporaryFile(delete=False) as fp: - file_name = fp.name + file_name = Path(fp.name) fp.write(b" .") store = Store() store.load(file_name, mime_type="application/n-quads") - Path(file_name).unlink() + file_name.unlink() self.assertEqual(set(store), {Quad(foo, bar, baz, graph)}) def test_load_with_io_error(self) -> None: @@ -310,12 +310,12 @@ class TestStore(unittest.TestCase): def test_dump_file(self) -> None: with NamedTemporaryFile(delete=False) as fp: - file_name = fp.name + file_name = Path(fp.name) store = Store() store.add(Quad(foo, bar, baz, graph)) store.dump(file_name, "application/n-quads") self.assertEqual( - Path(file_name).read_text(), + file_name.read_text(), " .\n", ) From bb7379addb7af08209cbde66497efcad9a2e9dc9 Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 18 Aug 2023 09:56:19 +0200 Subject: [PATCH 04/24] Upgrades dependencies --- Cargo.lock | 383 +++++++++++++++++---------------------- oxrocksdb-sys/Cargo.toml | 4 +- oxrocksdb-sys/rocksdb | 2 +- server/Cargo.toml | 6 +- 4 files changed, 171 insertions(+), 224 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1b6590b8..d20e2e78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,18 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "aho-corasick" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -34,9 +25,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arbitrary" @@ -100,11 +91,11 @@ checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "bindgen" -version = "0.65.1" +version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags", + "bitflags 2.4.0", "cexpr", "clang-sys", "lazy_static", @@ -117,7 +108,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.18", + "syn 2.0.29", "which", ] @@ -127,6 +118,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + [[package]] name = "block-buffer" version = "0.10.4" @@ -138,12 +135,11 @@ dependencies = [ [[package]] name = "bstr" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "once_cell", "regex-automata", "serde", ] @@ -228,7 +224,7 @@ version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ - "bitflags", + "bitflags 1.3.2", "clap_lex 0.2.4", "indexmap", "textwrap", @@ -240,7 +236,7 @@ version = "4.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" dependencies = [ - "bitflags", + "bitflags 1.3.2", "clap_derive", "clap_lex 0.3.0", "is-terminal", @@ -308,9 +304,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -413,6 +409,12 @@ dependencies = [ "typenum", ] +[[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" + [[package]] name = "derive_arbitrary" version = "1.3.1" @@ -421,7 +423,7 @@ checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.29", ] [[package]] @@ -448,19 +450,19 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -568,11 +570,11 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ - "aho-corasick 0.7.20", + "aho-corasick", "bstr", "fnv", "log", @@ -585,7 +587,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "ignore", "walkdir", ] @@ -619,18 +621,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -703,9 +696,9 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.2", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -714,10 +707,10 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.2", "io-lifetimes", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -731,9 +724,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" @@ -783,9 +776,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.146" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libloading" @@ -815,9 +808,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "md-5" @@ -876,20 +869,20 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.2", "libc", ] @@ -985,6 +978,7 @@ dependencies = [ "escargot", "flate2", "ignore", + "is-terminal", "oxhttp", "oxigraph", "oxiri", @@ -994,6 +988,7 @@ dependencies = [ "rand", "rayon-core", "sparesults", + "tempfile", "url", ] @@ -1117,9 +1112,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plotters" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -1130,15 +1125,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] @@ -1181,12 +1176,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.6" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b69d39aab54d069e7f2fe8cb970493e7834601ca2d8c65fd7bbd183578080d1" +checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ "proc-macro2", - "syn 2.0.18", + "syn 2.0.29", ] [[package]] @@ -1215,18 +1210,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.60" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" -version = "0.19.0" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cffef52f74ec3b1a1baf295d9b8fcc3070327aefc39a6d00656b13c1d0b8885c" +checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", @@ -1241,9 +1236,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.19.0" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713eccf888fb05f1a96eb78c0dbc51907fee42b3377272dc902eb38985f418d5" +checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", @@ -1251,9 +1246,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.19.0" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2ecbdcfb01cbbf56e179ce969a048fd7305a66d4cdf3303e0da09d69afe4c3" +checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", @@ -1261,9 +1256,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.19.0" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b78fdc0899f2ea781c463679b20cb08af9247febc8d052de941951024cd8aea0" +checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -1273,9 +1268,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.19.0" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60da7b84f1227c3e2fe7593505de274dcf4c8928b4e0a1c23d551a14e4e80a0f" +checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", @@ -1301,9 +1296,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.28" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1366,31 +1361,37 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.8.4" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ - "aho-corasick 1.0.2", + "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.10" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] name = "regex-syntax" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "ring" @@ -1444,16 +1445,16 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.37.20" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1470,9 +1471,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -1482,18 +1483,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ "base64", ] [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -1506,18 +1507,18 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys", ] [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -1531,11 +1532,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -1544,9 +1545,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -1554,29 +1555,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.164" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.164" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.29", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "itoa", "ryu", @@ -1596,9 +1597,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", @@ -1619,9 +1620,9 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "sparesults" @@ -1675,9 +1676,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.18" +version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", @@ -1686,9 +1687,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.7" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" @@ -1701,7 +1702,7 @@ dependencies = [ "fastrand", "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1757,10 +1758,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.22" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" dependencies = [ + "deranged", "itoa", "serde", "time-core", @@ -1775,9 +1777,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" dependencies = [ "time-core", ] @@ -1821,9 +1823,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -1915,7 +1917,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.29", "wasm-bindgen-shared", ] @@ -1937,7 +1939,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.29", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2022,21 +2024,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -2048,117 +2035,75 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "27f51fb4c64f8b770a823c043c7fad036323e1c48f55287b7bbb7987b2fcdf3b" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "fde1bb55ae4ce76a597a8566d82c57432bc69c039449d61572a7a353da28f68c" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "1513e8d48365a78adad7322fd6b5e4c4e99d92a69db8df2d435b25b1f1f286d4" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "60587c0265d2b842298f5858e1a5d79d146f9ee0c37be5782e92a6eb5e1d7a83" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "224fe0e0ffff5d2ea6a29f82026c8f43870038a0ffc247aa95a52b47df381ac4" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "62fc52a0f50a088de499712cbc012df7ebd94e2d6eb948435449d76a6287e7ad" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "2093925509d91ea3d69bcd20238f4c2ecdb1a29d3c281d026a09705d0dd35f3d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "b6ade45bc8bf02ae2aa34a9d54ba660a1a58204da34ba793c00d83ca3730b5f1" [[package]] name = "zstd" -version = "0.12.3+zstd.1.5.2" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "6.0.5+zstd.1.5.4" +version = "6.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" dependencies = [ "libc", "zstd-sys", diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index bbe69f07..66d548b0 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -18,5 +18,5 @@ links = "rocksdb" libc = "0.2" [build-dependencies] -bindgen = "0.65" -cc = { version = "1", features = ["parallel"] } +bindgen = "0.66" +cc = { version = "=1.0.79", features = ["parallel"] } diff --git a/oxrocksdb-sys/rocksdb b/oxrocksdb-sys/rocksdb index 443333d8..5f2d6f0c 160000 --- a/oxrocksdb-sys/rocksdb +++ b/oxrocksdb-sys/rocksdb @@ -1 +1 @@ -Subproject commit 443333d8c059c87db408ec2d11685db00031b30a +Subproject commit 5f2d6f0cba9858130be48ae129dd9c9dcafe0f97 diff --git a/server/Cargo.toml b/server/Cargo.toml index 81d62db2..155ec2ec 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -22,14 +22,16 @@ sparesults = { version = "0.1.8", path = "../lib/sparesults", features = ["rdf-s rand = "0.8" url = "2" oxiri = "0.2" -flate2 = "1" +flate2 = "=1.0.26" rayon-core = "1" [dev-dependencies] assert_cmd = "=2.0.8" assert_fs = "=1.0.10" -escargot = "0.5" +tempfile = "=3.6.0" +escargot = "=0.5.7" ignore = "=0.4.18" +is-terminal = "=0.4.7" predicates = "2" predicates-core = "=1.0.5" predicates-tree = "=1.0.7" \ No newline at end of file From f8784638281176dd5e4f0f14c9692a0574fc9363 Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 18 Aug 2023 10:03:50 +0200 Subject: [PATCH 05/24] Releases v0.3.19 --- CHANGELOG.md | 10 ++++++++++ Cargo.lock | 10 +++++----- js/Cargo.toml | 4 ++-- lib/Cargo.toml | 4 ++-- oxrocksdb-sys/Cargo.toml | 2 +- python/Cargo.toml | 4 ++-- server/Cargo.toml | 4 ++-- 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c615fec..8424058a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [0.3.19] - 2023-08-18 + +### Added +- Python: allows to give `pathlib.Path` argument when a path is expected. +- Cargo.toml: add a documentation field to link to docs.rs documentation. + +### Changed +- Upgrades RocksDB to 8.3.2. + + ## [0.3.18] - 2023-06-13 ### Changed diff --git a/Cargo.lock b/Cargo.lock index d20e2e78..1fb1bba8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -926,7 +926,7 @@ dependencies = [ [[package]] name = "oxigraph" -version = "0.3.18" +version = "0.3.19" dependencies = [ "criterion", "digest", @@ -958,7 +958,7 @@ dependencies = [ [[package]] name = "oxigraph_js" -version = "0.3.18" +version = "0.3.19" dependencies = [ "console_error_panic_hook", "js-sys", @@ -968,7 +968,7 @@ dependencies = [ [[package]] name = "oxigraph_server" -version = "0.3.18" +version = "0.3.19" dependencies = [ "anyhow", "assert_cmd", @@ -1028,7 +1028,7 @@ dependencies = [ [[package]] name = "oxrocksdb-sys" -version = "0.3.18" +version = "0.3.19" dependencies = [ "bindgen", "cc", @@ -1279,7 +1279,7 @@ dependencies = [ [[package]] name = "pyoxigraph" -version = "0.3.18" +version = "0.3.19" dependencies = [ "oxigraph", "pyo3", diff --git a/js/Cargo.toml b/js/Cargo.toml index 55e9d0bc..a0817291 100644 --- a/js/Cargo.toml +++ b/js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_js" -version = "0.3.18" +version = "0.3.19" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -14,7 +14,7 @@ crate-type = ["cdylib"] name = "oxigraph" [dependencies] -oxigraph = { version = "0.3.18", path="../lib" } +oxigraph = { version = "0.3.19", path="../lib" } wasm-bindgen = "0.2" js-sys = "0.3" console_error_panic_hook = "0.1" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index fc904d8f..6fc5c036 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph" -version = "0.3.18" +version = "0.3.19" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -46,7 +46,7 @@ sparesults = { version = "0.1.8", path="sparesults", features = ["rdf-star"] } [target.'cfg(not(target_family = "wasm"))'.dependencies] libc = "0.2" -oxrocksdb-sys = { version = "0.3.18", path="../oxrocksdb-sys" } +oxrocksdb-sys = { version = "0.3.19", path="../oxrocksdb-sys" } oxhttp = { version = "0.1", optional = true } [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index 66d548b0..0eff37c8 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxrocksdb-sys" -version = "0.3.18" +version = "0.3.19" authors = ["Tpt "] license = "GPL-2.0 OR Apache-2.0" repository = "https://github.com/oxigraph/oxigraph/tree/main/oxrocksdb-sys" diff --git a/python/Cargo.toml b/python/Cargo.toml index 89ca09e7..7924f13d 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyoxigraph" -version = "0.3.18" +version = "0.3.19" authors = ["Tpt"] license = "MIT OR Apache-2.0" readme = "README.md" @@ -19,5 +19,5 @@ doctest = false abi3 = ["pyo3/abi3-py37"] [dependencies] -oxigraph = { version = "0.3.18", path="../lib", features = ["http_client"] } +oxigraph = { version = "0.3.19", path="../lib", features = ["http_client"] } pyo3 = { version = "0.19", features = ["extension-module"] } diff --git a/server/Cargo.toml b/server/Cargo.toml index 155ec2ec..54188149 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_server" -version = "0.3.18" +version = "0.3.19" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -17,7 +17,7 @@ anyhow = "1" oxhttp = { version = "0.1", features = ["rayon"] } clap = { version = "=4.0", features = ["derive"] } clap_lex = "=0.3.0" -oxigraph = { version = "0.3.18", path = "../lib", features = ["http_client"] } +oxigraph = { version = "0.3.19", path = "../lib", features = ["http_client"] } sparesults = { version = "0.1.8", path = "../lib/sparesults", features = ["rdf-star"] } rand = "0.8" url = "2" From 4568ae42098a022784b5a3e5554145c3f2d1515a Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 18 Aug 2023 17:12:06 +0200 Subject: [PATCH 06/24] JS: Adds more information on how to use dev tools --- js/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/js/README.md b/js/README.md index 576c9739..6891bbb4 100644 --- a/js/README.md +++ b/js/README.md @@ -244,13 +244,24 @@ store.dump("text/turtle", oxigraph.namedNode("http://example.com/graph")); * RDF/JS datamodel functions (`namedNode`...) are now available at the root of the `oxigraph` package. You now need to call `oxigraph.namedNode` instead of `store.dataFactory.namedNode`. * [RDF-star](https://w3c.github.io/rdf-star/cg-spec/2021-12-17.html) is now implemented. `Quad` is now a valid value for the `Ωuad` `subject` and `object` properties. + ## How to contribute The Oxigraph bindings are written in Rust using [the Rust WASM toolkit](https://rustwasm.github.io/docs.html). The [The Rust Wasm Book](https://rustwasm.github.io/docs/book/) is a great tutorial to get started. -To run the tests of the JS bindings written in JS run `npm test`. +To setup a dev environment: +- ensure to have a Rust toolchain with `rustup` and `cargo` installed ([possible instructions](https://www.rust-lang.org/tools/install)). +- install [`wasm-pack`](https://rustwasm.github.io/wasm-pack/): `cargo install wasm-pack` (it is also in some Linux distribution repositories). +- `npm install` to install pure JS dependencies. +- you are good to go! + +Testing and linting: +- Rust code is formatted with [rustfmt](https://github.com/rust-lang/rustfmt) and linted with [clippy](https://github.com/rust-lang/rust-clippy). + You can execute them with `cargo fmt` and `cargo clippy`. +- JS code is formatted and linted with [Rome](https://rome.tools/). `npm run fmt` to auto-format and `npm test` to lint and test. +- Tests are written in JavaScript using [Mocha](https://mochajs.org/) in the `test` directory. `npm test` to run them. ## License From 666a00cfab6c1d9aa1e1e30d1ed2cfc191f34a18 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 23 Aug 2023 21:42:33 +0200 Subject: [PATCH 07/24] Upgrades webkpi to avoid RUSTSEC-2023-0052 --- Cargo.lock | 86 +++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1fb1bba8..4473d210 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -411,9 +411,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" [[package]] name = "derive_arbitrary" @@ -912,9 +912,9 @@ checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "oxhttp" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aba22f4e7dc5088def616521ad0357b33fa9bc952848e6a449e0b6843a34e628" +checksum = "64f8f4b616372a7e657a05100d1389325fc2f7d3fee5c9de05166d979cb2b729" dependencies = [ "httparse", "lazy_static", @@ -1459,14 +1459,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" dependencies = [ "log", "ring", + "rustls-webpki", "sct", - "webpki", ] [[package]] @@ -1490,6 +1490,16 @@ dependencies = [ "base64", ] +[[package]] +name = "rustls-webpki" +version = "0.101.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "ryu" version = "1.0.15" @@ -1555,18 +1565,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.183" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" dependencies = [ "proc-macro2", "quote", @@ -1614,9 +1624,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "smallvec" @@ -1758,9 +1768,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07" dependencies = [ "deranged", "itoa", @@ -1777,9 +1787,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +checksum = "733d258752e9303d392b94b75230d07b0b9c489350c69b851fc6c065fde3e8f9" dependencies = [ "time-core", ] @@ -1960,16 +1970,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "which" version = "4.4.0" @@ -2035,9 +2035,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f51fb4c64f8b770a823c043c7fad036323e1c48f55287b7bbb7987b2fcdf3b" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -2050,45 +2050,45 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde1bb55ae4ce76a597a8566d82c57432bc69c039449d61572a7a353da28f68c" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1513e8d48365a78adad7322fd6b5e4c4e99d92a69db8df2d435b25b1f1f286d4" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60587c0265d2b842298f5858e1a5d79d146f9ee0c37be5782e92a6eb5e1d7a83" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224fe0e0ffff5d2ea6a29f82026c8f43870038a0ffc247aa95a52b47df381ac4" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fc52a0f50a088de499712cbc012df7ebd94e2d6eb948435449d76a6287e7ad" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2093925509d91ea3d69bcd20238f4c2ecdb1a29d3c281d026a09705d0dd35f3d" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.48.3" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ade45bc8bf02ae2aa34a9d54ba660a1a58204da34ba793c00d83ca3730b5f1" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "zstd" From b777d0110ae6ece9a02a0bed32577802b84aee65 Mon Sep 17 00:00:00 2001 From: Tpt Date: Mon, 9 Oct 2023 12:13:05 +0200 Subject: [PATCH 08/24] Makes recent Clippy happy --- lib/oxrdf/src/interning.rs | 1 + lib/spargebra/src/query.rs | 2 +- lib/src/io/read.rs | 2 +- lib/src/sparql/plan.rs | 2 +- lib/src/sparql/plan_builder.rs | 2 +- lib/src/storage/numeric_encoder.rs | 1 - lib/src/storage/small_string.rs | 2 +- 7 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/oxrdf/src/interning.rs b/lib/oxrdf/src/interning.rs index 54c8acde..2e3d62f2 100644 --- a/lib/oxrdf/src/interning.rs +++ b/lib/oxrdf/src/interning.rs @@ -13,6 +13,7 @@ pub struct Interner { } impl Interner { + #[allow(clippy::never_loop)] fn get_or_intern(&mut self, value: &str) -> Key { let mut hash = self.hash(value); loop { diff --git a/lib/spargebra/src/query.rs b/lib/spargebra/src/query.rs index 9f927a8d..6cb7e57b 100644 --- a/lib/spargebra/src/query.rs +++ b/lib/spargebra/src/query.rs @@ -210,7 +210,7 @@ impl fmt::Display for Query { writeln!(f, "BASE <{base_iri}>")?; } write!(f, "CONSTRUCT {{ ")?; - for triple in template.iter() { + for triple in template { write!(f, "{triple} . ")?; } write!(f, "}}")?; diff --git a/lib/src/io/read.rs b/lib/src/io/read.rs index 5d5ddeb2..b407fd9f 100644 --- a/lib/src/io/read.rs +++ b/lib/src/io/read.rs @@ -321,7 +321,7 @@ impl<'a> RioMapper { fn blank_node(&mut self, node: rio::BlankNode<'a>) -> BlankNode { self.bnode_map .entry(node.id.to_owned()) - .or_insert_with(BlankNode::default) + .or_default() .clone() } diff --git a/lib/src/sparql/plan.rs b/lib/src/sparql/plan.rs index 88469433..5ca5cc03 100644 --- a/lib/src/sparql/plan.rs +++ b/lib/src/sparql/plan.rs @@ -156,7 +156,7 @@ impl PlanNode { child.lookup_used_variables(callback); } Self::Union { children } => { - for child in children.iter() { + for child in children { child.lookup_used_variables(callback); } } diff --git a/lib/src/sparql/plan_builder.rs b/lib/src/sparql/plan_builder.rs index 5e7370c1..02432883 100644 --- a/lib/src/sparql/plan_builder.rs +++ b/lib/src/sparql/plan_builder.rs @@ -1280,7 +1280,7 @@ impl<'a> PlanBuilder<'a> { Self::add_left_join_problematic_variables(child, set); } PlanNode::Union { children } => { - for child in children.iter() { + for child in children { Self::add_left_join_problematic_variables(child, set); } } diff --git a/lib/src/storage/numeric_encoder.rs b/lib/src/storage/numeric_encoder.rs index 73b00fe3..9a084ff7 100644 --- a/lib/src/storage/numeric_encoder.rs +++ b/lib/src/storage/numeric_encoder.rs @@ -531,7 +531,6 @@ impl From> for EncodedTerm { } "http://www.w3.org/2001/XMLSchema#boolean" => parse_boolean_str(value), "http://www.w3.org/2001/XMLSchema#string" => { - let value = value; Some(if let Ok(value) = SmallString::try_from(value) { Self::SmallStringLiteral(value) } else { diff --git a/lib/src/storage/small_string.rs b/lib/src/storage/small_string.rs index 4bb1520b..a7134bd6 100644 --- a/lib/src/storage/small_string.rs +++ b/lib/src/storage/small_string.rs @@ -112,7 +112,7 @@ impl Eq for SmallString {} impl PartialOrd for SmallString { #[inline] fn partial_cmp(&self, other: &Self) -> Option { - self.as_str().partial_cmp(other.as_str()) + Some(self.cmp(other)) } } From c1b57f460b1b5490c46fc4af1e3de8822a529cd2 Mon Sep 17 00:00:00 2001 From: Vilnis Termanis Date: Mon, 16 Oct 2023 21:34:55 +0200 Subject: [PATCH 09/24] SPARQL: Fix ASK + FROM combination Previously ASK FROM only worked without WHERE --- lib/spargebra/src/parser.rs | 2 +- testsuite/oxigraph-tests/sparql/ask_from.rq | 1 + testsuite/oxigraph-tests/sparql/manifest.ttl | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 testsuite/oxigraph-tests/sparql/ask_from.rq diff --git a/lib/spargebra/src/parser.rs b/lib/spargebra/src/parser.rs index 7779e31c..ea1f9b7f 100644 --- a/lib/spargebra/src/parser.rs +++ b/lib/spargebra/src/parser.rs @@ -1055,7 +1055,7 @@ parser! { } rule DescribeQuery_item() -> NamedNodePattern = i:VarOrIri() _ { i } - rule AskQuery() -> Query = i("ASK") _ d:DatasetClauses() w:WhereClause() _ g:GroupClause()? _ h:HavingClause()? _ o:OrderClause()? _ l:LimitOffsetClauses()? _ v:ValuesClause() {? + rule AskQuery() -> Query = i("ASK") _ d:DatasetClauses() _ w:WhereClause() _ g:GroupClause()? _ h:HavingClause()? _ o:OrderClause()? _ l:LimitOffsetClauses()? _ v:ValuesClause() {? Ok(Query::Ask { dataset: d, pattern: build_select(Selection::no_op(), w, g, h, o, l, v, state)?, diff --git a/testsuite/oxigraph-tests/sparql/ask_from.rq b/testsuite/oxigraph-tests/sparql/ask_from.rq new file mode 100644 index 00000000..34592a8d --- /dev/null +++ b/testsuite/oxigraph-tests/sparql/ask_from.rq @@ -0,0 +1 @@ +ASK FROM WHERE { } diff --git a/testsuite/oxigraph-tests/sparql/manifest.ttl b/testsuite/oxigraph-tests/sparql/manifest.ttl index 21ef9e76..6594fe12 100644 --- a/testsuite/oxigraph-tests/sparql/manifest.ttl +++ b/testsuite/oxigraph-tests/sparql/manifest.ttl @@ -16,6 +16,7 @@ :long_unicode_escape_with_multibytes_char_update :describe :describe_where + :ask_with_from :group_concat_with_null :single_not_exists :property_list_path @@ -63,6 +64,10 @@ qt:data ] ; mf:result . +:ask_with_from rdf:type mf:PositiveSyntaxTest ; + mf:name "ASK with FROM" ; + mf:action . + :group_concat_with_null rdf:type mf:QueryEvaluationTest ; mf:name "GROUP_CONCAT with NULL" ; rdfs:comment "GROUP_CONCAT should ignore null values" ; From b0a01e65faaa5e1f0879be8cc9a7c6e8208bd2e0 Mon Sep 17 00:00:00 2001 From: Tpt Date: Thu, 19 Oct 2023 18:00:32 +0200 Subject: [PATCH 10/24] SPARQL: makes sure that STR is working properly on small IRIs Issue #645 --- lib/src/sparql/eval.rs | 8 +++++++- testsuite/oxigraph-tests/sparql/manifest.ttl | 6 ++++++ testsuite/oxigraph-tests/sparql/small_iri_str.rq | 3 +++ testsuite/oxigraph-tests/sparql/small_iri_str.srx | 6 ++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 testsuite/oxigraph-tests/sparql/small_iri_str.rq create mode 100644 testsuite/oxigraph-tests/sparql/small_iri_str.srx diff --git a/lib/src/sparql/eval.rs b/lib/src/sparql/eval.rs index 8c94853d..8a49643d 100644 --- a/lib/src/sparql/eval.rs +++ b/lib/src/sparql/eval.rs @@ -2134,7 +2134,13 @@ fn to_bool(term: &EncodedTerm) -> Option { fn to_string_id(dataset: &DatasetView, term: &EncodedTerm) -> Option { match term { - EncodedTerm::NamedNode { iri_id } => Some((*iri_id).into()), + EncodedTerm::NamedNode { iri_id } => Some( + if let Ok(value) = SmallString::try_from(dataset.get_str(iri_id).ok()??.as_str()) { + value.into() + } else { + SmallStringOrId::Big(*iri_id) + }, + ), EncodedTerm::DefaultGraph | EncodedTerm::NumericalBlankNode { .. } | EncodedTerm::SmallBlankNode { .. } diff --git a/testsuite/oxigraph-tests/sparql/manifest.ttl b/testsuite/oxigraph-tests/sparql/manifest.ttl index 6594fe12..60a6a68d 100644 --- a/testsuite/oxigraph-tests/sparql/manifest.ttl +++ b/testsuite/oxigraph-tests/sparql/manifest.ttl @@ -32,6 +32,7 @@ :one_or_more_shared :one_or_more_star :in_empty_error + :small_iri_str ) . :small_unicode_escape_with_multibytes_char rdf:type mf:NegativeSyntaxTest ; @@ -151,3 +152,8 @@ mf:name "IN should propagate errors on the left side, even on the empty input" ; mf:action [ qt:query ] ; mf:result . + +:small_iri_str rdf:type mf:QueryEvaluationTest ; + mf:name "Small IRI strings should be properly equal to their value" ; + mf:action [ qt:query ] ; + mf:result . diff --git a/testsuite/oxigraph-tests/sparql/small_iri_str.rq b/testsuite/oxigraph-tests/sparql/small_iri_str.rq new file mode 100644 index 00000000..6ecbcf18 --- /dev/null +++ b/testsuite/oxigraph-tests/sparql/small_iri_str.rq @@ -0,0 +1,3 @@ +ASK { + FILTER(STR() = "ex:a") +} \ No newline at end of file diff --git a/testsuite/oxigraph-tests/sparql/small_iri_str.srx b/testsuite/oxigraph-tests/sparql/small_iri_str.srx new file mode 100644 index 00000000..6e002ae6 --- /dev/null +++ b/testsuite/oxigraph-tests/sparql/small_iri_str.srx @@ -0,0 +1,6 @@ + + + + + true + \ No newline at end of file From b1e33293a590e090ac5ed22812ec39f704f1112e Mon Sep 17 00:00:00 2001 From: Tpt Date: Thu, 19 Oct 2023 21:45:38 +0200 Subject: [PATCH 11/24] Upgrades RocksDB --- oxrocksdb-sys/rocksdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxrocksdb-sys/rocksdb b/oxrocksdb-sys/rocksdb index 5f2d6f0c..aef00834 160000 --- a/oxrocksdb-sys/rocksdb +++ b/oxrocksdb-sys/rocksdb @@ -1 +1 @@ -Subproject commit 5f2d6f0cba9858130be48ae129dd9c9dcafe0f97 +Subproject commit aef00834450d74e3bde1a57c6b616709bdc60e74 From e87bff6e6e8d9bbc94436ed3b39edea4d83e5c47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 18:53:06 +0000 Subject: [PATCH 12/24] Bump rustix from 0.37.23 to 0.37.25 Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.37.23 to 0.37.25. - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.37.23...v0.37.25) --- updated-dependencies: - dependency-name: rustix dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4473d210..281737e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1445,9 +1445,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.37.23" +version = "0.37.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" dependencies = [ "bitflags 1.3.2", "errno", From 1dfad23e4b3528ec65bcaf649c5ecd83163b6529 Mon Sep 17 00:00:00 2001 From: Tpt Date: Sat, 21 Oct 2023 16:29:09 +0200 Subject: [PATCH 13/24] Upgrades RocksDB Fixes issue #655 --- oxrocksdb-sys/rocksdb | 2 +- testsuite/rdf-star | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/oxrocksdb-sys/rocksdb b/oxrocksdb-sys/rocksdb index aef00834..1ce22dd6 160000 --- a/oxrocksdb-sys/rocksdb +++ b/oxrocksdb-sys/rocksdb @@ -1 +1 @@ -Subproject commit aef00834450d74e3bde1a57c6b616709bdc60e74 +Subproject commit 1ce22dd6376b124d17eff7d96e0809d2f4b4ae70 diff --git a/testsuite/rdf-star b/testsuite/rdf-star index 8c7039dd..59eb0293 160000 --- a/testsuite/rdf-star +++ b/testsuite/rdf-star @@ -1 +1 @@ -Subproject commit 8c7039dd152915a48f266c3d9a10c75adeb24181 +Subproject commit 59eb0293b2b620023ee38252228c725769ad206f From a259879ef1f835f601778f37344dd8e22a6b093d Mon Sep 17 00:00:00 2001 From: Tpt Date: Mon, 23 Oct 2023 18:19:39 +0200 Subject: [PATCH 14/24] Releases v0.3.20 --- CHANGELOG.md | 8 ++++++++ Cargo.lock | 10 +++++----- js/Cargo.toml | 4 ++-- lib/Cargo.toml | 4 ++-- oxrocksdb-sys/Cargo.toml | 2 +- python/Cargo.toml | 4 ++-- server/Cargo.toml | 4 ++-- 7 files changed, 22 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8424058a..789913ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [0.3.20] - 2023-10-23 + +### Changed +- SPARQL: fixes `STR` evaluation on small IRI (less than 16 bytes) that was broken. +- SPARQL update: fixes `WHERE` clause evaluation that was generating too many solutions in some cases. +- Upgrades RocksDB to 8.7.1. + + ## [0.3.19] - 2023-08-18 ### Added diff --git a/Cargo.lock b/Cargo.lock index 281737e9..e3171497 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -926,7 +926,7 @@ dependencies = [ [[package]] name = "oxigraph" -version = "0.3.19" +version = "0.3.20" dependencies = [ "criterion", "digest", @@ -958,7 +958,7 @@ dependencies = [ [[package]] name = "oxigraph_js" -version = "0.3.19" +version = "0.3.20" dependencies = [ "console_error_panic_hook", "js-sys", @@ -968,7 +968,7 @@ dependencies = [ [[package]] name = "oxigraph_server" -version = "0.3.19" +version = "0.3.20" dependencies = [ "anyhow", "assert_cmd", @@ -1028,7 +1028,7 @@ dependencies = [ [[package]] name = "oxrocksdb-sys" -version = "0.3.19" +version = "0.3.20" dependencies = [ "bindgen", "cc", @@ -1279,7 +1279,7 @@ dependencies = [ [[package]] name = "pyoxigraph" -version = "0.3.19" +version = "0.3.20" dependencies = [ "oxigraph", "pyo3", diff --git a/js/Cargo.toml b/js/Cargo.toml index a0817291..208a23c3 100644 --- a/js/Cargo.toml +++ b/js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_js" -version = "0.3.19" +version = "0.3.20" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -14,7 +14,7 @@ crate-type = ["cdylib"] name = "oxigraph" [dependencies] -oxigraph = { version = "0.3.19", path="../lib" } +oxigraph = { version = "0.3.20", path="../lib" } wasm-bindgen = "0.2" js-sys = "0.3" console_error_panic_hook = "0.1" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 6fc5c036..371e60c5 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph" -version = "0.3.19" +version = "0.3.20" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -46,7 +46,7 @@ sparesults = { version = "0.1.8", path="sparesults", features = ["rdf-star"] } [target.'cfg(not(target_family = "wasm"))'.dependencies] libc = "0.2" -oxrocksdb-sys = { version = "0.3.19", path="../oxrocksdb-sys" } +oxrocksdb-sys = { version = "0.3.20", path="../oxrocksdb-sys" } oxhttp = { version = "0.1", optional = true } [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index 0eff37c8..5aa666bf 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxrocksdb-sys" -version = "0.3.19" +version = "0.3.20" authors = ["Tpt "] license = "GPL-2.0 OR Apache-2.0" repository = "https://github.com/oxigraph/oxigraph/tree/main/oxrocksdb-sys" diff --git a/python/Cargo.toml b/python/Cargo.toml index 7924f13d..c9abd2fc 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyoxigraph" -version = "0.3.19" +version = "0.3.20" authors = ["Tpt"] license = "MIT OR Apache-2.0" readme = "README.md" @@ -19,5 +19,5 @@ doctest = false abi3 = ["pyo3/abi3-py37"] [dependencies] -oxigraph = { version = "0.3.19", path="../lib", features = ["http_client"] } +oxigraph = { version = "0.3.20", path="../lib", features = ["http_client"] } pyo3 = { version = "0.19", features = ["extension-module"] } diff --git a/server/Cargo.toml b/server/Cargo.toml index 54188149..e46ddaba 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_server" -version = "0.3.19" +version = "0.3.20" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -17,7 +17,7 @@ anyhow = "1" oxhttp = { version = "0.1", features = ["rayon"] } clap = { version = "=4.0", features = ["derive"] } clap_lex = "=0.3.0" -oxigraph = { version = "0.3.19", path = "../lib", features = ["http_client"] } +oxigraph = { version = "0.3.20", path = "../lib", features = ["http_client"] } sparesults = { version = "0.1.8", path = "../lib/sparesults", features = ["rdf-star"] } rand = "0.8" url = "2" From 9af2717502cb9c087342d13ec8e32e89d97b0ef8 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 22 Nov 2023 16:28:07 +0100 Subject: [PATCH 15/24] Bulk loader: do not fail on empty files --- lib/src/storage/backend/rocksdb.rs | 3 +++ lib/tests/store.rs | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/src/storage/backend/rocksdb.rs b/lib/src/storage/backend/rocksdb.rs index fc8f4da2..67766007 100644 --- a/lib/src/storage/backend/rocksdb.rs +++ b/lib/src/storage/backend/rocksdb.rs @@ -814,6 +814,9 @@ impl Db { &self, ssts_for_cf: &[(&ColumnFamily, PathBuf)], ) -> Result<(), StorageError> { + if ssts_for_cf.is_empty() { + return Ok(()); // Rocksdb does not support empty lists + } if let DbKind::ReadWrite(db) = &self.inner { let mut paths_by_cf = HashMap::<_, Vec<_>>::new(); for (cf, path) in ssts_for_cf { diff --git a/lib/tests/store.rs b/lib/tests/store.rs index 5f8a6809..32cb1516 100644 --- a/lib/tests/store.rs +++ b/lib/tests/store.rs @@ -12,6 +12,8 @@ use std::fs::{create_dir, remove_dir_all, File}; use std::io::Cursor; #[cfg(not(target_family = "wasm"))] use std::io::Write; +#[cfg(not(target_family = "wasm"))] +use std::iter::empty; #[cfg(target_os = "linux")] use std::iter::once; #[cfg(not(target_family = "wasm"))] @@ -159,6 +161,16 @@ fn test_bulk_load_graph_lenient() -> Result<(), Box> { Ok(()) } +#[test] +#[cfg(not(target_family = "wasm"))] +fn test_bulk_load_empty() -> Result<(), Box> { + let store = Store::new()?; + store.bulk_loader().load_quads(empty::())?; + assert!(store.is_empty()?); + store.validate()?; + Ok(()) +} + #[test] fn test_load_dataset() -> Result<(), Box> { let store = Store::new()?; From 6d1d752e0155994e0c92943e1ff4f099ef187743 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 29 Nov 2023 17:49:35 +0100 Subject: [PATCH 16/24] Upgrades RocksDB to 8.8.1 --- oxrocksdb-sys/rocksdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxrocksdb-sys/rocksdb b/oxrocksdb-sys/rocksdb index 1ce22dd6..d9f9b9a7 160000 --- a/oxrocksdb-sys/rocksdb +++ b/oxrocksdb-sys/rocksdb @@ -1 +1 @@ -Subproject commit 1ce22dd6376b124d17eff7d96e0809d2f4b4ae70 +Subproject commit d9f9b9a759821252261151c3ca371947734da720 From aa82fc8157c53f90745d92378787545ffa80d9b6 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 29 Nov 2023 17:37:26 +0100 Subject: [PATCH 17/24] Python: builds for Python 12 and pypy on Linux --- .github/workflows/manylinux_build.sh | 5 ++++- .github/workflows/musllinux_build.sh | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/manylinux_build.sh b/.github/workflows/manylinux_build.sh index 1ed3f3e2..669e961a 100644 --- a/.github/workflows/manylinux_build.sh +++ b/.github/workflows/manylinux_build.sh @@ -15,7 +15,10 @@ maturin develop --release -m Cargo.toml python generate_stubs.py pyoxigraph pyoxigraph.pyi --black maturin build --release -m Cargo.toml --features abi3 --compatibility manylinux2014 if [ %for_each_version% ]; then - for VERSION in 7 8 9 10 11; do + for VERSION in 7 8 9 10 11 12; do maturin build --release -m Cargo.toml --interpreter "python3.$VERSION" --compatibility manylinux2014 done + for VERSION in 9 10; do + maturin build --release -m Cargo.toml --interpreter "pypy3.$VERSION" --compatibility manylinux2014 + done fi diff --git a/.github/workflows/musllinux_build.sh b/.github/workflows/musllinux_build.sh index 7dd2fb4c..5f96b322 100644 --- a/.github/workflows/musllinux_build.sh +++ b/.github/workflows/musllinux_build.sh @@ -13,7 +13,7 @@ maturin develop --release -m Cargo.toml python generate_stubs.py pyoxigraph pyoxigraph.pyi --black maturin build --release -m Cargo.toml --features abi3 --compatibility musllinux_1_1 if [ %for_each_version% ]; then - for VERSION in 7 8 9 10 11; do + for VERSION in 7 8 9 10 11 12; do maturin build --release -m Cargo.toml --interpreter "python3.$VERSION" --compatibility musllinux_1_1 done fi From 31733beda87052a7edcd069e7489d083d1c77b86 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 29 Nov 2023 17:40:27 +0100 Subject: [PATCH 18/24] Python: generate sdist on Linux --- .github/workflows/artifacts.yml | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index e71b1df8..1096a4c8 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -106,6 +106,36 @@ jobs: files: oxigraph_server_${{ github.event.release.tag_name }}_x86_64_windows_msvc.exe if: github.event_name == 'release' + python_sdist: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - run: rustup update + - uses: Swatinem/rust-cache@v2 + - uses: actions/setup-python@v4 + with: + python-version: "3.12" + cache: pip + cache-dependency-path: '**/requirements.dev.txt' + - run: pip install -r python/requirements.dev.txt + - run: maturin build -m python/Cargo.toml + - run: pip install --no-index --find-links=target/wheels/ pyoxigraph + - run: rm -r target/wheels + - run: python generate_stubs.py pyoxigraph pyoxigraph.pyi --black + working-directory: ./python + - run: maturin sdist -m python/Cargo.toml + - uses: actions/upload-artifact@v3 + with: + name: pyoxigraph_source + path: target/wheels/*.tar.gz + - run: pip install twine && twine upload target/wheels/* + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + if: github.event_name == 'release' + wheel_linux: runs-on: ubuntu-latest strategy: @@ -221,7 +251,6 @@ jobs: - run: python generate_stubs.py pyoxigraph pyoxigraph.pyi --black working-directory: ./python - run: maturin build --release -m python/Cargo.toml --features abi3 - - run: maturin sdist -m python/Cargo.toml - uses: actions/upload-artifact@v3 with: name: pyoxigraph_wheel_x86_64_windows From e1ff1d919c096ae24231698f5028f3b1dba5e240 Mon Sep 17 00:00:00 2001 From: Tpt Date: Wed, 29 Nov 2023 17:52:20 +0100 Subject: [PATCH 19/24] Releases v0.3.21 --- CHANGELOG.md | 8 ++++++++ Cargo.lock | 10 +++++----- js/Cargo.toml | 4 ++-- lib/Cargo.toml | 4 ++-- oxrocksdb-sys/Cargo.toml | 2 +- python/Cargo.toml | 4 ++-- server/Cargo.toml | 4 ++-- 7 files changed, 22 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 789913ca..b55cab3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [0.3.21] - 2023-11-29 + +### Changed +- Bulk loader: do not fail when loading empty files. +- Python: fixes source distribution. +- Upgrades RocksDB to 7.8.1. + + ## [0.3.20] - 2023-10-23 ### Changed diff --git a/Cargo.lock b/Cargo.lock index e3171497..23086aeb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -926,7 +926,7 @@ dependencies = [ [[package]] name = "oxigraph" -version = "0.3.20" +version = "0.3.21" dependencies = [ "criterion", "digest", @@ -958,7 +958,7 @@ dependencies = [ [[package]] name = "oxigraph_js" -version = "0.3.20" +version = "0.3.21" dependencies = [ "console_error_panic_hook", "js-sys", @@ -968,7 +968,7 @@ dependencies = [ [[package]] name = "oxigraph_server" -version = "0.3.20" +version = "0.3.21" dependencies = [ "anyhow", "assert_cmd", @@ -1028,7 +1028,7 @@ dependencies = [ [[package]] name = "oxrocksdb-sys" -version = "0.3.20" +version = "0.3.21" dependencies = [ "bindgen", "cc", @@ -1279,7 +1279,7 @@ dependencies = [ [[package]] name = "pyoxigraph" -version = "0.3.20" +version = "0.3.21" dependencies = [ "oxigraph", "pyo3", diff --git a/js/Cargo.toml b/js/Cargo.toml index 208a23c3..0bd7dee4 100644 --- a/js/Cargo.toml +++ b/js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_js" -version = "0.3.20" +version = "0.3.21" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -14,7 +14,7 @@ crate-type = ["cdylib"] name = "oxigraph" [dependencies] -oxigraph = { version = "0.3.20", path="../lib" } +oxigraph = { version = "0.3.21", path="../lib" } wasm-bindgen = "0.2" js-sys = "0.3" console_error_panic_hook = "0.1" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 371e60c5..e7b88816 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph" -version = "0.3.20" +version = "0.3.21" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -46,7 +46,7 @@ sparesults = { version = "0.1.8", path="sparesults", features = ["rdf-star"] } [target.'cfg(not(target_family = "wasm"))'.dependencies] libc = "0.2" -oxrocksdb-sys = { version = "0.3.20", path="../oxrocksdb-sys" } +oxrocksdb-sys = { version = "0.3.21", path="../oxrocksdb-sys" } oxhttp = { version = "0.1", optional = true } [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index 5aa666bf..ada54b93 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxrocksdb-sys" -version = "0.3.20" +version = "0.3.21" authors = ["Tpt "] license = "GPL-2.0 OR Apache-2.0" repository = "https://github.com/oxigraph/oxigraph/tree/main/oxrocksdb-sys" diff --git a/python/Cargo.toml b/python/Cargo.toml index c9abd2fc..3f7e9fc5 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyoxigraph" -version = "0.3.20" +version = "0.3.21" authors = ["Tpt"] license = "MIT OR Apache-2.0" readme = "README.md" @@ -19,5 +19,5 @@ doctest = false abi3 = ["pyo3/abi3-py37"] [dependencies] -oxigraph = { version = "0.3.20", path="../lib", features = ["http_client"] } +oxigraph = { version = "0.3.21", path="../lib", features = ["http_client"] } pyo3 = { version = "0.19", features = ["extension-module"] } diff --git a/server/Cargo.toml b/server/Cargo.toml index e46ddaba..3444a8e2 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_server" -version = "0.3.20" +version = "0.3.21" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -17,7 +17,7 @@ anyhow = "1" oxhttp = { version = "0.1", features = ["rayon"] } clap = { version = "=4.0", features = ["derive"] } clap_lex = "=0.3.0" -oxigraph = { version = "0.3.20", path = "../lib", features = ["http_client"] } +oxigraph = { version = "0.3.21", path = "../lib", features = ["http_client"] } sparesults = { version = "0.1.8", path = "../lib/sparesults", features = ["rdf-star"] } rand = "0.8" url = "2" From 389d993dc405be08be6f22bce7ad34ed1310be01 Mon Sep 17 00:00:00 2001 From: Dan Brickley Date: Wed, 29 Nov 2023 21:02:38 +0000 Subject: [PATCH 20/24] Update README.md typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5313fd0f..c67072f4 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted ## Sponsors * [RelationLabs](https://relationlabs.ai/) that is building [Relation-Graph](https://github.com/relationlabs/Relation-Graph), a SPARQL database module for the [Substrate blockchain platform](https://substrate.io/) based on Oxigraph. -* [Field 33](https://field33.com) that is building [an ontology management plateform](https://plow.pm/). +* [Field 33](https://field33.com) that is building [an ontology management platform](https://plow.pm/). * [Magnus Bakken](https://github.com/magbak) who is building [chrontext](https://github.com/magbak/chrontext), providing a SPARQL query endpoint on top of joint RDF and time series databases. * [ACE IoT Solutions](https://aceiotsolutions.com/), a building IOT platform. * [Albin Larsson](https://byabbe.se/) who is building [GovDirectory](https://www.govdirectory.org/), a directory of public agencies based on Wikidata. From 9979a3d5038fbdab2948022c154630cea6b78a45 Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 1 Dec 2023 13:37:17 +0100 Subject: [PATCH 21/24] Allows newer dependency versions --- .github/workflows/tests.yml | 11 +++++++++++ lib/Cargo.toml | 2 +- oxrocksdb-sys/Cargo.toml | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 363c26ef..e84c2d7d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -132,6 +132,17 @@ jobs: env: RUST_BACKTRACE: 1 + test_linux_latest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - run: rustup update + - uses: Swatinem/rust-cache@v2 + - run: rm Cargo.lock && cargo update + - run: cargo test + address_sanitizer: runs-on: ubuntu-latest steps: diff --git a/lib/Cargo.toml b/lib/Cargo.toml index e7b88816..47441a83 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -36,7 +36,7 @@ rio_api = "0.8" rio_turtle = "0.8" rio_xml = "0.8" hex = "0.4" -siphasher = "0.3" +siphasher = ">=0.3,<2.0" lazy_static = "1" json-event-parser = "0.1" oxrdf = { version = "0.1.7", path="oxrdf", features = ["rdf-star", "oxsdatatypes"] } diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index ada54b93..8d448518 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -18,5 +18,5 @@ links = "rocksdb" libc = "0.2" [build-dependencies] -bindgen = "0.66" -cc = { version = "=1.0.79", features = ["parallel"] } +bindgen = ">=0.66,<0.70" +cc = { version = "1.0.79", features = ["parallel"] } From d88c2e0a8a513b2591e2269e3598aa495a463320 Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 1 Dec 2023 13:42:14 +0100 Subject: [PATCH 22/24] Adds compatibility with lazy_static with spin_no_std feature --- lib/src/storage/backend/rocksdb.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/storage/backend/rocksdb.rs b/lib/src/storage/backend/rocksdb.rs index 67766007..3c21c007 100644 --- a/lib/src/storage/backend/rocksdb.rs +++ b/lib/src/storage/backend/rocksdb.rs @@ -1398,6 +1398,7 @@ impl From for StorageError { struct UnsafeEnv(*mut rocksdb_env_t); // Hack for lazy_static. OK because only written in lazy static and used in a thread-safe way by RocksDB +unsafe impl Send for UnsafeEnv {} unsafe impl Sync for UnsafeEnv {} fn path_to_cstring(path: &Path) -> Result { From 03afe5c6c64e1f872b2933ee863ee0085e837a00 Mon Sep 17 00:00:00 2001 From: Tpt Date: Fri, 1 Dec 2023 15:23:01 +0100 Subject: [PATCH 23/24] Releases v0.3.22 --- CHANGELOG.md | 7 +++++++ Cargo.lock | 10 +++++----- js/Cargo.toml | 4 ++-- lib/Cargo.toml | 4 ++-- oxrocksdb-sys/Cargo.toml | 2 +- python/Cargo.toml | 4 ++-- server/Cargo.toml | 4 ++-- 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b55cab3c..9e0007e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [0.3.22] - 2023-11-29 + +### Changed +- Allows to compile with more recent `bindgen` and `cc` +- Fixes compatibility with `spin_no_std` feature of `lazy_static` + + ## [0.3.21] - 2023-11-29 ### Changed diff --git a/Cargo.lock b/Cargo.lock index 23086aeb..bb2f629c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -926,7 +926,7 @@ dependencies = [ [[package]] name = "oxigraph" -version = "0.3.21" +version = "0.3.22" dependencies = [ "criterion", "digest", @@ -958,7 +958,7 @@ dependencies = [ [[package]] name = "oxigraph_js" -version = "0.3.21" +version = "0.3.22" dependencies = [ "console_error_panic_hook", "js-sys", @@ -968,7 +968,7 @@ dependencies = [ [[package]] name = "oxigraph_server" -version = "0.3.21" +version = "0.3.22" dependencies = [ "anyhow", "assert_cmd", @@ -1028,7 +1028,7 @@ dependencies = [ [[package]] name = "oxrocksdb-sys" -version = "0.3.21" +version = "0.3.22" dependencies = [ "bindgen", "cc", @@ -1279,7 +1279,7 @@ dependencies = [ [[package]] name = "pyoxigraph" -version = "0.3.21" +version = "0.3.22" dependencies = [ "oxigraph", "pyo3", diff --git a/js/Cargo.toml b/js/Cargo.toml index 0bd7dee4..bbe60120 100644 --- a/js/Cargo.toml +++ b/js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_js" -version = "0.3.21" +version = "0.3.22" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -14,7 +14,7 @@ crate-type = ["cdylib"] name = "oxigraph" [dependencies] -oxigraph = { version = "0.3.21", path="../lib" } +oxigraph = { version = "0.3.22", path="../lib" } wasm-bindgen = "0.2" js-sys = "0.3" console_error_panic_hook = "0.1" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 47441a83..fa335dff 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph" -version = "0.3.21" +version = "0.3.22" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -46,7 +46,7 @@ sparesults = { version = "0.1.8", path="sparesults", features = ["rdf-star"] } [target.'cfg(not(target_family = "wasm"))'.dependencies] libc = "0.2" -oxrocksdb-sys = { version = "0.3.21", path="../oxrocksdb-sys" } +oxrocksdb-sys = { version = "0.3.22", path="../oxrocksdb-sys" } oxhttp = { version = "0.1", optional = true } [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] diff --git a/oxrocksdb-sys/Cargo.toml b/oxrocksdb-sys/Cargo.toml index 8d448518..a0e54f5f 100644 --- a/oxrocksdb-sys/Cargo.toml +++ b/oxrocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxrocksdb-sys" -version = "0.3.21" +version = "0.3.22" authors = ["Tpt "] license = "GPL-2.0 OR Apache-2.0" repository = "https://github.com/oxigraph/oxigraph/tree/main/oxrocksdb-sys" diff --git a/python/Cargo.toml b/python/Cargo.toml index 3f7e9fc5..68efa4dd 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyoxigraph" -version = "0.3.21" +version = "0.3.22" authors = ["Tpt"] license = "MIT OR Apache-2.0" readme = "README.md" @@ -19,5 +19,5 @@ doctest = false abi3 = ["pyo3/abi3-py37"] [dependencies] -oxigraph = { version = "0.3.21", path="../lib", features = ["http_client"] } +oxigraph = { version = "0.3.22", path="../lib", features = ["http_client"] } pyo3 = { version = "0.19", features = ["extension-module"] } diff --git a/server/Cargo.toml b/server/Cargo.toml index 3444a8e2..11c48d49 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxigraph_server" -version = "0.3.21" +version = "0.3.22" authors = ["Tpt "] license = "MIT OR Apache-2.0" readme = "README.md" @@ -17,7 +17,7 @@ anyhow = "1" oxhttp = { version = "0.1", features = ["rayon"] } clap = { version = "=4.0", features = ["derive"] } clap_lex = "=0.3.0" -oxigraph = { version = "0.3.21", path = "../lib", features = ["http_client"] } +oxigraph = { version = "0.3.22", path = "../lib", features = ["http_client"] } sparesults = { version = "0.1.8", path = "../lib/sparesults", features = ["rdf-star"] } rand = "0.8" url = "2" From 735db897ff71fa634ed9220321f614299f3064da Mon Sep 17 00:00:00 2001 From: etiennept <47983879+etiennept@users.noreply.github.com> Date: Fri, 29 Dec 2023 17:39:34 +0100 Subject: [PATCH 24/24] Update package.json replace mv pkg with out-dir --- js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/package.json b/js/package.json index e8744994..c1405e4b 100644 --- a/js/package.json +++ b/js/package.json @@ -10,7 +10,7 @@ "scripts": { "fmt": "rome format . --write && rome check . --apply-unsafe", "test": "rome ci . && wasm-pack build --debug --target nodejs && mocha", - "build": "rm -rf pkg && wasm-pack build --release --target web --out-name web && mv pkg pkg-web && wasm-pack build --release --target nodejs --out-name node && mv pkg pkg-node && node build_package.js && rm -r pkg-web && rm -r pkg-node", + "build": "rm -rf pkg && wasm-pack build --release --target web --out-name web --out-dir pkg-web && wasm-pack build --release --target nodejs --out-name node --out-dir pkg-node && node build_package.js && rm -r pkg-web && rm -r pkg-node", "release": "npm run build && npm publish ./pkg", "pack": "npm run build && npm pack ./pkg" },