- Decide the official version target, likely
0.1.0unless the release should signal1.0.0. - Freeze public API expectations for
DatasetAnalyzer. - Freeze public API expectations for
HashPrepConfig. - Freeze public API expectations for
load_config. - Freeze public API expectations for
generate_report. - Freeze CLI behavior for
scan,details,report, andversion. - Define what is stable versus experimental, especially auto-fixes, generated pipelines, report themes, and statistical checks.
- Run the full test suite across Python
3.10,3.11, and3.12. - Run lint checks.
- Run format checks.
- Add or verify tests for CLI error handling.
- Add or verify tests for invalid check names.
- Add or verify tests for report generation in
md,json,html, andpdf. - Add or verify tests for generated
fixes.pycode. - Add or verify tests for generated sklearn pipeline code.
- Add or verify tests for config loading from YAML, TOML, and JSON.
- Add or verify tests for large dataset sampling behavior.
- Verify empty CSV behavior.
- Verify duplicate column behavior.
- Verify missing target column behavior.
- Verify non-numeric target behavior for mutual information and statistical checks.
- Verify datasets with infinities, all-null columns, and mixed types.
- Verify reports do not crash when plots are disabled.
- Verify reports do not crash when optional summary data is missing.
- Improve CLI error handling for invalid files.
- Improve CLI error handling for empty CSVs.
- Improve CLI error handling for bad target columns.
- Improve CLI error handling for bad config files.
- Improve CLI error handling for unsupported report formats.
- Improve CLI error handling for failed PDF generation.
- Ensure CLI failures produce clear user-facing messages.
- Ensure HTML reports work when no issues are found.
- Ensure PDF reports work when no issues are found.
- Ensure Markdown reports work when no issues are found.
- Ensure JSON reports work when no issues are found.
- Ensure all report formats work when plots are disabled.
- Ensure all report formats work for tiny datasets.
- Ensure all report formats work for mostly missing datasets.
- Ensure all report formats work when optional summaries are absent.
- Verify generated fix scripts are deterministic.
- Verify generated fix scripts are valid Python.
- Verify generated sklearn pipeline code is deterministic.
- Verify generated sklearn pipeline code is valid Python.
- Add tests that execute generated fix scripts where practical.
- Add tests that execute generated sklearn pipeline code where practical.
- Clearly label generated fixes as suggestions if they are heuristic or incomplete.
- Add config validation for unknown keys.
- Add config validation for wrong value types.
- Add clear errors for malformed YAML, TOML, and JSON config files.
- Confirm threshold behavior is predictable and documented.
- Decide whether summary dictionary shapes are part of the stable public API.
- Document stable summary keys if summary dictionaries are part of the public API.
- Add an
--outputoption tohashprep report. - Allow
hashprep report data.csv --format html --output reports/data.html. - Add machine-readable JSON output for
hashprep details. - Add check discovery through a command such as
hashprep checks. - Alternatively add check discovery through an option such as
hashprep scan --list-checks. - Document why issues are classified as
criticalversuswarning. - Review whether PDF/reporting dependencies should move to optional extras in a future release.
- Document any dependency-extra plan if it is deferred.
- Avoid adding major new check families before the first stable release unless they fix a release blocker.
- Avoid adding model integrations before the first stable release.
- Avoid adding dashboard features before the first stable release.
- Avoid expanding automatic dataset repair workflows before the first stable release.
- Keep the first stable release focused on hardening existing behavior.
- Update
hashprep/__init__.pyfrom0.1.0b3to the official release version. - Update the beta note in
README.md. - Update the beta support table in
SECURITY.md. - Add or verify PyPI classifiers in
pyproject.toml. - Add or verify package keywords in
pyproject.toml. - Add or verify project URLs in
pyproject.toml. - Add or verify Python version classifiers in
pyproject.toml. - Add or verify license metadata in
pyproject.toml. - Build source distribution.
- Build wheel distribution.
- Inspect built package artifacts.
- Install the built wheel in a clean environment.
- Smoke test
import hashprepfrom the built wheel. - Smoke test
hashprep versionfrom the built wheel. - Smoke test
hashprep scan datasets/train.csvfrom the built wheel. - Smoke test
hashprep report datasets/train.csv --format htmlfrom the built wheel. - Confirm
MANIFEST.inexcludes dev/demo files intentionally. - Confirm
MANIFEST.inincludes all runtime files needed by reports and templates.
- Replace beta references in
README.md. - Replace beta references in
SECURITY.md. - Replace beta references in
web/src/lib/components/Hero.svelte. - Add
CHANGELOG.md. - Add first official release notes.
- Document available checks in release notes.
- Document CLI commands in release notes.
- Document report formats in release notes.
- Document known limitations in release notes.
- Document upgrade notes from beta.
- Verify README examples run exactly as written.
- Update the documentation URL in
pyproject.tomlif a dedicated docs page is available. - Refresh generated example reports under
examples/reports/if needed.
- Add package build validation to CI.
- Add
twine checkor equivalent artifact validation to CI. - Add built-wheel install smoke test to CI.
- Add CLI smoke test against the built wheel to CI.
- Add website build check for
web/. - Add or verify release workflow triggered by version tags.
- Configure PyPI publishing, preferably with trusted publishing.
- Configure GitHub release creation.
- Consider adding dependency and security scanning for Python dependencies.
- Consider adding dependency and security scanning for web dependencies.
- Review pinned and minimum Python dependency versions.
- Review pinned and minimum web dependency versions.
- Confirm heavy dependencies are intentional, especially
weasyprint,matplotlib,seaborn, andscikit-learn. - Decide whether PDF/report dependencies should remain core dependencies or move to optional extras in a future release.
- Run vulnerability checks for Python dependencies.
- Run vulnerability checks for web dependencies.
- Update
SECURITY.mdto describe stable release support.
- Update website beta badges.
- Update website install examples.
- Confirm the docs page matches the current README and API.
- Build the static site successfully.
- Verify PyPI link.
- Verify GitHub link.
- Verify docs link.
- Verify license link.
- Verify issue tracker link.
- Decide deployment target for the docs site.
- Decide release timing for the docs site.
- Create a release branch.
- Make version, docs, and changelog updates.
- Run full validation locally.
- Merge after CI passes.
- Tag the release, for example
v0.1.0. - Publish to PyPI.
- Create GitHub release with release notes.
- Verify public install with
pip install hashprep. - Verify public CLI with
hashprep version. - Announce the release as the first stable release after alpha and beta.
- Version is still
0.1.0b3. -
README.mdstill says beta. - Website hero still says beta and shows
hashprep-0.1.0b3. -
SECURITY.mdonly describes beta support. -
CHANGELOG.mdis not present. - CI does not currently build or check publish artifacts.
- CI does not currently build the Svelte website.
- No release or publish workflow is present.