Skip to content

Make the latest snapshots from every language the default - #15

Merged
tisonkun merged 6 commits into
mainfrom
issue-12-latest-snapshots
Oct 5, 2026
Merged

tisonkun merged 6 commits into
mainfrom
issue-12-latest-snapshots

Conversation

@leerho

@leerho leerho commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Closes #12.

The weekly and manually dispatched snapshot workflow updates each upstream source with the existing snapshots update <language> <revision> interface. It explicitly enumerates cpp, go, and java and passes HEAD to follow each repository's default branch; the CLI still requires one language and an explicit revision.

Language enumeration and failure aggregation belong to the workflow. If one generator fails, the remaining languages are still attempted, successful changes are committed, and the run ultimately fails. The job summary retains each source's revision and change report. The workflow is not a required check and is skipped on forks.

When an upstream commit has not changed and only probabilistic snapshots differ, update mode leaves the files untouched to avoid binary churn. Documentation describes using the latest corpus on main, with a pinned TCK commit available for reproducibility.

Validation:

  • mise run check passes.
  • The workflow's update script was exercised with all sources succeeding, each source failing individually, and all sources failing. Every case attempts all three languages and records the expected final status.
  • The CLI help and documentation use the original single-language update interface. Tests specific to the removed CLI extensions were removed.
  • This follow-up does not change pinned revisions or snapshot contents.

leerho and others added 4 commits October 1, 2026 17:05
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move the Java snapshot pin from 3a1bf7f to 059b5a9, the merge of
apache/datasketches-java#774, and regenerate the Java snapshots.

Deterministic changes:
- HLL_6 and HLL_8 compact images set the compact flag (java#761).
- Empty tuple and AoS compact images write a zero seed hash.
- Adds frequent_long_purged and frequent_string_purged (java#770).

All other modifications are probabilistic snapshots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move the C++ snapshot pin from fe0261a to 16d4ea6 and regenerate the
C++ snapshots.

Deterministic changes:
- Single-item compact theta images set the single-item flag (cpp#526).
- Adds frequent_long_purged and frequent_string_purged (cpp#529).
- Removes the 27 aos_*_cpp.sk snapshots: the C++ array-of-strings tuple
  sketch was reverted (cpp#537) because its key hashing is incompatible
  with Java (cpp#533).

All other modifications are probabilistic snapshots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`snapshots update` now takes `all` and an optional revision. Without a
revision, a source is updated to its default branch, so
`snapshots update all` refreshes every source in one command. Pinning a
specific branch, tag, or commit for one source remains available for
reproducing a release or holding a source back.

When several sources are processed, a failure in one no longer stops
the others; the command reports every failed source and exits non-zero.
An update whose commit is unchanged and whose output differs only in
probabilistic snapshots no longer rewrites them, so repeated updates do
not add binary churn.

A new, non-required workflow runs `snapshots update all` every Monday
and on demand, commits the result to main, and fails visibly when a
source cannot be generated. The docs now describe main as the latest
self-tested snapshots from every source and recommend that consumers
test against it by default.

Closes #12

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leerho
leerho requested review from proost and tisonkun October 4, 2026 23:16
Base automatically changed from snapshot-refresh to main October 4, 2026 23:25
Reconcile the snapshot directory migration from #14 with the latest-snapshot update workflow. Preserve the snapshot corpus from main, retain the update behavior, and use serialization_test_data in the workflow and documentation.

Validated with mise run check and exact snapshot comparisons against main.

@tisonkun tisonkun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm reading this.

I remember that I implement sync to avoid update ... intentionally.

Use the existing update <language> <revision> command with HEAD for each
source. Keep language enumeration and failure aggregation in the workflow,
so one failed generator does not prevent the other sources from updating.

Remove update all, the optional revision, their CLI-only validation tests,
and the default-branch constant. Update the help snapshot and documentation
to match the original single-source interface.

@tisonkun tisonkun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert update all to reuse the existing functions.

I'll push a new PR to see if we can refactor the cmd further.

@tisonkun
tisonkun merged commit e748b0a into main Oct 5, 2026
1 check passed
@tisonkun
tisonkun deleted the issue-12-latest-snapshots branch October 5, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make "latest snapshots from every language" the normal way to run cross-language tests

2 participants