From e042c2e49b10e37d32563afe526635c5be10fec1 Mon Sep 17 00:00:00 2001 From: Filippo Neysofu Costa Date: Thu, 23 Feb 2023 16:18:07 +0100 Subject: [PATCH] docs: `v0.30.0` release notes (#4363) * docs: v0.30.0 release notes * news: fix typo * news: Firehose block ingestor downgrade caution * Release v0.30.0 --- Cargo.lock | 44 ++++++++++++++++---------------- Cargo.toml | 2 +- NEWS.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 97 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f0a05e03bfd..13a40c7430c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1525,7 +1525,7 @@ dependencies = [ [[package]] name = "graph" -version = "0.29.0" +version = "0.30.0" dependencies = [ "Inflector", "anyhow", @@ -1591,7 +1591,7 @@ dependencies = [ [[package]] name = "graph-chain-arweave" -version = "0.29.0" +version = "0.30.0" dependencies = [ "base64-url", "diesel", @@ -1607,7 +1607,7 @@ dependencies = [ [[package]] name = "graph-chain-common" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "heck 0.4.1", @@ -1617,7 +1617,7 @@ dependencies = [ [[package]] name = "graph-chain-cosmos" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "graph", @@ -1633,7 +1633,7 @@ dependencies = [ [[package]] name = "graph-chain-ethereum" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "base64 0.20.0", @@ -1660,7 +1660,7 @@ dependencies = [ [[package]] name = "graph-chain-near" -version = "0.29.0" +version = "0.30.0" dependencies = [ "base64 0.20.0", "diesel", @@ -1675,7 +1675,7 @@ dependencies = [ [[package]] name = "graph-chain-substreams" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "async-stream", @@ -1702,7 +1702,7 @@ dependencies = [ [[package]] name = "graph-core" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "async-stream", @@ -1739,7 +1739,7 @@ dependencies = [ [[package]] name = "graph-graphql" -version = "0.29.0" +version = "0.30.0" dependencies = [ "Inflector", "anyhow", @@ -1761,14 +1761,14 @@ dependencies = [ [[package]] name = "graph-mock" -version = "0.29.0" +version = "0.30.0" dependencies = [ "graph", ] [[package]] name = "graph-node" -version = "0.29.0" +version = "0.30.0" dependencies = [ "clap", "crossbeam-channel", @@ -1806,7 +1806,7 @@ dependencies = [ [[package]] name = "graph-runtime-derive" -version = "0.29.0" +version = "0.30.0" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -1816,7 +1816,7 @@ dependencies = [ [[package]] name = "graph-runtime-test" -version = "0.29.0" +version = "0.30.0" dependencies = [ "graph", "graph-chain-ethereum", @@ -1832,7 +1832,7 @@ dependencies = [ [[package]] name = "graph-runtime-wasm" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "async-trait", @@ -1858,7 +1858,7 @@ dependencies = [ [[package]] name = "graph-server-http" -version = "0.29.0" +version = "0.30.0" dependencies = [ "futures 0.1.31", "graph", @@ -1872,7 +1872,7 @@ dependencies = [ [[package]] name = "graph-server-index-node" -version = "0.29.0" +version = "0.30.0" dependencies = [ "blake3 1.3.3", "either", @@ -1892,7 +1892,7 @@ dependencies = [ [[package]] name = "graph-server-json-rpc" -version = "0.29.0" +version = "0.30.0" dependencies = [ "graph", "jsonrpsee", @@ -1901,7 +1901,7 @@ dependencies = [ [[package]] name = "graph-server-metrics" -version = "0.29.0" +version = "0.30.0" dependencies = [ "graph", "hyper", @@ -1909,7 +1909,7 @@ dependencies = [ [[package]] name = "graph-server-websocket" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "futures 0.1.31", @@ -1925,7 +1925,7 @@ dependencies = [ [[package]] name = "graph-store-postgres" -version = "0.29.0" +version = "0.30.0" dependencies = [ "Inflector", "anyhow", @@ -1966,7 +1966,7 @@ dependencies = [ [[package]] name = "graph-tests" -version = "0.29.0" +version = "0.30.0" dependencies = [ "anyhow", "assert-json-diff", @@ -4395,7 +4395,7 @@ dependencies = [ [[package]] name = "test-store" -version = "0.29.0" +version = "0.30.0" dependencies = [ "diesel", "graph", diff --git a/Cargo.toml b/Cargo.toml index 74cafca8ba8..1808e6f3f5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ members = [ ] [workspace.package] -version = "0.29.0" +version = "0.30.0" edition = "2021" authors = ["The Graph core developers & contributors"] readme = "README.md" diff --git a/NEWS.md b/NEWS.md index 26fb38b75d2..bec220e7112 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,80 @@ ## Unreleased -- Fields of type `Bytes` can now use less than and greater than filters [#4285](https://github.com/graphprotocol/graph-node/pull/4285) +## v0.30.0 + +### Database locale change + +New `graph-node` installations now **mandate** PostgreSQL to use C locale and UTF-8 encoding. The official `docker-compose.yml` template has been updated accordingly. **Pre-existing `graph-node` installations are not concerned with this change**, but local development scripts and CI pipelines may have to adjust database initialization parameters. This can be done with `initdb -E UTF8 --locale=C`. [#4163](https://github.com/graphprotocol/graph-node/pull/4163), [#4151](https://github.com/graphprotocol/graph-node/pull/4151), [#4201](https://github.com/graphprotocol/graph-node/pull/4201), [#4340](https://github.com/graphprotocol/graph-node/pull/4340) + +### What's new + +- **AND/OR filters.** AND/OR logical operators in `where` filters have been one of `graph-node`'s [most awaited](https://github.com/graphprotocol/graph-node/issues?q=is%3Aissue+sort%3Areactions-%2B1-desc) features. They do exactly what you would expect them to do, and are very powerful. [#579](https://github.com/graphprotocol/graph-node/issues/579), [#4080](https://github.com/graphprotocol/graph-node/pull/4080), [#4171](https://github.com/graphprotocol/graph-node/pull/4171) +- **IPFS file data sources.** IPFS file data sources allow subgraph developers to query offchain information from IPFS directly in mappings. This feature is the culmination of much community and development efforts (GIP [here](https://forum.thegraph.com/t/gip-file-data-sources/2721)). A future iteration of this feature will also include a so-called "Availability Chain", allowing IPFS file data sources to contribute to Proofs of Indexing. At the moment, entity updates that originate from these data sources' handlers do **not** contribute to PoIs. [#4147](https://github.com/graphprotocol/graph-node/pull/4147), [#4162](https://github.com/graphprotocol/graph-node/pull/4162), and many others! +- **Sorting by child entities** (a.k.a. nested sorting). You can now `orderBy` properties of child entities. [#4058](https://github.com/graphprotocol/graph-node/pull/4058), [#3737](https://github.com/graphprotocol/graph-node/issues/3737), [#3096](https://github.com/graphprotocol/graph-node/pull/3096) +- Added support for a Firehose-based block ingestor. **Indexers that use the new Firehose-based block ingestor **cannot** automatically switch back to RPC.** In order to downgrade, indexers must manually delete all blocks accumulated by Firehose in the database. For this reason, we suggest caution when switching over from RPC to Firehose. [#4059](https://github.com/graphprotocol/graph-node/issues/4059), [#4204](https://github.com/graphprotocol/graph-node/pull/4204), [#4216](https://github.com/graphprotocol/graph-node/pull/4216) +- Fields of type `Bytes` can now use less than and greater than filters. [#4285](https://github.com/graphprotocol/graph-node/pull/4285) +- "userinfo" is now allowed in IPFS URLs (e.g. `https://foo:bar@example.com:5001/`). [#4252](https://github.com/graphprotocol/graph-node/pull/4252) +- The default for `GRAPH_IPFS_TIMEOUT` is now 60 seconds instead of 30. [#4324](https://github.com/graphprotocol/graph-node/pull/4324) +- Forking options can now be set via env. vars. (`GRAPH_START_BLOCK`, `GRAPH_FORK_BASE`, `GRAPH_DEBUG_FORK`). [#4308](https://github.com/graphprotocol/graph-node/pull/4308) +- Allow retrieving GraphQL query tracing over HTTP if the env. var. `GRAPH_GRAPHQL_TRACE_TOKEN` is set and the header `X-GraphTraceQuery` is included. The query traces' JSON is the same as returned by `graphman query`. [#4243](https://github.com/graphprotocol/graph-node/pull/4243) +- Lots of visual and filtering improvements to [#4232](https://github.com/graphprotocol/graph-node/pull/4232) +- More aggressive in-memory caching of blocks close the chain head, potentially alleviating database load. [#4215](https://github.com/graphprotocol/graph-node/pull/4215) +- New counter Prometheus metric `query_validation_error_counter`, labelled by deployment ID and error code. [#4230](https://github.com/graphprotocol/graph-node/pull/4230) +graph_elasticsearch_logs_sent +- Turned "Flushing logs to Elasticsearch" log into a Prometheus metric (`graph_elasticsearch_logs_sent`) to reduce log noise. [#4333](https://github.com/graphprotocol/graph-node/pull/4333) +- New materialized view `info.chain_sizes`, which works the same way as the already existing `info.subgraph_sizes` and `info.table_sizes`. [#4318](https://github.com/graphprotocol/graph-node/pull/4318) +- New `graphman stats` subcommands `set-target` and `target` to manage statistics targets for specific deployments (i.e. how much data PostgreSQL samples when analyzing a table). [#4092](https://github.com/graphprotocol/graph-node/pull/4092) + +### Fixes + +- `graph-node` now has PID=1 when running inside the official Docker image. [#4217](https://github.com/graphprotocol/graph-node/pull/4217) +- More robust `ipfs.cat` logic during grafted subgraphs' manifest lookup. [#4284](https://github.com/graphprotocol/graph-node/pull/4284) +- Fixed a bug that caused some large multi-entity inserts to fail because of faulty chunk size calculation. [#4250](https://github.com/graphprotocol/graph-node/pull/4250) +- Subgraph pruning now automatically cancels ongoing autovacuum, to avoid getting stuck. [#4167](https://github.com/graphprotocol/graph-node/pull/4167) +- `ens.getNameByHash` now fails nondeterministically if [ENS rainbow tables](https://github.com/graphprotocol/ens-rainbow) are not available locally. [#4219](https://github.com/graphprotocol/graph-node/pull/4219) +- Some kinds of subgraph failures were previously wrongly treated as unattestable (value parsing, `enum` and scalar coercion), i.e. nondeterministic. These subgraph failure modes are now flagged as fully-deterministic. [#4278](https://github.com/graphprotocol/graph-node/pull/4278) + + + +**Full Changelog**: https://github.com/graphprotocol/graph-node/compare/v0.29.0...e5dd53df05d0af9ae4e69db2b588f1107dd9f1d6 ## v0.29.0