This is an old revision of the document! Table of ContentsRelease ProcessPlan the Release
Feature FreezeOn the day of the feature freeze…
String FreezeOn the day of the string freeze, update the .ts files for the translators. We are now standardized on Qt5, so make sure that is the current version of Qt. $ QT_SELECT=qt5 scripts/make-ts Commit this: $ git commit -am "Update .ts files for 21.06 (scripts/make-ts)" $ git push Announce the string freeze/start of the translation period. Release EveOn the eve of the release, send out a reminder for any last minute contributions and translations. Pending ChangesCheck email for any pending changes or requests that need to be included in this release. Make those changes as appropriate. File Format VersionDetermine whether any changes have been made to the .rg file format. If so, decide the extent of those changes and what level of file format version update is required. Update the file format version as appropriate. See comments on FILE_FORMAT_VERSION_POINT in RosegardenDocument.cpp. Changing the point version has no effect on anything as it is ignored. Changing the minor version will cause an “incompatibilities” warning on load, but the file will be loaded. Use this when data might be lost when opening a file with an older version of rg (e.g. new fields have been added). Changing the major version will cause older versions of rg to refuse to load the file. Obviously, we should avoid this at all costs. The chances are good that we will never have to do this. TestingOn the release date…
Update CHANGELOGMake a note of the svn revision of the last release. E.g. for release 14.02, the revision according to the tags was 13662. (Note that this might not match up since the tags can be made long after the release. However, with the current build script this should only be “off by one” from the actual revision.) In a working copy, do an svn log to see the log entries from the previous release to the latest. $ svn log -v -r 13662:HEAD | less An alternative would be to browse the commits on sourceforge. I find it cumbersome, however.
Update appdataAdd release notes for the new release to the appdata file: data/appdata/rosegarden.appdata.xml Validate with appstreamcli: appstreamcli validate data/appdata/rosegarden.appdata.xml Update the READMEUpdate copyright year as needed. Update anything else that seems like it needs updating. Update AboutDialog.cppUpdate copyright year as needed. Update data.qrcRun “scripts/rebuild-qrc-nosvn” to make sure the data.qrc file is up-to-date. Check Code Name and VersionCheck/adjust the code name/version number in CMakeLists.txt. The code name/version number should have been bumped after the last delivery, so this should be OK. Commit ChangesIf needed: svn commit -m "Updates for version xx.xx" Create tarballDownload a snapshot from the git repo page on SourceForge. cd to where the snapshot was saved and run the make-release-tarball script with the name of the snapshot: <path-to-source>/scripts/make-release-tarball <snapshot-name>.zip Tag the ReleaseFrom the sourcebase… git tag -m "Release" xx.xx git push --tags Test tarballSanity test the tarball. Build and run from it. Deliver
Update WebsiteUpdate the website to point to the new version. The website can be updated by committing changes to the website directory in svn. These are automatically uploaded to the web server. The webpages use Server Side Includes (SSI), so you'll need to set up a web server to test before uploading changes.
Test, commit, wait for the auto upload (takes a while), and test. See https://sourceforge.net/p/rosegarden/code/14701/ for an example. Update CMakeLists.txtBump the version number and codename. Commit. Announce
Point Release ProcessDiscussion uses 17.12.1 as an example. In svn a tag will move if you commit to it, so we will need to create a stable-17.12 branch from 17.12 so that we can make changes. Then we can do the usual tagging process on that branch to tag it for release. svn copy https://svn.code.sf.net/p/rosegarden/code/tags/rosegarden-17.12 \ https://svn.code.sf.net/p/rosegarden/code/branches/stable-17.12 \ -m "Create stable-17.12 branch." Checkout stable-17.12 someplace. Replace “tedfelix” with your sf userid. svn checkout --username=tedfelix \ svn+ssh://tedfelix@svn.code.sf.net/p/rosegarden/code/branches/stable-17.12 \ stable-17.12 Cherrypick the various commits you need into the stable branch. Use svn merge to cherrypick. Cherrypicking a single commit: svn merge -c 15189 ^/trunk/rosegarden You'll need to commit that. Since svn doesn't bring in any information from the original commits, you'll want to include a list of revisions in the commit message. Format them with square brackets to get hyperlinks in sf: [r15189]. Finally, go back through the release process with the following changes:
See also |