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 and the version number in the .TH macro of the English
  manual pages.
* 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.