Lazarus 1.2 release plan

From Lazarus wiki

Release preparation

  • Gather list of todos from developers
  • Add new LazTarget to the mantis for so we can postpone issue one release.

Bugs to be fixed

Things that need to be fixed before tagging:

Creating branch for release

  • Create fixes_1_2 branch (Mattias)
  • Set version number 1.3 in trunk (Mattias)
    • lazarus/ide/version.inc
    • lazarus/lcl/lclversion.pas
    • lazarus/lcl/lclbase.lpk
    • lazarus/lcl/interfaces/lcl.lpk
    • lazarus/debian/changelog
    • lazarus/lazarus.app/Contents/Info.plist
    • tools/install/linux/environmentoptions.xml same as version.inc
    • tools/install/win/environmentoptions.xml same as version.inc
    • tools/install/macos/environmentoptions.xml same as version.inc
    • check if lpl files needs updating by running ./tools/lplupdate -c (Mattias)
    • run ./tools/updatemakefiles (Mattias)
    • open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog; this will change ide/lazarus.res too.

Create snapshots for new branch

These snapshots can be considered release candidates.

  • source (Vincent)
  • win32 (Vincent)
  • win64 (Vincent)
  • linux i386 rpm (Vincent)
  • linux x86_64 rpm (Vincent)
  • linux i386 deb (Vincent)
  • linux x86_64 deb (Vincent)
  • Mac OS X powerpc (Vincent)
  • Mac OS X i386 (Vincent)
  • Add deb snaphots to Ubuntu testing repo (Vincent)

Ask for testing

  • Informally announce (IRC, mailing list) a pending release (+/- week before actual release), so that people can test for regressions.
  • Create Release Candidate
    • RC1
    • RC2

Merge revisions from trunk

Lazarus_1.2_fixes_branch


Tagging release

  • Set version to 1.2 in fixes_1_2 branch (Mattias)
    • open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final
    • lazarus/ide/version.inc 1.2 RC2
    • lazarus/lcl/lclversion.pas 1.2.0.1 for RC1, 1.2.0.2 for RC2, 1.2.0.3 for final
    • lclbase.lpk
    • lcl.lpk
    • lazarus/debian/changelog 1.2.0-1 for RC1, 1.2.0-2 for RC2, 1.2.0-3 for final
    • lazarus/lazarus.app/Contents/Info.plist v1.2 RC2
    • tools/install/linux/environmentoptions.xml same as version.inc
    • tools/install/win/environmentoptions.xml same as version.inc
    • tools/install/macos/environmentoptions.xml same as version.inc
    • check if lpl files needs updating by running ./tools/lplupdate -c (Mattias)
    • run ./tools/updatemakefiles (Mattias)
  • Tag fixes_1_2 branch to tags/release_1_0_RC2 (Mattias)
svn copy svn+ssh://svn.freepascal.org/FPC/svn/lazarus/branches/fixes_1_2 svn+ssh://svn.freepascal.org/FPC/svn/lazarus/tags/lazarus_1_2_RC2 -m 'tagged 1.2.0.2 as tags/lazarus_1_2_RC2'
  • Set next version in trunk (Mattias)

Building release

  • source (Vincent)
  • html docs (Vincent)
  • chm docs (Vincent)
  • win32 (Martin)
  • win32 for arm-wince (Vincent)
  • win64 (Martin)
  • linux source rpm (Mattias)
  • linux i386 rpm (Mattias)
    • crosswin32 rpm (Mattias)
  • linux x86_64 rpm (Mattias)
  • linux i386 deb (Mattias)
    • crosswin32 deb (Mattias)
  • linux x86_64 deb (Mattias)
  • Mac OS X powerpc (Vincent)
  • Mac OS X i386 (Mattias)
  • Add debs to ubuntu repo (Vincent)

Tests

  • Menu item exists
  • Clear pcp directory and start IDE, a new project application with a form should be visible
  • Double click on form - a FormCreate event should be created
  • Check View / IDE internals / What needs building - no package should need building, only the project
  • Restart the IDE - there should be no warning about upgrading
  • Install the package cody, after restart the component palette should show the component TCodyTreeView

Announcements

  • Wiki: downloading, installation, getting source hints (Mattias)
  • List of changes: Lazarus 1.2 release notes (Mattias)
  • Mailing lists (Mattias)
  • News item on www.lazarus.freepascal.org (Mattias)
  • Sourceforge (Vincent)
  • Freshmeat (Vincent)
  • Change IRC topic (Vincent)
  • New versions in Mantis (Vincent)

After release

  • Make sure snapshots are created correctly for the new version (Vincent)

Further

  • Relax (all)
  • Plan next release