Skip to content

Harden release validation and cache provenance - #18

Merged
farach merged 12 commits into
mainfrom
farach-harden-release-gates
Jul 10, 2026
Merged

Harden release validation and cache provenance#18
farach merged 12 commits into
mainfrom
farach-harden-release-gates

Conversation

@farach

@farach farach commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • exercise every exported function through deterministic installed-package validation and add a public-API showcase contract for resurvey, content change, import adapters, measures, rollups, aggregation, and sensitivity movement
  • require blocked-network installed-package tests, two-round clean-install validation, and pull-request pkgdown checks while preserving main deployment
  • add atomic cache writes, actionable corrupt-cache failures, verified SHA-256 receipts, provenance metadata, cache locking, and source-receipt rollback
  • fail closed when receiptless or explicitly unverified legacy cache bytes are asked to satisfy URL, version, as_of, or digest constraints; compare credential-safe URL fingerprints and require force = TRUE replacement
  • correct sensitivity documentation and tests, synchronize development metadata, and add release-hardening regression coverage

Validation

  • devtools::document()
  • devtools::test(): 726 passed
  • blocked-network built/installed package tests: 719 passed, 6 CRAN-only skips
  • R CMD check --as-cran: 0 errors, 0 warnings, 1 expected note for the development/new-submission version
  • Rscript tools/validate-clean-install.R --rounds=2
  • external clean install and public API smoke validation
  • pkgdown::check_pkgdown() and full pkgdown::build_site(preview = FALSE)
  • workflow YAML parsing and URL checks
  • GitHub checks: Linux, macOS, Windows, blocked-network installed tests, two-round clean install, and pkgdown all passed

Release-only notes

  • CRAN still reports the expected new-submission/development-version note for 0.5.0.9000.
  • Optional spelling, goodpractice, air, and aspell checks were unavailable in the local toolchain. No release, tag, or submission is included here.

farach and others added 5 commits July 10, 2026 00:48
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Verify and copy cached source bytes under the same lock before adapter or archive parsing, and redact OAuth authorization codes in provenance URLs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allow verified snapshots to reuse recorded version and as_of metadata when callers do not constrain those fields, and cover Felten workbook and archive replacement paths.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Honor omitted cache provenance constraints
Parse the exact archive snapshot created during cache verification or commit, document shared-path mutability, and narrow credential redaction to explicit normalized OAuth and cloud parameter names.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Recognize OAuth verifier and consumer credential aliases across normalized URL provenance surfaces without hiding benign parameter names.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
farach and others added 5 commits July 10, 2026 10:31
Use supported SHA-256 hashing, ownership-safe cache coordination, local source snapshots, and hardened URL redaction. Add R 4.1 CI coverage and deterministic concurrency tests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the existing release check matrix unchanged and validate the built, installed package on R 4.1 without invoking the legacy Pandoc citeproc path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Release lock directories nonrecursively, redact network-path authorities, and retain recoverable transaction state across injected registration and teardown failures.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use safe URL path filenames or raw URL SHA-256 identities, redact opaque credential-bearing URL components, and preserve content-aware workbook and tabular parsing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Resolve supported-R hashing, cache lock ownership, local snapshot atomicity, URL redaction, transaction cleanup, and credential-safe cache naming.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@farach
farach marked this pull request as ready for review July 10, 2026 16:58
@farach
farach merged commit 353f7cb into main Jul 10, 2026
8 checks passed
@farach
farach deleted the farach-harden-release-gates branch July 12, 2026 21:59
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.

1 participant