This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
devdocs:finalize_release_process [2018/11/14 01:54] z5t1 |
devdocs:finalize_release_process [2018/11/17 23:58] z5t1 [If Releasing from a Bootstrap Server] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Release Process ====== | ====== Release Process ====== | ||
- | Updated March 28, 2018 | + | Updated November 17, 2018 |
- | The following is the process for finalizing a new release of Cucumber Linux | + | The following is the process for finalizing a new release of Cucumber Linux. |
+ | |||
+ | The first part of the release process differs depending on whether you are releasing from a build server of a bootstrap server. If you are completing a Cucumber Linux from Scratch build, then you are releasing from a bootstrap server. Otherwise, you are releasing from a build server. | ||
+ | |||
+ | Start out by following the steps in the appropriate section. Once you have completed, follow the steps in the "Mutual Steps" section to complete the release. | ||
+ | |||
+ | ====== If Releasing from a Build Server ====== | ||
- Update the information in ports/distribution-release to reflect the new release version | - Update the information in ports/distribution-release to reflect the new release version | ||
- Rebuild the lsb-info package. | - Rebuild the lsb-info package. | ||
- | - If the directory ~/cucumber/cucumber-x.y does not already exist, do the following: | ||
- | - Create the directories ~/cucumber/cucumber-x.y/{cucumber-i686,cucumber-x86_64,ports,ISOs} | ||
- | - Create a compatibility symlink: `ln -s ports/cucumber source` | ||
- | - Clone the installer git repository: `git clone https://github.com/cucumberlinux/installer` | ||
- | - Copy over or create the CHANGELOG file. | ||
- Add an entry to the changelog stating that the new version is released. | - Add an entry to the changelog stating that the new version is released. | ||
+ | |||
+ | ====== If Releasing from a Bootstrap Server ====== | ||
+ | |||
+ | - On the staging server: | ||
+ | - Log in as the staging user (user by default). | ||
+ | - If this is a new staging server, then run the following commands to install the staging server buildtools (substitute the version number of Cucumber Linux you are building in for "x.y"): ''cd && git clone https://github.com/cucumberlinux/buildtools.git && cd buildtools && make install-staging-server VERSION=x.y''. | ||
+ | - Ensure that all the necessary directories are present by running the following command: ''/opt/buildtools/initserv_create_directories'' | ||
+ | - On the bootstrap server: | ||
+ | - Ensure you are in the chroot environment. | ||
+ | - Run the following commands to install the bootstrap server buildtools (substitute the version number of Cucumber Linux you are building in for "x.y"): ''cd && git clone https://github.com/cucumberlinux/buildtools.git && cd buildtools && make install-bootstrap-server VERSION=x.y'' | ||
+ | - Run a script to create the contents.bz2, file-list, updates and CHANGELOG files: ''cd /opt/packages/cucumber && /opt/buildtools/create_metadata_files'' | ||
+ | - Edit the ''/opt/buildtools/config'' file and set the STAGING_SERVER variable to the appropriate value. | ||
+ | - Upload the /opt/packages/cucumber directory to the staging server by running the following script: ''/opt/buildtools/upload_packages'' | ||
+ | - On **only one bootstrap server** (i.e. the bootstrap server for one and only one architecture), upload the /usr/ports directory to the staging server by running the following script: ''/opt/buildtools/upload_ports'' | ||
- Build the updated installer ISO. | - Build the updated installer ISO. | ||
- | - On the build server | + | - On the bootstrap server |
- Clone the repository [[https://github.com/cucumberlinux/installer]]. | - Clone the repository [[https://github.com/cucumberlinux/installer]]. | ||
- | - Run ./build-iso.sh. | + | - Run ''VERSION=x.y ./build-iso.sh'', substituting the version number of Cucumber Linux you are building in for "x.y". |
- | - Upload the .iso file in /tmp to the distribution server. | + | - Upload the .iso file from /tmp on the bootstrap server to ~/cucumber/cucumber-x.y/ISOs/ on the staging server. |
- | - Upload the from the build server ports tree to ~/cucumber/cucumber-x.y/ports on the distribution server. | + | |
- | - On the distribution server. | + | ====== Mutual Steps ====== |
- | - Copy the ISO file to ~/cucumber/cucumber-x.y/ISOs/ | + | |
- | - Calculate the SHA256 checksums. | + | The remaining steps must be performed regardless of which type of server you are releasing from. These steps are identical regardless of which type of server you are releasing from. |
- | - Sign the ISO images with GPG. | + | |
- | - Change the SUPPORT_STATUS file. | + | - Create the verification files for the ISO images: |
- | - This applies only when releasing the final release of a version, not the development releases. | + | - Cd to ~/cucumber/cucumber-x.y/ISOs/ |
+ | - Calculate the SHA256 checksums. | ||
+ | - Sign the ISO images with GPG. | ||
- Make a copy of the rolling source tree and save it to ~/cucumber_releases/. | - Make a copy of the rolling source tree and save it to ~/cucumber_releases/. | ||
- Upload the new ISO files to Sourceforge. | - Upload the new ISO files to Sourceforge. |