This page describes how to release Linaro components. As an example, the commands and naming/version scheme are given, using git.

Workflow

The workflow is as follows:

  1. The development occurs in a version control system (VCS). The current options are:
    • Git on git.linaro.org or android.git.linaro.org
    • Bazaar on Launchpad (bzr.launchpad.net)

$ git clone git://git.linaro.org/bsp/freescale/linux-linaro-natty.git
  • Note: It's recommended to use a team repository. e.g. people should be avoided.

  • The released version is tagged.

$ git tag ${upstream_version}-${yyyy.mm} -m "Tagging monthly release ${upstream}-${yyyy.mm}"
  • Note: It's recommended to use "${upstream_version}-${yyyy.mm}" when the component is based on an upstream. Otherwise, "${yyyy.mm}" when Linaro is the upstream.

  • A release tarball is created from the tag.

$ git archive --format=tar --prefix=linux-linaro-lt-${vendor_name}-${upstream_version}-${yyyy.mm}/ ${tag_name} | bzip2 > linux-linaro-lt-${vendor_name}-${upstream_version}-${yyyy.mm}.tar.bz2
  • Note: It's recommended to use tar.bz2 compression format as it's usually smaller than tar.gz.

  • The download files are uploaded on the Launchpad project milestone page to create the release. It includes the release tarball, release notes and changelog. See Linaro GCC milestone page for a proper example.

    Note: The files can be uploaded before the component release date. Launchpad allows to set the date for publishing the release.

  • A notification e-mail is sent to the Release Team mailing list <linaro-release AT lists DOT linaro DOT org> to ensure a proper tracking of the component and to update the downloads links/website for the release.

The released Linaro component is now ready to be consumed by the Platform Teams and/or the end users for packaging and/or integration.

Respin

Components

On a component respin, the following process should be followed:

  1. A new release tag is created. A suffix number is added to the version, marking it as a respin: e.g. "-1" for the first respin.

$ git tag ${upstream_version}-${yyyy.mm}-${respin_version} -m "Tagging monthly release ${upstream}-${yyyy.mm}-${respin_version}"
  1. A new release tarball is created.

$ git archive --format=tar --prefix=linux-linaro-lt-${vendor_name}-${upstream_version}-${yyyy.mm}-${respin_version}/ ${tag_name} | bzip2 > linux-linaro-lt-${vendor_name}-${upstream_version}-${yyyy.mm}-${respin_version}.tar.bz2
  1. The Launchpad project milestone page is updated with the new release tarball, release notes and changelog.
  2. A notification e-mail about the respin is sent to the Release Team mailing list <linaro-release AT lists DOT linaro DOT org>. The e-mail should mention the rationale for the respin and bug(s) fixed.

Images

In addition to a component respin, an image respin could be needed. It's mandatory to get an approval from the Release Team <linaro-release AT lists AT linaro DOT org> during the release days (from Monday 16:00 UTC until Thursday 16:00 UTC) as respin tracking is needed, the release candidate images are transferred to releases.linaro.org and install instructions are updated.

  1. A bug is reported and the Release Team is subscribed. Please, see the bug management process for more details.

  2. A notification e-mail is sent to the Release Team mailing list <linaro-release AT lists DOT linaro DOT org> to get an approval for image respin.

  3. Release Team ensures the Platform Teams are notified about the approved image respin.
  4. linaro-dev mailing list is notified by the Release Team about the approved image respin.

This process ensures that all the involved parties are notified and take actions as required.


CategoryHowTo CategoryProcess

Process/ReleaseComponents (last modified 2013-10-16 06:35:21)