leerho commented on issue #191: URL: https://github.com/apache/datasketches-go/issues/191#issuecomment-5985593372
A note on how this differs from the C++ case (apache/datasketches-cpp#533): C++ fixed its version by **reverting** the AoS sketch (apache/datasketches-cpp#537). That cost nothing because the C++ AoS sketch had never been released. Go can't do the same: AoS shipped in **v0.2.0**, so users may already have saved Go AoS sketches. Removing the sketch or changing its key hashing breaks those saved sketches either way. So the Go fix has to be a **breaking change in a minor release (v0.3.0)**, which a pre-1.0 module allows, with the release notes saying clearly that: - AoS sketches serialized by v0.2.0 hash their keys differently from the fixed version (and from Java), so they can't be combined with sketches built after the fix. Users should rebuild them from the source data. - Key arrays are joined with `","` without escaping (see the note above). Which encoding Go switches to (UTF-16LE to match Java, or UTF-8 everywhere) still depends on the dev@ discussion: https://lists.apache.org/thread/5vlbnodmw8h5s0oc1988f4pdhkjnv8qw Meanwhile, the datasketches-tck snapshots keep the 27 `aos_*_go.sk` files as v0.2.0 writes them. When the fix lands, the next TCK snapshot update will show them as deterministic changes, so the format change will be visible in review. Separately, apache/datasketches-go#193 fixes `make generate-go-snapshots`, which currently fails on `main` with `ErrHashExceedsTheta`. It doesn't change any hashing. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
