This document was written to provide a checklist for using the MCSH scripts to produce releases of packages developed using the MCSH Development Environment (IDE).
This section outlines all project policies that must be followed by a MCSH Package Release Manager.
Important
Some of these policies will only begin to apply after the first major release of the package (v1.0.0).
The MCSH IDE reads the package configuration files to find the current package version setting. For simplity, the MCSH IDE requires that its packages use the following version format:
<major>.<minor>.<micro>
Each release offers a point of a divergence for future releases. Several kinds of branches are used track different development activity:
The following policies apply to all branches in the package repository:
The following policies apply to the master branch of the project repository:
The following policies apply to all stable branches in the project repository:
The following policies apply to all LTS branches in the MCSH project repository:
There are three different types of pcackage releases:
All major releases must follow these policies:
All minor releases must follow these policies:
All minor releases must follow these policies:
Bug releases must be produced:
Some customers require exceptional stability for production tools.
Most users will be happier following the series of minor release produced from one of MCSH's stable branches, as those are the primary release mechanism for delivering long-term stability and performance fixes and enhancements.
The MCSH Development Environment (MCSH IDE) provides tools that automate the entire release process. The following command performs everything required to produce, publish, and announce a package release:
p7 release wizard (major|minor|micro)
The Package Release Wizard reference documentation provides a description of the process. Every step of the process may be performed using other p7 commands
The following steps must be taken prior to producing a package release.
The release process must be run in a dedicated clone of the repository dedicated to that purpose:
git clone https://github.com/mandolincreek/mcsh.git
!DANGER!
The MCSH release scripts will discard all artifacts in the working copy and make changes to local branches.
If something goes wrong during the release process, the entire repository may be abandoned, if and only if` the release process has not published the release tag or any deliverables.
If part of the release has been published, then:
The Release Wizard remains fragile, due to the number of steps involved. Consequently, a failure requires either backing out changes from the failed commit, finishing the last few steps of the process by hand, or abandoning the release repository entirely.
Note
For now, you must Go To The Source to discover the commands required to manullay intervene in the release process. If something went wrong, then a patch must be developed to fix the problem, so that visit cannot be avoided anyway.