Just posted two new releases of Agrest - 3.7 and 4.0. "4.x" is a new line of Agrest that is based on Cayenne 4.2. It will likely diverge from "3.x" at some point, but for now they are identical except for the Cayenne version. So what's new beside Cayenne 4.2 option? In a few words - improving overlays and further decoupling of the core from Cayenne.
Overlays API keeps evolving and is now the only mechanism to manipulate a precompiled Ag model. The new release adds "exclude" functionality to overlays, and replaces "SelectBuilder.property(..)" with simpler overlay-based "SelectBuilder.entityAttribute(..)" API.
Refactoring related to Cayenne separation is 80% finished. Unfortunately it is fairly invasive. The main Agrest API (SelectBuilder, ResourceEntity, etc.) no longer provides direct access to Expressions, Orderings, SelectQuery or allows to use Property directly. Instead when customizing a pipeline, you'd use Agrest "protocol" objects like Sort and CayenneExp. Those are pretty dumb and do not allow to do much, except pass them down to the underlying Cayenne layer. There's extra info on changed APIs in the upgrade notes [1].
Full release notes:
## Release 4.0
* #456 Upgrade to Cayenne 4.2
... plus everything from 3.7 ...
## Release 3.7
* #449 Excludes in overlays: support removing attributes and relationships via overlays
* #450 Minimize Cayenne footprint - remove references to "Property" from API signatures
* #451 Remove API deprecated in 3.4 or earlier
* #452 Replace SelectBuilder.property(..) with overlay-based API
* #453 Remove Cayenne SelectQuery from ResourceEntity
* #454 Remove property name from property reader signature
* #455 Replace Cayenne Ordering in ResourceEntity with Agrest "sort"
* #457 Replace Cayenne "Expression" in ResourceEntity with Agrest "CayenneExp"
[1]
https://github.com/agrestio/agrest/blob/master/UPGRADE-NOTES.md
Andrus