Independent user testing¶
Automated CI is not independent usability evidence. This protocol is ready for external testers; no completed external trials are claimed by preparing it. Aim for at least one tester on each supported operating system, using a clean Python 3.11 or 3.12 environment and no previous SXS checkout.
Test the published software¶
- Read the license and download the wheel and
SHA256SUMS.txtfrom the release page. - Verify the checksum and follow the wheel installation instructions.
- Run
sxs --helpandsxs demo --output demo. Confirm a zero exit code,best_period_recovered: trueindemo/expected.json, andcompletedindemo/operation.json. - Open
demo/report.htmloffline. Check that plots and text are legible and clearly describe synthetic, unconfirmed data. - Run
sxs analyze --input demo/input.csv --time-system relative --output analysis. Confirm completion and open its HTML report. - Run
sxs baseline --workspace research-a --dry-run. Confirm bundledresearch-a/configs/base.yamlexists; no archive download should occur. - Run
sxs unknown-command. Expect code 2 and a concise stderr error. - Repeat
sxs demo --output demo. Expect a nonzero refusal to overwrite.
On PowerShell inspect $LASTEXITCODE immediately after the command; on a POSIX
shell use echo $?. Installing dependencies requires internet access, but the
demo and CSV example do not. Do not submit private photometry or credentials.
Report evidence¶
Use the Independent user test issue template in GitHub Issues. Record release/commit, OS/architecture, Python version, installation method, each passed/failed step, exact error output, and time to the first useful report. Attach a redacted screenshot if helpful. Report failures as well as successes; do not count maintainer runs or CI jobs as independent user trials.
For Python-installation failures, attach a reviewed diagnostic archive when practical:
Inspect diagnostics.json before attachment. The archive intentionally omits
observations, configuration contents, logs, credentials, and absolute workspace
paths; include a separately redacted error excerpt when the failure itself is
not represented by recorded status metadata.
Public container acceptance¶
The GHCR package was made public with owner approval on 2026-08-31. Test from a client without saved registry credentials and record the image digest and exact tag. A successful authenticated CI push alone does not establish public access. See the container guide.
Maintainers can run python scripts/check_public_distribution.py --tag v1.3.0
from a checkout. It verifies all published release checksums through anonymous
downloads and separately checks anonymous GHCR manifest access. A successful
manifest request is not a full image pull or runtime test; any failed component
produces a nonzero exit status. The checker never changes package permissions.
The Public distribution GitHub Actions workflow performs the stronger
container check on a clean hosted runner. It uses a fresh Docker configuration,
pulls the public release tag without registry login, then runs the CLI help,
baseline dry-run, and dependency consistency checks. A green run proves public
pull and runtime behavior for that tag; it is still maintainer automation, not
an independent human usability trial.