User:Tracy Graydon/Release Process

From Yocto Project
Jump to navigationJump to search

Yocto Release Procedures

This document explains the steps in publishing an official Yocto Project release. This is intended to be a HOWTO Release Guide.

Yocto Project Naming Conventions

Yocto Project releases fall into four main types:

  • Major Ex. yocto-2.0
  • Minor Ex. yocto-2.1
  • Point (aka "patch" release) Ex. yocto-2.1.1
  • Milestone Ex. yocto-2.3_M3

A full explanation of release naming conventions, release types, and background can be found here: https://wiki.yoctoproject.org/wiki/Yocto_Project_Release_Process

General Steps for a Release:

  • Stage the release candidate.
  • Generate or obtain release notes, if applicable.
  • Stage/create the Release documentation on YoctoProject.org (unpublished but ready to go).
  • Sync the release to the downloads area in preparation for sync to external mirrors.
  • Sign the release notes.
  • Sync to external mirrors.
  • Tag the git repos.
  • Publish the yoctoproject.org pages.
  • Test the links to make sure everything works.
  • Announce the release.

Release Matrix

For Major, Minor, and Point releases, the release artifacts and collateral are the same. For Milestone releases, we publishing is minimal. The table below shows what is published for each release type.

Major/Minor Point Milestone
Yoctoproject.org Docs Yes Yes No
YoctoProject.org Release Page Yes Yes No
BSP Pages Yes Yes No
Eclipse Plugin Pages Yes Yes No
BuildAppliance Page Yes Yes No
Buildtools Page Yes Yes No
Release Notes (signed) Yes Yes No
Tag Release Yes Yes Yes
Email Announcement Yes Yes Yes

Staging the Release

Most of the release process, aside from the creation of the YoctoProject.org pages, is done via scripts. These scripts live here: http://git.yoctoproject.org/cgit/cgit.cgi/release-tools/

The release.py script does the bulk of the staging work based on release type. You will need to know whether you are releasing a Major, Minor, Point, or Milestone release. You will also need to know the release codename (i.e. Krogoth, Morty, Pyro, Foo) and the poky release number. i.e. Pyro is 17.0.0.

The release codename, YP version (i.e. 2.3), and Poky version (16.0, 17.0, etc) can be found here: https://wiki.yoctoproject.org/wiki/Releases

To be able to perform a release, you will need the appropriate access to various hosts, and the requisite permissions to execute a release. Michael Halstead is the contact person for such things. Michael Halstead <mhalstead@linuxfoundation.org>