= Release Guidelines = '''All next steps described at this page should be mirrored in release tickets step-by-step''' Search previously created ticket with task about next version release (create if ticket not found) and follow by steps while preparing for the release: * for stable: search tickets by 'stable-candidate' keyword and apply commits to stable branch from all found tickets; * download translations from Transifex.net by command [http://help.transifex.net/features/client/index.html tx]{{{ pull --all}}} (see before: [wiki:TxRepoSetup how to set up local tx-repository]) * store translations in gir-repo by commands: {{{ cp -f $TX_REPO//*.po $GIT_REPO/po cd $GIT_REPO/po ./strip-location.sh *.po git add *.po git commit -s -m 'Updated translations from Transifex' git push origin }}} * Create new NEWS wiki-page for next version with empty template. Template may be copied from current NEWS wiki-page (without lists of tasks and bugreports); * Add content of current NEWS wiki-page to the doc/NEWS file in GIT-repo; * create new tag in git by command (see before: [wiki:GpgSetUpForSigningReleases how to set up your gpg-key for signing releases]) {{{ git tag -s git push origin }}} * new version in Trac; * new milestone in Trac (no needed for stable branch); * create tar.(bz2|xz) package files: {{{ mkdir dist; cd dist; ../configure && make dist-bzip2 && make dist-xz }}} * make checksums for archives: {{{ sha256sum mc-*tar.* >sha256.sum }}} * upload source packages and checksums to the special upload area; * developers should download tarballs, verify checksums, compile and locally install. If everything is ok than developers keep votes in ticket; * upload source packages and checksums to http://www.midnight-commander.org/downloads; * update Wiki start page with latest release number; * write an announcement: list user visible changes (bugs and features); * close current milestone (no needed for stable branch); * create new ticket (type=task, component=adm) for the next release; * close ticket for release. === Notes: === * Cleanup branch should be named as XXXX_cleanup; where XXXX it's a number of current release ticket. * The cleanup branch should be created by demand and should be voted and merged to main branch ASAP. Don't keep the cleanup branch in development stage longer that this needed. * Activity around cleanup branch should occur in release ticket. * Cleanup branch should be deleted after merging to main branch. Cleanup branch may be recreated with same name in any count of times. * Cleanup branch shouldn't be merged to main branch in a week before release