RELEASING.md
This document describes the standard release process for PaddleOCR.
The current process supports the following two release types:
bump patch: for example, 3.4.0 -> 3.4.1bump minor: for example, 3.4.x -> 3.5.0For bump major:
mainrelease/X.YvX.Y.ZmainFirst confirm which release line this release belongs to and what the target version is.
Examples:
3.4.1 on release/3.43.5.0 on release/3.5If the release line does not exist yet, create the corresponding release/X.Y branch from main.
If it already exists, switch to that branch and continue release preparation there.
Requirements:
release/X.Y branchBased on the release scope, cherry-pick the required commits from main into release/X.Y until the release content is ready.
Requirements:
Complete pre-release checks on release/X.Y.
At minimum, this should include:
Once the release is ready, create the official tag on release/X.Y:
vX.Y.ZExamples:
v3.4.1v3.5.0Requirements:
Create a GitHub Release based on the official tag for this release.
If this release is the first release of a new minor line, or if it changes PaddleX dependency requirements, update the related release materials before or after the official tag is published.
At minimum, this should include:
paddlex dependency constraints in pyproject.toml match the target releaseCompletion criteria:
paddlex dependency constraints match the target releaseAfter the first official release of a new release/X.Y line is completed, sync the lineage of that release/X.Y branch back to main.
This is a fixed step in the current workflow and should be done at least once for each new minor release line.
Purpose:
main correctly reflects that the release line has produced an official versionRequirements:
release/X.Yrelease/X.Y, it is usually not necessary to repeat itAfter the release:
main continues with ongoing developmentrelease/X.Y continues to maintain that release lineIf more patch releases are needed later on the same line:
release/X.Ycherry-pick from main as neededApplicable scenarios:
How to handle it:
release/X.Yv3.4.2Applicable scenarios:
3.5.0How to handle it:
release/X.Y from mainv3.5.0paddlex dependency constraints if neededmain after the releaseCurrent conclusion:
Before a dedicated solution is defined, do not directly reuse the current minor/patch process for a major release.
Before each release, confirm the following:
vX.Y.Z formatrelease/X.Y, its lineage has been synced back to mainmain firstrelease/X.Yrelease/X.Yrelease/X.Y, sync its lineage once after the first official releaseIf the current process changes, this document should be updated accordingly.