This document describes step by step the release procedure of GNU Midnight Commander. ${dotted_version} shall be replaced by something like 4.6 ${underscore_version} shall be replaced by something like 4_6 === day 0 (translator's prerelease) === * Check out a fresh copy from the CVS repository. * Update the translation files NOT to contain line number information. Commit them. * Tag the CVS tree as "MC_${underscore_version}_translators". * Update the translation files to contain line number information. DON'T commit them. * Run "make dist". * Upload the distribution tarballs and the individual translation files somewhere where the translators can download it. * Announce the availibility of the translator's prerelease on mc-devel. Inform the translators of the prerelease. Inform the developers of a fourteen-day "feature-freeze". === day 11 (reminder) === * announce a reminder on mc-devel that the release will occur in three days. === day 14 (official release) === * Review the English version of the manual and fix it if necessary. Update the date in the .TH macro of the English manual. * Update the NEWS file to contain all user-visible changes. * Fix wrong formatting in the ChangeLog files. * Set the version number in configure.ac to "${dotted_version}". Commit it. * Update the translation files NOT to contain line number information. Commit them. * Run the test suites maint/mctest and maint/mc-test and make sure all warnings are ok. * Tag the CVS tree as "MC_${underscore_version}_release". * Create a CVS branch "MC_${underscore_version}". * Run "make dist". * Upload the resulting tarballs to the Savannah repository. * Announce the new release on the mc-devel and mc mailing lists. * Update the homepage. === post-release actions === * Create binary packages from the uploaded tarballs as necessary. === back to work === * Discuss milestones for the next release on the mc-devel list.