Skip to content

Release v0.7.2 - #579

Merged
Breakthrough merged 3 commits into
mainfrom
releases/0.7.2
Oct 12, 2026
Merged

Breakthrough merged 3 commits into
mainfrom
releases/0.7.2

Conversation

@Breakthrough

@Breakthrough Breakthrough commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

1. Version Identifiers, Branch Prep

  • Create release branch releases/0.7.2 off main; fast-forward it to main as release work lands.
  • Bump __version__ in scenedetect/__init__.py (0.7.2)
  • Bump docs/LATEST_VERSION (0.7.2, matches the branch suffix so generate-docs.yml updates docs/latest)
  • Regular release: no -dev suffix

2. Documentation, Website, Changelog

  • Docstrings / API docs reflect any signature changes (sphinx-build -W completes clean).
  • docs/api/migration_guide.rst reviewed - 0.7.2 is additive-only (deprecation warnings for the framerate aliases were already documented), no update needed.
  • Changelog has release notes: 0.7.2 section with summary, CLI / API / Packaging subsections, restore-old-behavior commands for the detect-hist / detect-hash default changes (Calibrate detector defaults using benchmark sweep data #559).
  • website/pages/download.md updated (v0.7.2, October 11, 2026, installer links point at the v0.7.2 tag).
  • website/pages/changelog.md: 0.7.2 section moved from the Development section to the top (nested under ## PySceneDetect 0.7); fresh 0.7.3 stub left at the bottom.
  • website/pages/index.md and README.md: latest release version and date updated.
  • website/pages/benchmarks.md: v0.7.2 default column added; note that the default-settings results predate the change (regeneration deferred, Calibrate detector defaults using benchmark sweep data #559).
  • docs/cli.rst: generator output matches the committed file. Known drift: line 423 carries a hand-written sentence from fe725f2 that docs/generate_cli_docs.py does not produce, and check-docs.yml does not run the generator before its diff check, so CI cannot catch this. Decide: move the sentence into the CLI help string, or drop it; add the generator run to the workflow.

3. Tests

  • Static analysis passing (ruff check + format clean, pyright 0 errors).
  • Unit tests green locally: 464 passed / 2 skipped on releases/0.7.2.
  • Release test suite green in CI: all 4 jobs (static, release-tests, install-matrix, long-stress) on the tag.
  • pip-audit clean or exceptions documented in the changelog (pillow 12.3.0 override from 0.7.1 still in place; moviepy 2.2.1 still caps pillow<12.0).
  • packaging/build_all.py produces all 4 artifacts at 0.7.2 (scenedetect and scenedetect-headless; scenedetect-core is discontinued, Create base package that does not depend on OpenCV variant #558).

4. Prepare Windows Distribution

  • packaging/windows/requirements.txt updated (PyAV 19.0.1, click 8.5.0, numpy 2.5.4, platformdirs 4.13.0, tqdm 4.70.1) and bundled ffmpeg bumped to 9.0.2 in appveyor.yml. First Windows bundle on PyAV 19 and FFmpeg 9.
  • scripts/update_installer.py run: .aip at ProductVersion 0.7.2, fresh ProductCode, MSI filename PySceneDetect-0.7.2-win64.msi; parity with __version__ verified.
  • Run AppVeyor build on release branch, ensure resulting portable distribution and MSI installer are correct (smoke-test a PyAV-backend run in the frozen exe).

5. Tag & Draft Release

  • Final commit on releases/0.7.2: "[releases] Release 0.7.2" (e152f24).
  • Tag v0.7.2 on that commit and push. Wait for all tests/builds to pass.
  • Approve code signing request on SignPath, download scenedetect-signed.zip
  • Finalize Windows artifacts locally: drop scenedetect-signed.zip into dist/signed/, run python scripts/finalize_windows_dist.py (rebuilds portable .zip from the signed .msi, writes manifest + SHA256SUMS, runs scripts/validate_release.py).
  • Draft release on Github using the tagged commit: full changelog and release notes, signed portable .ZIP, signed .MSI installer, Python .whl/.tar.gz packages, and checksum manifests (PySceneDetect-0.7.2-win64.manifest.json + SHA256SUMS)
  • Verify all artifacts uploaded to Github release are valid and named correctly
  • Smoke-test all release artifacts

6. Publish & Release Checks

  • Dispatch release.yml (Release Orchestrator) with tag=v0.7.2 while the release is still a draft. It runs the verify-then-publish ladder (MSI install/upgrade test -> TestPyPI -> publish Github release -> PyPI -> Docker), verifying each stage before the next.
  • Verify the Docker image on GHCR: ghcr.io/breakthrough/pyscenedetect:latest and the version tag.
  • Verify both projects: https://pypi.org/project/scenedetect/ and https://pypi.org/project/scenedetect-headless/.
  • Deploy website: generate-website.yml
  • Deploy docs: generate-docs.yml
  • Merge this PR (release branch back into main), verify docs/LATEST_VERSION is correct
  • Manually dispatch generate-docs.yml against releases/0.7.2 to update www.scenedetect.com/docs/latest
  • Smoke-test PyPI release: in a fresh venv, pip install scenedetect==0.7.2; CLI launches and scenedetect version looks correct.
  • Verify download links on website are correct, PyPI project page is up to date and correct.
  • Post-release on main: start the next development version (__version__, changelog stub).
  • Clear / archive release-scoped tracking files.
  • Announce: project site, relevant issues / discussions closed and linked to the release.

@Breakthrough Breakthrough added this to the 0.7.2 milestone Oct 12, 2026
@Breakthrough Breakthrough self-assigned this Oct 12, 2026
@Breakthrough
Breakthrough merged commit 7cd1005 into main Oct 12, 2026
59 checks passed
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.

1 participant