Skip to content

How To Make A Stable Release

schwern edited this page Mar 20, 2013 · 4 revisions

Alpha releases can happen at any time by anyone, just follow the release process. Because MakeMaker is such a critical module, we're very careful about stable releases and there are special conditions.

Who can make a stable release?

Anybody who wants to give it a try can. You should have successfully released an alpha before, follow the procedure for that.

Create a milestone for the next stable release.

If it doesn't already exist. Call it after the intended version number.

Place all open issues intended to be resolved in that milestone.

The milestone must be empty of open issues before a stable release can happen.

Issue an alpha release.

Before you can issue a stable release, you need a successful alpha release.

A stable release is a re-issue of an alpha release. There should be no content change, version numbers, change log and meta data excepted. A good rule of thumb is if you want to add an item to the change log, you should issue another alpha release.

Unless its an emergency, a stable release must always be preceded by an alpha release.

The alpha release must succeed.

This is a bit fuzzy, but can be defined by our CPAN Tester results.

  • Passing on Win32 (Strawberry and Activestate), Linux, BSD, Solaris and Cygwin environments.
  • Passing on each major version of Perl we support: 5.6, 5.8, 5.10, 5.12, 5.14, 5.16.
  • Passing on the makes we support: GNU make, BSD make, Solaris make, nmake 1.5, Visual C++ nmake and dmake.

This does not mean 100% success, but each failure must be investigated and determined to be either a bad test result or a bug we're willing to live with. That bug must be posted as an issue.

If the alpha release fails, fix things and make a new release.

Post an issue about your intent to go stable

This allows others to bring up important issues and bugs which may need to be resolved.

Wait a week

This allows others time to respond.

Release as normal

Follow the procedure for making a release.

Who can change this document and how

Formatting, typos, clarification and other minor changes can be done by anyone without discussion or approval. Its a wiki, edit it.

Changes, additions and deletions to the policy should first be discussed by writing it up as an issue.

We particularly welcome edits and missing steps from people actually attempting to make a release.