This is a major release. Old queries against old backends should work without any changes. However, you'll need a new backend to take advantage of most of the new features.
Features marked with a ** require the new backend.
New Features in the language
* C++ Code injection can be done via a decorator
* List comprehension and Generator expressions are now supported, automatically turned into `func_adl` statements. This is particularly helpful when doing 2-object matching.
* Local and global variables are properly captured in `lambda`'s.
New Features in the infrastructure
* Support for Query Metadata. This metadata is sent to the backend without being touched **
* Support for in-query Metadata. This metadata is not sent to the backend, but can be extracted from the query. The in-query metadata can be overridden by setting a value more than once. **
* A Fully typed `ObjectStream` is supported via Generics. Various editors that type-follow will be able to correctly predict methods, etc., that are available. You'll need a complete object model for this to work (see the [`func_adl_servicex_xaodr21`](https://pypi.org/project/func-adl-servicex-xaodr21/) package) **
* Python 10 is supported.
The PR's
* Add a function to allow MetaData over the wire by gordonwatts in https://github.com/iris-hep/func_adl/pull/78
* Added typing into ObjectStream by gordonwatts in https://github.com/iris-hep/func_adl/pull/80
* Support Python 10 by gordonwatts in https://github.com/iris-hep/func_adl/pull/86
* Extensability via the type system by gordonwatts in https://github.com/iris-hep/func_adl/pull/82
* Pythonic Decorators for Code Injection by gordonwatts in https://github.com/iris-hep/func_adl/pull/87
* Support Lambda Capture by gordonwatts in https://github.com/iris-hep/func_adl/pull/88
* Turning on black as a formatter by gordonwatts in https://github.com/iris-hep/func_adl/pull/89
* Parameterized Method Calls by gordonwatts in https://github.com/iris-hep/func_adl/pull/90
* Pr_query_metadata by gordonwatts in https://github.com/iris-hep/func_adl/pull/91
* Support ListComp and Generator expressions by gordonwatts in https://github.com/iris-hep/func_adl/pull/92
* Fixes to get a version that runs in production by gordonwatts in https://github.com/iris-hep/func_adl/pull/94
* More robust parsing of ast's from callables by gordonwatts in https://github.com/iris-hep/func_adl/pull/97
* Regression (untested) for lambdas continuing accross lines by gordonwatts in https://github.com/iris-hep/func_adl/pull/98
* Calls to AsXXX with column names as single items or single arrays should be the same by gordonwatts in https://github.com/iris-hep/func_adl/pull/99
* Bug Fix: argument names should override captured variables by gordonwatts in https://github.com/iris-hep/func_adl/pull/100
**Full Changelog**: https://github.com/iris-hep/func_adl/compare/2.3...3.0