Trustfall v0.4.0
obi1kenobi
released this
24 Apr 14:04
·
334 commits
to main
since this release
What's Changed
- Breaking:
Adapter
trait methods now take&self
instead of&mut self
to avoid reentrancy bugs: #249 - Breaking: Released the new optimizations API:
Adapter
methods now take aresolve_info
argument that can be used to get information about the query for the purpose of applying optimizations. Incargo-semver-checks
this new API led to a 2354x speedup. - Many smaller bug fixes thanks to 26,000+ lines of new tests and test code.
Migrating from Trustfall v0.3
Replace all BasicAdapter
and Adapter
method receivers with &self
instead of &mut self
.
If you need mutability, you need to do BOTH of these things:
- advance the
ContextIterator
input iterator before doing any mutation, to avoid reentrancy bugs - use
RefCell
around yourAdapter
orBasicAdapter
's mutable state, making sure to not hold its mutable borrow across operations on the inputContextIterator
in order to avoid reentrancy bugs
All Merged PRs
- Use dtolnay's Rust toolchain action instead of the actions-rs ones. by @obi1kenobi in #215
- Modernize more GitHub Actions steps. by @obi1kenobi in #216
- Internal refactor to unblock the new optimizations API. by @obi1kenobi in #217
- Implement the
VertexInfo
notable trait and basic hint functionality. by @obi1kenobi in #219 - Add doc comments to a bunch of the public API. by @obi1kenobi in #220
- Make the edge-facing optimizations API more ergonomic. by @obi1kenobi in #221
- Improve VertexInfo doc comments. by @obi1kenobi in #222
- Improve the
edges_with_name
doc comment. by @obi1kenobi in #223 - Update dependencies. by @obi1kenobi in #218
- Flesh out the candidate values submodule. by @obi1kenobi in #226
- Seal the VertexInfo and InternalVertexInfo traits. by @obi1kenobi in #227
- Allow using
*_property
helper macros without importingFieldValue
by @ginger51011 in #229 - Implement
statically_known_property()
onVertexInfo
. by @obi1kenobi in #228 - Bump json5 from 2.2.1 to 2.2.3 in /experiments/browser_based_querying by @dependabot in #232
- chore: Bump package-lock using npm upgrade by @paavanb in #233
- feat: Bump monaco-graphql, update editor configs by @paavanb in #231
- Implement resolving dynamically-known property values. by @obi1kenobi in #230
- Remove no-longer-needed TODO note. by @obi1kenobi in #234
- Re-export
EdgeInfo
intrustfall
. by @obi1kenobi in #235 - Add remaining new hint-related re-exports. by @obi1kenobi in #236
- Allow the helper functions to take functions with
'vertex
lifetime. by @obi1kenobi in #237 - Release Trustfall v0.4.0-beta.0 to test the new APIs. by @obi1kenobi in #238
- Add a README in the
trustfall/examples
and to theweather
demo. by @obi1kenobi in #239 - Fix new README links. by @obi1kenobi in #240
- Make examples less sensitive to the exact path from which they're run. by @obi1kenobi in #241
- Add more READMEs for example projects. by @obi1kenobi in #242
- Remove accidental character. by @obi1kenobi in #243
- Add another test case to the suite. by @obi1kenobi in #244
- Add fuzz project lint to CI. by @obi1kenobi in #245
- Fix the fuzz targets. by @obi1kenobi in #246
- Add fuzz target for adapter batching behavior tests. by @obi1kenobi in #247
- Make the
Adapter
trait methods take&self
instead of&mut self
. by @obi1kenobi in #249 - Publish v0.4.0-beta.1 with the new
&self
-basedAdapter
API. by @obi1kenobi in #250 - Update dependencies to latest versions. by @obi1kenobi in #251
- Add test cases for the semantics of combining
@optional
+@filter
. by @obi1kenobi in #252 - Add more test cases for edge cases around
@optional
semantics. by @obi1kenobi in #253 - Navigating past an
@optional
edge should disable many hints. by @obi1kenobi in #254 - Update dependency versions. by @obi1kenobi in #256
- Using
@tag
from nonexistent@optional
inside@fold
works now. by @obi1kenobi in #257 - Fix
@tag
on@fold
-related field inside nonexistent@optional
. by @obi1kenobi in #258 - Split off query execution outputs into their own files. by @obi1kenobi in #259
- Check query outputs metadata in the test suite. by @obi1kenobi in #260
- Fix type inference for optional and fold-related outputs. by @obi1kenobi in #261
- Add more fold-related edge cases to the test suite. by @obi1kenobi in #255
- Add
cloned()
methods onRange
andCandidateValue
. by @obi1kenobi in #262 - Rename
FieldValue::as_vec()
toas_vec_with()
. by @obi1kenobi in #263 - Improved documentation for the new optimizations API. by @obi1kenobi in #264
- Release v0.4.0-beta.2 of Trustfall. by @obi1kenobi in #265
- Improve adapter-related docs. by @obi1kenobi in #266
- Improve naming, docs, and ergonomics of
VertexInfo
trait. by @obi1kenobi in #267 - Build
trustfall
docs on docs.rs with the--cfg docsrs
flag. by @obi1kenobi in #269 - Add top-level doc comment in Trustfall crate and improve main README. by @obi1kenobi in #270
- Publish v0.4.0-beta.3 with renamed optimization methods. by @obi1kenobi in #271
- Release v0.4.0 with the new optimization hints API. by @obi1kenobi in #272
New Contributors
- @dependabot made their first contribution in #232
Full Changelog: trustfall-v0.3.4...trustfall-v0.4.0