This is an automated email from the ASF dual-hosted git repository.
xiazcy pushed a commit to branch TINKERPOP-3186
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/TINKERPOP-3186 by this push:
new 68c8b296c2 Update CHANGELOG & docs
68c8b296c2 is described below
commit 68c8b296c263111cbd1fac7e81c0eea787000de7
Author: xiazcy <[email protected]>
AuthorDate: Thu Oct 16 10:30:49 2025 -0700
Update CHANGELOG & docs
---
CHANGELOG.asciidoc | 3 ++-
docs/src/upgrade/release-3.8.x.asciidoc | 19 ++++++++++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index dde7953b08..f8754043e2 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -28,8 +28,9 @@ This release also includes changes from <<release-3-7-XXX,
3.7.XXX>>.
* Added the Air Routes dataset to the set of available samples packaged with
distributions.
* Added a minimal distribution for `tinkergraph-gremlin` using the `min`
classifier that doesn't include the sample datasets.
* Removed Vertex/ReferenceVertex from grammar. Use vertex id in traversals now
instead.
-* Renamed `none()` step to `discard()`.
* Fixed bug where `InlineFilterStrategy` could add an empty `has()`.
+* Normalized python and javascript `Element.properties` to lists.
+* Renamed `none()` step to `discard()`.
* Repurposed `none()` step as a list filtering step with the signature
`none(P)`.
* Modified mathematical operators to prevent overflows in steps such as
`sum()` and 'sack()' to prefer promotion to the next highest number type.
* Added `DateTime` ontop of the existing 'datetime' grammar.
diff --git a/docs/src/upgrade/release-3.8.x.asciidoc
b/docs/src/upgrade/release-3.8.x.asciidoc
index 65b5e6a71b..f5de25e718 100644
--- a/docs/src/upgrade/release-3.8.x.asciidoc
+++ b/docs/src/upgrade/release-3.8.x.asciidoc
@@ -301,10 +301,27 @@ g.inject("Hello").split("")
See: link:https://issues.apache.org/jira/browse/TINKERPOP-3083[TINKERPOP-3083]
==== asString() No Longer Allow Nulls
-The `asString()` step will no longer allow `null` input. An
`IllegalArgumentException` will be thrown for consistency with all other
parsing steps (i.e. `asDate()`, `asBool()`, `asNumber()`).
+
+The `asString()` step will no longer allow `null` input. An
`IllegalArgumentException` will be thrown for consistency
+with all other parsing steps (i.e. `asDate()`, `asBool()`, `asNumber()`).
See:
link:https://lists.apache.org/thread/q76pgrvhprosb4lty63bnsnbw2ljyl7m[DISCUSS]
thread
+==== Properties on Element Serialization in Python & Javascript
+
+Element properties handling has been inconsistent across GLVs. Previously,
`gremlin-python` deserialized empty properties as `None`, while
+`gremlin-javascript` returned properties as objects or arrays, with empty
properties as null or undefined depending on the serializer.
+
+This inconsistency is now resolved. Both GLVs will deserialize
Element.properties into lists of property objects, returning empty lists
+instead of null values for missing properties.
+
+This is a breaking change. Applications using gremlin-python and
gremlin-javascript must update code to expect properties as lists rather than
the
+previous formats.
+
+Note: This change affects only GLV behavior, not underlying IO formats.
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-3186[TINKERPOP-3186]
+
==== Javascript Set Deserialization
Starting from this version, `gremlin-javascript` will deserialize `Set` data
into a ECMAScript 2015 Set. Previously,