Check 
      Who 
      Description 
       
    
      Preparing for a release 
       
    
        
      Release Manager 
      Email all developers about the upcoming release and ask for a list
        of remaining tasks that must be finished. 
       
    
        
      All developers 
      Check the bug tracker for any outstanding items and handle
        appropriately. All bugs that have been fixed should have been marked
        as Fix Committed. 
       
    
        
      Release Manager 
      Set the Feature Freeze date, by which time all Git commits for
        enhancements and new functionality should have been completed. After
        this date, commits should only be made to fix problems that show up
        during testing. 
       
    
        
      Release Manager 
      Ensure that documentation will be updated before the release date:
        
          Release Notes 
          Other documents 
         
       
       
    
        
      Release Manager 
      Review and update this checklist for the upcoming release. 
       
    
        
      Release Manager 
      Create a release milestone on Launchpad. If a target release date is
        known set "Date Targeted" to the expected release date. 
       
    
      Testing 
       
    
        
      Platform Developers 
      Run the built-in test programs on all available host platforms using
        
          make -s runtests
          
       
    
        
      Platform Developers 
      Run the CA client side regression tests on all available host
        platforms. 
       
    
        
      Platform Developers 
      Check that all makeBaseApp templates build and run properly, all
        xxxApp  and xxxBoot  types and any internal options, e.g.
        setting STATIC_BUILD=YES  or using a different
        INSTALL_LOCATION  in configure/CONFIG_SITE. 
       
    
        
      Platform Developers 
      Build the SNL Sequencer against this version of Base, and check that
        the makeBaseApp example builds and runs correctly with it. 
       
    
        
      Application Developers 
      Build external applications against this version of Base on all
        available platforms and test as appropriate. Application code changes
        may be necessary where the EPICS Base APIs have been modified. 
       
    
        
      Release Manager 
      Check that documentation has been updated:
        
          Release Notes 
          Other documents 
           
         
       
    
      
        Release Approval 
     
    
      Release Manager 
      Obtain a positive Ok to release  from developers. 
       
    
      Creating the final release version 
       
    
      Release Manager 
      
        For each external submodule  in turn (assuming it has not been
          tagged yet):
        
          Check that the module's Release Notes have been updated to cover
            all changes; add items as necessary, and set the module version
            number and release date if appropriate. Convert to HTML and view in
            a browser to check the formatting:
            
              cd base-7.0/modules/<module>/documentation  
          Edit the module's release version file
            configure/CONFIG_module _VERSION  and its top-level
            Doxyfile ; set the DEVELOPMENT_FLAG  value to 0 and
            remove -dev  from the PROJECT_NUMBER  string.
            Commit changes (don't push). 
          Tag the module:
            
              git tag -m 'ANJ: Tag for EPICS 7.0.6.1' <module-version>
                
          Update the git submodule on the Base-7.0 branch to the
            newly-tagged version, but don't commit yet:
            
              cd base-7.0/modules  
          Edit the module's release version file
            configure/CONFIG_module _VERSION  and its top-level
            Doxyfile ; increment the MAINTENANCE_VERSION , set
            the DEVELOPMENT_FLAG  value to 1, and update the
            PROJECT_NUMBER  string, appending -dev  to the new
            module version number. Commit changes. 
          Push commits and the new tag to the submodule's GitHub repository:
            
              cd base-7.0/modules/<module>  
           
        After all submodules complete  commit the submodule updates
          which were added for each submodule in step 4 above to the 7.0 branch
          (don't push). After committing, make sure that the output from
          git submodule status --cached  only shows the appropriate
          version tags in the right-most parenthesized column with no
          -n-gxxxxxxx    suffix.
         
       
    
      Release Manager 
      
        git grep UNRELEASED  and insert the release version to any
          doxygen annotations that have a @since UNRELEASED  comment.
          Commit (don't push).
        Edit the main EPICS Base version file and the built-in module version
        files:
        
          configure/CONFIG_BASE_VERSION configure/CONFIG_LIBCOM_VERSION configure/CONFIG_CA_VERSION configure/CONFIG_DATABASE_VERSION  
        Version numbers should be set according to the level of changes made
          since the last release. Note that the MAINTENANCE_VERSION  or
          PATCH_LEVEL  value should have been incremented after the
          previous release tag was applied. Set all DEVELOPMENT_FLAG 
          values to 0 and EPICS_DEV_SNAPSHOT  to the empty string.
        Edit the headings in the Release Notes to show the appropriate
          version number and remove the warning about this being an unreleased
          version of EPICS.
        Commit these changes (don't push).
         
       
    
      Release Manager 
      Tag the epics-base module in Git:
        
          cd base-7.0 Don't push anything to the Launchpad repository
          yet.
         
       
    
      Release Manager 
      Edit the main EPICS Base version file and the built-in module version
        files:
        
          configure/CONFIG_BASE_VERSION configure/CONFIG_LIBCOM_VERSION configure/CONFIG_CA_VERSION configure/CONFIG_DATABASE_VERSION  
        Version numbers should be set for the next expected patch/maintenance
          release by incrementing the MAINTENANCE_VERSION or PATCH_LEVEL value
          in each file. Set all DEVELOPMENT_FLAG  values to 1 and
          EPICS_DEV_SNAPSHOT  to "-DEV".
        Set up the headings in the Release Notes for the next release
          version number and restore the warning about this being an unreleased
          version of EPICS.
        Commit these changes (don't push).
         
       
    
      Release Manager 
      Export the tagged version into a tarfile. The make-tar.sh 
        script generates a gzipped tarfile directly from the tag, excluding the
        files and directories that are only used for continuous integration:
        
          cd base-7.0 
          cd ..  
       
    
      Release Manager 
      Test the tar file by extracting its contents and building it on at
        least one supported platform. When this succeeds the commits and new git
        tag can be pushed to the Launchpad repository:
        
          git push --follow-tags upstream 7.0
            
       
    
      Publish to epics.anl.gov 
       
    
      Website Editor 
      Copy the tarfile and its signature to the Base download area of the
        website. 
       
    
      Website Editor 
      Update the website subdirectory that holds the release
        documentation, and copy in the files from the base/documentation
        directory of the tarfile. 
       
    
      Website Editor 
      Update the webpage for the new release with links to the release
        documents and tar file. 
       
    
      Website Editor 
      Add the new release tar file to the website Base download index
        page. 
       
    
      Website Editor 
      Link to the release webpage from other relevent areas of the
        website - update front page and sidebars. 
       
    
      Website Editor 
      Add an entry to the website News page, linking to the new version
        webpage. 
       
    
      Publish to epics-controls 
       
    
      Website Editor 
      Upload the tar file and its .asc  signature file to the
        epics-controls web-server.
        
          scp base-7.0.6.1.tar.gz base-7.0.6.1.tar.gz.asc epics-controls:download/base  
       
    
      Website Editor 
      Follow instructions on
        
        Add a page for a new release  to create a new release webpage (not
        required for a patch release, just edit the existing page). Update the
        TablePress "Point Releases" table and add the new download, and adjust
        the XYZ Html Snippet for the series download.
         
       
    
      Publish to Launchpad 
       
    
      Release Manager 
      Go to the Launchpad milestone for this release. Click the Create
        release button and add the release date. Put a URL for the release page
        in the Release notes box, and click the Create release button. Upload
        the tar file and its .asc  signature file to the new Launchpad
        release page. 
       
    
      Release Manager 
      Find all Launchpad bug reports with the status Fix Committed which
        have been fixed in this release and mark them Fix Released. 
       
    
      Make Announcement 
       
    
      Release Manager 
      Announce the release on the tech-talk mailing list.