Check 
      Who 
      Description 
       
    
      Preparing for a release 
       
    
        
      Release Manager 
      Notify core developers about the upcoming release and ask about any
        remaining tasks that must be finished. 
       
    
        
      All developers 
      Check the bug tracker for any outstanding items and handle
        appropriately. 
       
    
        
      Release Manager 
      Set a Feature Freeze date, by which time all Git branches for
        enhancements and new functionality should have been merged. After this
        date, commits and merges 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 
          Doxygen annotations 
          Other documents 
         
       
       
    
        
      Release Manager 
      Review and update this checklist for the upcoming release.
        Update the release version number in the tags and messages below. 
       
    
      Testing 
       
    
        
      Platform Developers 
      Run the internal 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 
          Doxygen annotations 
          Other documents 
           
         
       
    
      
        Release Approval 
     
    
      Core Developers 
      Reach a consensus that the software is ready to release. 
       
    
      Creating the final release version 
       
    
      Release Manager 
      
        For each external submodule  in turn (assuming it has not been
          tagged yet):
        
          git grep UNRELEASED  and insert the module version to any
            doxygen annotations that have a @since UNRELEASED  comment.
            Commit (don't push 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 the
            Doxyfile s in the top-level and/or documentation
            directories. In these, set DEVELOPMENT_FLAG  to 0 and remove
            -dev  from the PROJECT_NUMBER  string. Commit these
            changes (don't push). 
          Tag the module:
            
              git tag -m 'ANJ: Tag for EPICS 7.0.8.1' <module-version>
                
          Update the git submodule on the Base-7.0 branch to the
            newly-tagged version, check the module's status matches the tag:
            
              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
            (assumed to be the upstream  remote):
            
              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 to GitHub 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. If this succeeds the commits and new git
        tag can be pushed to the GitHub repository's 7.0 branch (assumed to be
        the upstream  remote):
        
          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.org 
       
    
      Website Editor 
      Upload the tar file and its .asc  signature file to the
        epics-controls web-server.
        
          scp base-7.0.8.1.tar.gz base-7.0.8.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 GitHub 
       
    
      Release Manager 
      Go to the GitHub
        
          Create release from tag R7.0.8.1  page.
        Upload the tar file and its .asc  signature file to the new
        GitHub release page. 
       
    
      Release Manager 
      We used to close out bug reports in Launchpad at release-time, this
        would be the time to do that if we have an equivalent on GitHub. 
       
    
      Make Announcement 
       
    
      Release Manager 
      Announce the release on the tech-talk mailing list.