[release] Release v0.7#547
Merged
Breakthrough merged 8 commits intomainfrom May 3, 2026
Merged
Conversation
Caught during release smoke testing.
| return ".".join(parts[:4]) | ||
|
|
||
|
|
||
| def find_7zip() -> Path: |
Use just the MSI as input to build the portable .ZIP.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PySceneDetect Release Checklist
Use one copy per release, copy into a pull request and check each box as steps are completed.
Optional: version referenced below as
X.Y[.Z]- replace with the real version throughout.1. Version Identifiers, Branch Prep
releases/X.Yoffmainif major/minor release. If patch release, fast-forward currentreleases/X.Ybranch.__version__inscenedetect/__init__.pydocs/LATEST_VERSIONif needed (stable major/minor releases only)-devsuffix or other, pre-release: has suffix-dev0,-dev1, ...2. Documentation, Website, Changelog
cd docs/ && make htmlbuilds clean).docs/api/migration_guide.rstupdated if any public API changed.website/pages/download.mdupdated with the new version / installer link / release date.website/pages/changelog.md: move the release changes from the Development section at the bottom to the top.website/pages/index.md: Latest release version and date updated.3. Tests
pytest -vv(should collect-m 'not release'by default).static,release-tests,install-matrix,long-stress) green across the OS and Python version matrix.pip-auditclean (or exceptions documented in the changelog).4. Prepare Windows Distribution
packaging/windows/requirements.txtand bump bundled ffmpeg version inappveyor.yml5. Tag & Draft Release
releases/X.Y: "Release vX.Y[.Z]".vX.Y[.Z]-releaseon that commit and push. Wait for all tests/builds to pass.scenedetect-signed.zipdist/signed/and copy in bothscenedetect-signed.zip(from SignPath) andPySceneDetect-X.Y.Z-win64.zip(from the AppVeyorPySceneDetect-win64artifact).python scripts/finalize_windows_dist.py. This swaps the signedscenedetect.exeinto the portable.zip, repacks it with 7-Zip, copies out the signed.msi, and writesPySceneDetect-X.Y.Z-win64.manifest.json+SHA256SUMS.PySceneDetect-X.Y.Z.manifest.json+SHA256SUMS)6. Publish & Release Checks
publish-pypi.ymlmust be manually triggered on a release tag. Specifytestpypifirst, and make sure everything goes okay on the test instance. When verified and smoke tested, specifypypias the environment, and publish the production package.releases/X.Yback intomain.generate-website.ymlpicks up the changelog / download page updates.generate-docs.ymlpublishes the new version.pip install scenedetect==X.Y.Z; CLI launches andscenedetect --versionlooks correct.tracking.md, any release-specific TODOs).Notes
releases/X.Y; the final one gets thevX.Y[.Z]-releasetag which gates the release-test workflow. A passing release-test is a hard prerequisite for publishing.__init__.py,PySceneDetect.aip). Thestaticjob ofrelease-test.ymlchecks__init__.pyagainst the tag and verifies the changelog has a matching## PySceneDetect X.Yheading; the installer parity is checked byscripts/pre_release.py --release.website/pages/changelog.mdunder the "Development" heading - don't move it to the top.