wiki:ReleaseCookbook

Version 13 (modified by luroh, 5 years ago) (diff)

--

This page gathers random notes about doing Haiku releases.

General rules

Take care of this:

  • Don't rush the release. Better delay it a bit and take the time to make sure everything is ok.
  • Make sure the final image is really well tested.
  • Start planning early. Getting the release ready takes time. Waiting until a new release is urgent is a bad idea.

Pre-branching

This is an actual phase of the release schedule. It's purpose is to grab the attention of all contributors -- committers, bug reporters, translators, everyone.

Getting the development team in "release mode" is not easy. The Trac roadmap is a good indicator of how close we are, but there is some "under the hood" stuff that's hard to predict, like important work happening in a branch we'd really want to merge.

  • Announce the intent to enter release mode: ML, Website. At this point, we should already have a release coordinator.
  • Define the schedule and target date.
  • Cleanup the Trac roadmap of mistargeted tickets: most stuff can be postponed.
  • Allow developers to push any remaining drastic changesets
  • Selection of haikuports packages that should be in the package repo, and first run of build and testing for these.
  • Make sure the API stays stable (Services Kit, Layout Kit, Locale Kit) for some time before the release so 3rd-party app can be up to date on it.
  • Complete the release roadmap and set the purpose for the release: R1/ReleaseRoadMap
  • Setup the wiki pages for the release (R1/Alpha3?)

Branching

  • Fix all the blocking bugs
  • Branch the release
    • git push origin master:r1alpha5
  • Update the version constants (hrev6344, hrev36348)
  • remove the sleeps in the Bootscript
  • diable serial debug output (hrev36721) and in the kernel config file
  • Update package repos to use the release repo (hrev41623)
  • Tag the build tools
  • Update the build tools in the branch (hrevr36378)
  • Rebuild the optional packages - NO update of the packages at this point.
  • Fix any remaining bugs [merge stuff from master on an exceptional basis] and do general polishing. Give some preview to people so they can test it.
  • Import user guide (hrev36743, hrev36744) and synchronize locale catalogs
  • Set KDEBUG_LEVEL to 0 (#define KDEBUG_LEVEL 0) otherwise Haiku is too slow in VMs unless you're on a really fast processor
  • Freeze the branch
  • Make the branch official (hrev36768)
  • Add the ladybugs, stamp in installer logo, etc.
  • Make sure the anyboot image size does not exceed 694 MB
  • Have a test run of the golden master image to spot last remaining critical bugs
  • Cooldown phase: testing of the golden master image on as much hardware as possible: booting, installing, using, for all image types (anyboot, iso, vmware).
  • Tag the branch
  • Write the release notes and press releases
  • Prepare release-files-directory:
     [release-name]/
      |--md5sums.txt (of compressed and uncompressed release-image-files)
      |--release_notes_[release-name].txt
      |--[release-image-files]  (both as .zip and .tar.xz)
      |--[release-image-files].torrent (of just the .zip's)
      |--[release-name]/sources/   (all source archives should be .tar.xz)
           |--haiku-[release-name]-src-[YYYY-MM-DD]
           |--haiku-[release-name]-buildtools-src-[YYYY-MM-DD]
           |--[all optional packages]
    
  • rsync release-files-directory to http://haiku-files.org/files/releases/[release-name]
  • rsync release-files-directory to baron:/srv/rsync/haiku-mirror-seed/releases/[release-name]/ (the 3rd-party rsync mirrors will automatically mirror the files)
  • Tell Distrowatch: http://distrowatch.com/table.php?distribution=haiku (?)
  • Update the freshmeat/freecode page: http://freecode.com/projects/haiku (mmu_man)

After the release

  • Create new Trac "version" and close current milestone
  • Create source archives for legal purposes (GPL compliance)
  • Update the Roadmap wiki page again with the final release date
  • Prepare graphics for the download page: stamp, ladybugs, cd/dvd graphics

Website Pages to update:

Updating download logo for website front page:

sudo bash
cd /srv/www/drupal/haiku-os.org/themes/shijin/haiku-images
mv bg-download-box.png GET-HAIKU-download-box-r1a1.png
cp GET-HAIKU-download-box-r1a2.png bg-download-box.png