Gremlinq.Extensions 13.6.0

Changes

  • Forward to Gremlinq 13.6.0 (#163) @danielcweber
  • Changed messages snapshots on CosmosDb Emulator 2.14.27 (#164) @danielcweber
  • Bump OpenTelemetry from 1.14.0 to 1.15.0 (#161) @dependabot[bot]

ExRam.Gremlinq 13.6.0

New In/Out/Both/InE/OutE/BothE overloads with multiple type parameters

ExRam.Gremlinq now supports passing multiple type parameters to In, Out, Both, InE, OutE and BothE traversal steps, removing the need to use Union over multiple single .In/InE/Out/OutE/Both/BothE calls. (#2256, #2259, #2260, #2261)

[!IMPORTANT] Possible compilation errors: If you have created equally-named extension methods for In, Out or Both (or InE/OutE/BothE) that accept 2 generic type parameters - possibly as a shortcut for chaining e.g. .In<…>().OfType<…>() - you may encounter compilation errors after upgrading, because the new built-in overloads will now be preffered over your extensions. In this case, please rename your custom extensions (e.g. to InOfType, OutOfType, BothOfType, InEOfType, OutEOfType, BothEOfType etc.) to resolve the ambiguity. Same goes for any other reasons your code might have extensions with any number of generic parameters that will conflict with the new overloads. Check before updating.

Early detection of unsatisfiable type constraints (#2255)

Gremlinq will now detect empty label sets that arise from unsatisfiable type constraints that would result in unsatisfiable label-sets at query-build time (that is still at runtime) and throw an informative exception. Previously, such queries would silently produce empty results, masking what is almost always a bug in the query or the type model. If you see a new exception after upgrading, it means the query in question was already broken before - it is now being called out explicitly so it can be fixed.

Changes

  • .editorconfig review (#2264) @danielcweber
  • Add copilot-instructions.md. (#2262) @danielcweber
  • Add more InE/OutE overloads to IVertexGremlinQueryBase (#2261) @danielcweber
  • Unify implementations for Both(E), In(E) and Out(E) for types and no types (#2260) @danielcweber
  • Add support for multi-type-parameter InE/OutE/BothE (#2259) @danielcweber
  • Support multiple In/Out/Both type parameters (#2256) @danielcweber
  • Fail early on type mismatches (#2255) @danielcweber
  • Review test type system (#2254) @danielcweber

ExRam.Gremlinq 13.5.2

Changes

  • Replace T4 templates with Roslyn Source Generators (#2250) @danielcweber
  • Add BenchmarkDotNet infrastructure for continuous performance tracking (#2243) @copilot-swe-agent[bot]
  • Allow creating continuation-traversals on pooled arrays (#2240) @danielcweber

ExRam.Gremlinq 13.5.1

Changes

  • PoolSlotGremlinqClient: Don't dispose the client when a single request is cancelled (#2238) @danielcweber
  • More WebSocket review (#2237) @danielcweber
  • Dont wrap OperationCanceledExceptions (#2235) @danielcweber
  • Propagate deserialization exception (#2236) @danielcweber

ExRam.Gremlinq 13.5.0

This release introduces first-class support for date and time operations in Gremlin queries, along with improvements to the WebSocket client.

Date and Time Support

Gremlinq now provides dedicated query types and APIs for working with dates:

  • AsDate() - Convert values to date representations
  • DateAdd() - Perform date arithmetic (add time intervals)
  • DateDiff() - Calculate differences between dates

Additionally, convenience extension methods are now available for , making date-based queries more ergonomic.

WebSocket Client

The WebSocket client implementation has been reviewed and cleaned up for improved reliability.


Changes

  • Add convenience extensions for IGremlinQueryBase (#2219) @danielcweber
  • Add dedicated queries and Apis for Date handling (AsDate, DateAdd, DateDiff) (#2218) @danielcweber
  • Review WebSocket Client (#2217, #2220) @danielcweber

ExRam.Gremlinq 13.4.5

Changes

  • Revert Await WebSocket receive in any case, even when anything fails during deserialization. (#2216) @danielcweber
  • Bump Microsoft.Testing.Extensions.CodeCoverage from 18.1.0 to 18.3.1 (#2209) @dependabot[bot]
  • Review Public Api tests (#2208) @danielcweber

ExRam.Gremlinq 13.4.4

Changes

  • More forward slashes. (#2207) @danielcweber
  • Only check serialization of Drop. Remove stray snapshots. (#2206) @danielcweber
  • Await WebSocket receive in any case, even when anything fails during deserialization. (#2205) @danielcweber
  • ReSharper Review. (#2201) @danielcweber
  • Rework AddOrUpdate (#2199) @danielcweber
  • Optimize SideEffect for empty sub-traversals. (#2198) @danielcweber
  • Remove catch for NREs thanks to fix in TestContainers (#2197) @danielcweber
  • Forward slashes in csproj. (#2196) @danielcweber
  • Dont drop database upfront (#2195) @danielcweber
  • Handle zero tests ran differently. (#2194) @danielcweber
  • Update .NET SDK. (#2193) @danielcweber
  • Start next WebSocket read early (#2192) @danielcweber
  • Increase WebSocket buffer size (#2191) @danielcweber
  • Fix lowest common projection determination (#2190) @danielcweber

Gremlinq.Extensions 13.4.3

Changes

  • Add explicit IntegrationTests for a real Neptune instance (#158) @danielcweber
  • Add Strategies Integration tests (#157) @danielcweber
  • Fix ReservedKeysVerificationStrategy to include throwException and logWarning. (#156) @danielcweber

ExRam.Gremlinq 13.4.3

Changes

  • Update ASP.NET template after rework (#2187) @QazCetelic
  • Template review (#2185) @danielcweber
  • Write guids quoted and with a specific (D) formatter (#2179) @john-manktelow
  • Migrate test infrastructure to Microsoft.Testing.Platform (MTP) v2 (#2183) @copilot-swe-agent[bot]