User Tools

Site Tools


devdocs:finalize_release_process

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devdocs:finalize_release_process [2018/11/14 01:56]
z5t1
devdocs:finalize_release_process [2018/12/03 16:52] (current)
z5t1
Line 1: Line 1:
 ====== Release Process ====== ====== Release Process ======
-Updated November ​13, 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 ports tree from the build server to ~/​cucumber/​cucumber-x.y/​ports on the distribution ​server. + 
-      - Upload the /​opt/​packages/​cucumber directory ​from the build server ​to ~/​cucumber/​cucumber-x.y/​cucumber-ARCH ​on the distribution ​server, substituting in the appropriate architecture for ARCH+====== Mutual Steps ====== 
-    - On the distribution server. + 
-      Copy the ISO file to ~/​cucumber/​cucumber-x.y/​ISOs/​ +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 and should all be performed ​on the staging ​server. 
-      - Calculate the SHA256 checksums. + 
-      - Sign the ISO images with GPG+  Create the verification files for the ISO images: 
-  - Change the SUPPORT_STATUS file. +    - Cd to ~/​cucumber/​cucumber-x.y/​ISOs/​ 
-    - This applies only when releasing the final release of a version, not the development releases.+    - 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.
devdocs/finalize_release_process.1542160617.txt.gz · Last modified: 2018/11/14 01:56 by z5t1