tisonkun opened a new pull request, #16: URL: https://github.com/apache/datasketches-tck/pull/16
Snapshot updates currently split writing between sync and update, and the scheduled workflow can publish successful languages even when another source fails. This change makes `snapshots update` the sole write command and publishes a complete batch of pins and snapshots together. - `snapshots update` updates all available languages to their remote HEADs. `update <language>` selects one source, and `update <language> <revision>` selects a branch, tag, or commit. - Optional `--skip-unstable-only` preserves a source only when its commit is unchanged and all differences are content modifications to existing unstable snapshots. New revisions, additions/deletions, and stable changes adopt the complete generated set. The option is off by default and explicitly enabled in CI. - All selected sources are generated and staged before publication. Installation failures roll back prior replacements across the batch; rollback failures retain recovery files. Cleanup failures after success warn without reverting config, fixing the old-config/new-snapshots failure path. - The workflow calls update once and commits only after success. The sync command, mode dispatch, and `Written` field are removed; check remains read-only, and reporting shares the same unstable-only predicate as publication. Validation: - `mise run check` (formatting, golangci-lint, and all Go tests). - Regression tests with local Git sources for default HEAD/all-language updates, pinned checks, unstable-only boundaries, mixed skipped/updated sources, generation failure, concurrent config edits, staging failure, rollback, and post-publication cleanup failure. - Built-CLI smoke tests against a local upstream exercising default HEAD, explicit revisions and rollback, opt-in skipping, default unstable refresh, read-only check, and invalid arguments. Verified the workflow pipeline preserves an update failure through tee. Existing snapshot contents and pins are unchanged. Filesystem publication provides ordinary error rollback, not crash atomicity or synchronization for concurrent local writers. CI publishes the completed batch as one Git commit; one failed source now prevents the entire batch from being committed. -- 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]
