You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Check Jenkins Status: should be green. (This should be checked often during the release process.)
In coredev, optionally check packages for updates: bin/manage report --interactive. I never do this anymore, but the option is there. This is not really needed now that we have mr.roboto to add packages to the checkouts.
Optionally use bin/versioncheck to see if any new PyPI releases are worth adding, or check the artifact of the versioncheck GitHub Action.
Check that the overrides in versions.cfg and mx.ini are in sync.
Release individual packages from checkouts.cfg.
Check that the version numbers of CMFPlone metadata.xml and latest upgrade step are in sync, and that they are higher than in the previous Plone release.
Handle special packages, often handled by special people. :-) You can can ping people in the release-team channel on Discord, in the current issue, or individually:
Release plone.app.upgrade, Plone and Products.CMFPlone yourself.
Update the versions of those packages in versions.cfg. This is done automatically if you are in a checkout of the package within buildout.coredev and run ../../bin/fullrelease. Or run bin/manage set-package-version package-name new-version.
Release notes, constraints, dist.plone.org
Adjust coredev branch release/6.2-dev. Most importantly, the auto-checkout list in checkouts.cfg should be empty, and the versions.cfg and requirements.txt should be the same. One way that works for me: git switch release/6.2-dev; git reset --hard 6.2; git reset origin/release/6.2-dev; git checkout .package_ignores checkouts.cfg last_commit.txt mxcheckouts.ini. Then check which remaining changes you want to commit.
Update the 6.2-dev directory on dist.plone.org, and gather files to put there:
Create a unified changelog based on the previous release: bin/manage changelog --start=6.2.0a1 > release/changelog.txt. Remove the uninteresting top lines. You may want to link to the Zope changelog with a specific tag.
Create a file release/RELEASE-NOTES.md. It may be enough to look through the changelog and copy interesting changes.
Get the versions*.cfg file and any other versions files from coredev.
NEW. Run make install. This uses mxdev to install packages and generate some files. Most importantly this generates constraints-mxdev.txt. This contains all constraints, and makes sure no constraints are in there twice (provided that mx.ini is correct). This is really the only constraints file that is needed and that is correct. So for now I will only ship this one and call it constraints.txt on dist.plone.org. This may need some more thought and updates in next releases.
Use tox -c release/tox.ini to copy these files to release/dist.
Copy (rsync) these files to the pending release directory: scp release/dist/* dist.plone.org:release/6.2-dev/
Final release, Docker
Create tag of the release/6.2-dev branch, e.g. 6.2.0a1, and push to GitHub.
Make final release directory on dist.plone.org, with versions, requirements, constraints, changelog, release notes.
Update the "-latest" links on dist.plone.org, e.g. ln -sfT 6.2.0a1 6.2-latest
Create a pull request for the plone-backend Docker image with the new version number. Get this reviewed, merged, tagged, released.
Announcements
You probably want to wait until the Docker images are there, but don't wait long.
In the text you need the html of release notes. What I do: create a new post on community.plone.org, copy the release notes (MarkDown) in there, copy the html output, and save as a draft. Then paste the html in the Release notes field. Copy changelog.txt in the other field.
Send mail to Marketing Team so they can prepare announcements.
Ask Philip Bauer and/or Fred van Dijk to update the demo sites. Here is a sample PR. Mostly just a search and replace, except when you want to update Volto as well.
Release packages, update versions
bin/manage report --interactive. I never do this anymore, but the option is there. This is not really needed now that we havemr.robototo add packages to the checkouts.bin/versioncheckto see if any new PyPI releases are worth adding, or check the artifact of the versioncheck GitHub Action.versions.cfgandmx.iniare in sync.checkouts.cfg.CMFPlone metadata.xmland latestupgrade stepare in sync, and that they are higher than in the previous Plone release.plonetheme.barcelonetaandplone.staticresourcesneed a release on PyPI and npmjs. Maybeplone.classicui. Ask Peter Mathis (petschki), Johannes (thet) or Maik (MrTango).plone.restapiand maybeplone.volto. Ask David (davisagli) or Timo (tisto).plone.app.locales. Ask Mikel (erral).plone.app.upgrade,PloneandProducts.CMFPloneyourself.versions.cfg. This is done automatically if you are in a checkout of the package withinbuildout.coredevand run../../bin/fullrelease. Or runbin/manage set-package-version package-name new-version.Release notes, constraints, dist.plone.org
release/6.2-dev. Most importantly, theauto-checkoutlist incheckouts.cfgshould be empty, and theversions.cfgandrequirements.txtshould be the same. One way that works for me:git switch release/6.2-dev; git reset --hard 6.2; git reset origin/release/6.2-dev; git checkout .package_ignores checkouts.cfg last_commit.txt mxcheckouts.ini. Then check which remaining changes you want to commit.6.2-devdirectory on dist.plone.org, and gather files to put there:bin/manage changelog --start=6.2.0a1 > release/changelog.txt. Remove the uninteresting top lines. You may want to link to the Zope changelog with a specific tag.release/RELEASE-NOTES.md. It may be enough to look through the changelog and copy interesting changes.versions*.cfgfile and any other versions files from coredev.make install. This usesmxdevto install packages and generate some files. Most importantly this generatesconstraints-mxdev.txt. This contains all constraints, and makes sure no constraints are in there twice (provided thatmx.iniis correct). This is really the only constraints file that is needed and that is correct. So for now I will only ship this one and call itconstraints.txton dist.plone.org. This may need some more thought and updates in next releases.tox -c release/tox.inito copy these files torelease/dist.rsync) these files to the pending release directory:scp release/dist/* dist.plone.org:release/6.2-dev/Final release, Docker
release/6.2-devbranch, e.g. 6.2.0a1, and push to GitHub.ln -sfT 6.2.0a1 6.2-latestplone-backendDocker image with the new version number. Get this reviewed, merged, tagged, released.Announcements
You probably want to wait until the Docker images are there, but don't wait long.
changelog.txtin the other field.plonereleasetonew version number.SUPPORTED_PYTHON_VERSIONS_PLONE62as needed. Ask Steve Piercy or do it yourself.