Skip to content

feat: harden releases and close scientific audit gaps - #120

Open
Furox-Art wants to merge 33 commits into
mainfrom
fix/audit-hardening-2.1.0-v2
Open

Furox-Art wants to merge 33 commits into
mainfrom
fix/audit-hardening-2.1.0-v2

Conversation

@Furox-Art

Copy link
Copy Markdown
Owner

Scope

Closes the actionable findings from the repository audit and makes the same regression classes CI-visible.

Release / supply chain

  • bump synchronized package + citation metadata to 2.1.0
  • add monotonic version-discipline guard for package-affecting changes
  • pin every action in the privileged release workflow to an immutable commit SHA
  • add SHA-256 locked release build environment and build with --no-isolation
  • audit the committed build lock
  • audit resolved [scientific,io] dependencies in a dedicated blocking CI job

Scientific / scale

  • add memory-budgeted HDF5/NetCDF array chunk pipelines and reducers
  • add real h5py + netCDF4 integration smoke tests
  • add deterministic global variance-based sensitivity analysis
  • add finite-difference local identifiability/rank analysis
  • add Bonferroni, Holm, Benjamini-Hochberg, and Benjamini-Yekutieli corrections
  • add conservative assumption-gated back-door and randomized causal effect estimators
  • add empirical KS feature-drift and standardized OOD screening with validation-gate adapters

Regression guards

  • strict release-contract tests for immutable Action refs and hash-locked builds
  • CI aggregate now requires optional dependency audit + version discipline
  • keep existing 100% statement/branch coverage target, strict mypy, CodeQL, and installed-wheel smoke

Governance limitation

The code-side safeguards are included here. Repository-level main branch protection/ruleset itself is an administrative GitHub setting and is not writable by the connected GitHub App; it still needs to be enabled in repository settings with the aggregate CI check required.

Comment thread src/cds/data_io/scientific.py Fixed
Comment thread src/cds/data_io/scientific.py Fixed
Comment thread src/cds/data_io/scientific.py Fixed

Copy link
Copy Markdown
Owner Author

This PR still contains unique scientific/scale work not represented by the consolidated audit merge, so it is not being discarded. However, its branch is now stale/non-mergeable against the audited current main. Marking it as draft: the correct path is to port/rebase the unique features onto current main and re-run the full current CI/coverage/security gates before considering merge.

@Furox-Art
Furox-Art marked this pull request as draft September 6, 2026 00:11
Resolve conflicts by keeping main elementary-effect sensitivity while
porting variance-based screening and identifiability under distinct APIs.
Restore CI optional_audit/version_discipline gates on pinned actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Furox-Art
Furox-Art marked this pull request as ready for review September 11, 2026 13:26
Furox-Art and others added 5 commits September 11, 2026 16:29
…audit

Parse pyproject version with regex for mypy/runtime on Python 3.10, and
audit only third-party packages so unpublished local builds do not fail CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
CodeQL (security-and-quality) flagged the three `...` bodies in
SliceableArray as py/statement-no-effect, leaving three unresolved
review threads on this PR.

Use `raise NotImplementedError` like src/cds/modeling/_base.py does.
This keeps the 100% blended coverage gate green: `raise NotImplementedError`
is listed in `[tool.coverage.report] exclude_lines`, whereas `pass` is not
and would have introduced three uncovered statements.
…E audit

anyio 4.14.0 -> 4.15.1, jupyter-server 2.20.0 -> 2.21.1, soupsieve
2.8.4 -> 2.9.2. Keeps the Dependabot group PRs (#130, #131) and #120
audit gating on the same up-to-date lock.
@kilo-code-bot

kilo-code-bot Bot commented Sep 23, 2026

Copy link
Copy Markdown

Kilo Code Review could not run — your account is out of credits.

Add credits or switch to a free model to enable reviews on this change.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants