Skip to content

Release v0.7.1#560

Merged
Breakthrough merged 2 commits into
mainfrom
releases/0.7.1
Jul 22, 2026
Merged

Release v0.7.1#560
Breakthrough merged 2 commits into
mainfrom
releases/0.7.1

Conversation

@Breakthrough

@Breakthrough Breakthrough commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Release checklist for v0.7.1 (from RELEASE-PLAN.md). Boxes reflect current progress; this PR merges releases/0.7.1 back into main as the final step after the release is verified and published.

1. Version Identifiers, Branch Prep

  • Create release branch releases/0.7.1 off main; fast-forward it to main as release work lands.
  • Bump __version__ in scenedetect/__init__.py (0.7.1)
  • Bump docs/LATEST_VERSION (0.7.1, 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 completes clean).
  • docs/api/migration_guide.rst reviewed - 0.7.1 is additive-only (no breaking changes), no update needed.
  • Docstring examples all run correctly, nothing references removed or deprecated symbols. (Usage examples in scene_manager.py / detect() executed against a real video; fixed a stale placeholder doctest in histogram_detector.py.)
  • Changelog has release notes: 0.7.1 section with summary, all features/bugfixes documented.
  • website/pages/download.md updated (v0.7.1, July 2026, installer links point at the v0.7.1 tag).
  • website/pages/changelog.md: 0.7.1 section moved from the Development section to the top (nested under ## PySceneDetect 0.7); fresh 0.7.2 stub left at the bottom.
  • website/pages/index.md: latest release version and date updated.
  • docs/cli.rst regenerated (had pre-existing drift: --frame-rate rename, save-edl --start-timecode).

3. Tests

  • Static analysis passing (ruff check + format clean, pyright 0 errors).
  • Unit tests green locally: 358 passed / 2 skipped in the dev venv, and again in a fresh venv with the exact Windows build pins (OpenCV 5.0.0.93, PyAV 18.0.0, numpy 2.5.1).
  • Release test suite green in CI: all 4 jobs (static, release-tests, install-matrix, long-stress) on the tag. (Local pre-check: 79 passed / 3 skipped; one test needs ffprobe, which is unavailable locally - covered by CI.)
  • pip-audit clean or exceptions documented in the changelog. pillow 11.3.0 (transitive via moviepy's pillow<12.0 cap, moviepy#2553) had 5 CVEs fixed only in 12.3.0: overridden to 12.3.0 in the Windows build (appveyor.yml) and Docker image (Dockerfile), noted in the changelog; full test suite passes against 12.3.0. Remaining pip audit findings are build-tooling only (not shipped). PyPI installs still resolve pillow per moviepy's cap - fixable only upstream.
  • packaging/build_all.py produces all 6 artifacts at 0.7.1.

4. Prepare Windows Distribution

  • packaging/windows/requirements.txt updated (OpenCV 5, PyAV 18, numpy 2.5.1, click 8.4.2, platformdirs 4.11.0, tqdm 4.69.0) and bundled ffmpeg bumped to 8.1.2 in appveyor.yml.
  • scripts/update_installer.py run: .aip at ProductVersion 0.7.1, fresh ProductCode, MSI filename PySceneDetect-0.7.1-win64.msi; parity with __version__ verified.
  • Run AppVeyor build on release branch, ensure resulting portable distribution and MSI installer are correct.

5. Tag & Draft Release

  • Final commit on releases/0.7.1: "Release v0.7.1".
  • Tag v0.7.1 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.1-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.1 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 all three projects: https://pypi.org/project/scenedetect/, https://pypi.org/project/scenedetect-headless/, and https://pypi.org/project/scenedetect-core/.
  • 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.1 to update www.scenedetect.com/docs/latest
  • Smoke-test PyPI release: in a fresh venv, pip install scenedetect==0.7.1; CLI launches and scenedetect version looks correct.
  • Verify download links on website are correct, PyPI project page is up to date and correct.
  • Clear / archive release-scoped tracking files. (None this cycle; session scratch files were never committed.)
  • Announce: project site, relevant issues / discussions closed and linked to the release.

@Breakthrough Breakthrough added this to the 0.7.1 milestone Jul 22, 2026
@Breakthrough Breakthrough self-assigned this Jul 22, 2026
@Breakthrough
Breakthrough marked this pull request as ready for review July 22, 2026 03:02
@Breakthrough
Breakthrough merged commit 8b71e68 into main Jul 22, 2026
84 of 85 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant