Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .coverage
Binary file not shown.
24 changes: 24 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: 2

updates:
# The package pins no runtime dependencies beyond numpy/scipy, but the test
# and CI toolchain moves. Weekly PRs keep the reproduction honest against
# current versions rather than the ones that happened to be installed on the
# day of release.
- package-ecosystem: pip
directory: /
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 3
commit-message:
prefix: deps

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 3
commit-message:
prefix: ci
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ on:
push:
branches: [master]
pull_request:
# A package whose claim is reproducibility should keep proving it. The
# weekly run re-asserts the paper's numbers against whatever numpy, scipy
# and Python resolve to that week, so drift surfaces here rather than in a
# reader's environment.
schedule:
- cron: "0 6 * * 1"
workflow_dispatch:

permissions:
contents: read
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Draft PDF

# Compiles paper.md with the Open Journals (inara) toolchain and uploads the
# rendered paper.pdf as a build artifact. This is the JOSS-documented preview
# workflow: it proves the paper compiles before submission. It does not contact
# JOSS and does not submit anything.

on:
push:
paths:
- 'paper.md'
- 'paper.bib'
- '.github/workflows/draft-pdf.yml'
workflow_dispatch:

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
paper-path: paper.md

- name: Upload rendered paper
uses: actions/upload-artifact@v4
with:
name: paper
path: paper.pdf
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,58 @@
# Changelog

## Unreleased

Screen your own panel. **No change to package behavior:**
`tests/test_reproduces_paper.py` is untouched and the demo reproduces the same
numbers as 0.1.1.

- `screen_dataframe(table, value=..., trailing_k=...)` screens a long table
directly and returns a `pit-screen-results` record. The table may be a
pandas or polars DataFrame, a pyarrow Table, or a dict of arrays — columns
are read by duck typing, so no dataframe library is imported and none is
required. Datetime arrival columns are accepted.
- `stores_from_frame` exposes the per-period stores the screen builds, for
callers who want to inspect or gate them individually.
- CLI: `--csv PATH --value COLUMN` screens a user panel instead of running the
demo, with `--period/--arrival/--size/--trailing-k/--threshold` and the
existing `--export` and `--badge`. CSV reading uses the standard library.
- The verdict convention is documented, including its noise floor: a signal is
susceptible if any screened period crossed the threshold, which on small
panels can fire on sampling noise.

## 0.1.2 — unreleased (earlier work)

Screen-result export. **No change to package behavior:**
`tests/test_reproduces_paper.py` is untouched and the demo reproduces the same
numbers as 0.1.1.

- `--export PATH` writes a `pit-screen-results` v1.0 record — per-signal summary
statistics and the screen settings that produced the verdicts. Fully offline
(local file, no network call) and free of clocks, so the same screen exports
byte-identical bytes.
- `docs/results-schema.md`: the schema as a standalone versioned interchange
spec, free for other tools to adopt.
- New module `pit_release_gate.results`: `summarize_signal`, `screen_config`,
`build_results`, `validate_results`, `write_results`. Totals are derived, so
they cannot disagree with the per-signal rows.
- Still no telemetry of any kind, now enforced structurally rather than by
policy: no module in the package imports a transport, and a test asserts that
over every module — no background thread, no `atexit` hook, nothing to opt
out of.

## 0.1.1 — 2026-08-16

Documentation and submission materials only. **No change to package behavior:**
the test suite, including `tests/test_reproduces_paper.py`, is untouched and the
demo reproduces the same numbers as 0.1.0.

- `paper.md` and `paper.bib`: software paper prepared for submission to the
Journal of Open Source Software.
- README: added *Statement of need*, *API overview*, and *Community guidelines*
sections.
- CI: `draft-pdf.yml` builds a preview PDF of `paper.md` with the Open Journals
toolchain and uploads it as a build artifact.

## 0.1.0 — 2026-08-15

First public release.
Expand Down
Loading
Loading