Changelog¶
All notable changes to traverse are documented in this file.
The format follows Keep a Changelog. traverse uses Semantic Versioning.
[0.4.0] - Phase C: Production Readiness¶
Added¶
- Lambda filter DSL (
lambda_filter.go) - type-safe filter builder withquery.Field().Gt(),query.And(),query.Any(),query.All()and full OData function support - Deep insert (
deep_insert.go) - create an entity and its related entities in a single POST, following the OData deep insert specification - Conditional headers (
conditional_headers.go) - typedIfMatch,IfNoneMatch,IfModifiedSince,IfUnmodifiedSincerequest modifiers withETagtype - Stream property support (
stream_property.go) - read, write, and delete OData stream properties; multipart chunked upload with progress callback
[0.3.0] - Phase B2: Code Generation¶
Added¶
- traverse-gen CLI (
cmd/traverse-gen/) - reads EDMX metadata and generates typed Go client, entity structs, query builders, and enum types - EDMX parser supporting OData v2 and v4 metadata documents
- PascalCase normalisation for entity and property names
--include/--excludeflags for selective generation--nullableflag for pointer vs value types on nullable properties
[0.2.0] - Phase B: Advanced OData¶
Added¶
- Entity change tracking (
change_tracking.go) -ChangeSet[T]records mutations to tracked entities and submits them as an atomic$batchrequest - Deep expand (
deep_expand.go) - nested$expandwith per-level$select,$filter,$orderby,$topoptions (OData v4) - Async operation poller (
async_op.go) -AsyncPoller[T]polls202 Accepted/Locationresponses with configurable interval, progress callbacks, and timeout
[0.1.0] - Phase A: Core OData Features¶
Added¶
- ETag upsert (
etag_upsert.go) - upsert entity withIf-Match: *orIf-None-Match: *semantics for atomic create-or-replace - Typed paginator (
paginator.go) -Paginator[T]supports@odata.nextLink,$skiptoken, and$top/$skippagination strategies $applyaggregation -CollectionBuilder.Apply()for server-side group-by and aggregate expressions
[0.0.1] - Initial release¶
Added¶
- Declarative OData query builder (
$filter,$select,$expand,$orderby,$top,$skip,$count,$format) - CRUD operations: List, Get, Create, Update, Replace, Delete
- OData v2 and v4 support with auto-detection
- JSON and ATOM response parsing
- Built on relay for all transport-level concerns (retries, timeouts, circuit breaker)
- Typed error types with OData error code and details