Task: Package the Release
Each release should be built and packaged in a standard, controlled, and repeatable manner.
Disciplines: Deployment
Purpose
The purpose of this task is to render a complete, deployable package capable of being released into the production environment by the deployment engineer.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Main Description

      The key activities normally used to package a release:

      • Assemble the components and integrate them through a normal (i.e., continuous integration) or release build script
      • Install the release package in one or more test environments and verify its integrity
      • Tag the elements of the release package in the code base to create a baseline
      • Package appropriate documentation to accompany the release:
        • Deployment plan
        • Build plan, procedures, and scripts
        • Backout plan
        • Relevant licensing information
        • Relevant infrastructure information
        • Release communiques
      Steps
      Assemble components
      Question all the developers on the development team to determine which components are ready for packaging. Only package those components that were completed and accepted during the previous feature development sprint/iterations. Components that were not finished or not accepted should not be bundled, unless the customer has granted an exception or they are infrastructure-related components.
      Test the release
      After the components have been packaged and built, that executable should be installed and run in a test environment that mimics the production environment. A "staging" environment usually is maintained for this purpose. Testing typically includes a "smoke test" in which key features are exercised to highlight any unplanned behavior.
      Tag source code repository
      In the team's configuration management (CM) tool, tag all the components that went into the release package so that the package can be reconstructed at a later date, if needed. This tag is known as the release "baseline."
      Package release documentation
      Gather all the product, user, and support documentation developed earlier in the production release sprint/iteration and add it to the release package.
      Deliver release package
      When the entire release package, including documentation, is ready, deliver it to the deployment manager and the release team in a timely manner. Be prepared to answer questions from the deployment engineer, especially questions about conformity to release controls.