Release 2.2.0

From Lazarus wiki
Revision as of 11:17, 15 March 2007 by Loesje (talk | contribs) (Added information about versions 2.1.4 and further)
Jump to navigationJump to search

Release organization

  1. Before releasing 2.2.0 there will be a public beta available for about two months. The version number of the beta will be 2.1.4 (aka 2.2.0-beta)
  2. Before the beta there will be an 'internal' release, 2.1.2 to test the build-proces on all platforms. The release of 2.1.2 is the 'feature freeze' for version 2.2.0. In principle between version 2.1.2 and 2.1.4 only build-related patches are allowed.
  3. Version 2.1.4 will be public and announced. From the release of 2.1.4 on, no new features will be added and no functionality will be removed. Only bug fixes are allowed.
  4. About two months after version 2.1.4, there will be (at least one) release candidate for version 2.2.0.
  5. Is the release canidates are satisfactory, 2.2.0 will be released

Merging patches should be done by the developers who are 'responsible' for that part of the code.


Timeline so far:

  1. Friday the 16th version 2.1.2 will be tagged from the fixes_2_2 branche
  2. If things go well, 2.1.4 will be tagged friday the 30th. If we are lucky, the release of 2.1.4 can be in the week thereafter.

Release procedure (Release Template)

Note that detailed information for some tasks can be found in Release engineering. These two pages should be eventually merged (or probably rather better interlinked) in the future.

Release preparations

  1. Agree on deadline for changes
  2. New page in Wiki for release procedure with steps needed and their status (this page), at the beginning consisting of the beta (2.1.) and final release sections
  3. Check tools
    1. Check version of the above mentioned tools (GNU tools, helper DLLs, UPX, etc.), and decide whether it isn't time to update some of these tools
    2. Repackage and upload additional tools where needed
  4. Update whatsnew.txt (/install/doc/whatsnew.txt) - Florian
  5. Finish all source file updates
  6. Update version number to new release number
    1. /install/doc/readme.txt
    2. /installer/install.dat (header)
    3. /installer/install.pas (installer version)
    4. /install/fpc.spec
    5. /install/install.sh Done by makepack
    6. convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
    7. /docs/fpc.sty (macro fpcversion)
    8. All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles)

2.1.2

  1. Create new page in Wiki with issue log for documentation of issues encountered in release candidates and their status
  2. New directories
    1. Create new directories on ftp
    2. Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
  3. Tag version 2.1.2
    1. /compiler/version.pas
  4. Create and upload exported fpcbuild.zip
  5. Create and upload the documentation - Michael
    1. doc-pdf.zip
    2. doc-html.zip
    3. doc-htm.zip
    4. doc-txt.zip
    5. doc-ps.zip
    6. doc-pdf.tar.gz
    7. doc-html.tar.gz
    8. doc-ps.tar.gz
  6. Create and upload source zips
    1. short name version for binary packages
    2. short name version for docs source
    3. long name version for binary packages
    4. long name version for docs source
  7. Create and upload source tars
  8. Create and upload zip files for i386-go32v2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  9. Create and upload zip files for i386-os2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  10. Create and upload installer exe for i386-win32 - Florian
  11. Create and upload tgz file for i386-freebsd - Marco
  12. Create and upload release for i386-linux
    1. tar - Michael
    2. deb - Peter
    3. rpm - Michael
  13. Create and upload release for powerpc-linux
    1. tar - Thomas
  14. Create and upload release for powerpc-macosx - Jonas
    1. .dmg package
    2. .info files for fink - Mischi
  15. Create and upload release for powerpc-macos
  16. Create and upload release for powerpc-morphos - Charlie
  17. Create and upload zip files for i386-netware
  18. Create and upload zip files for i386-netwlibc
  19. Create and upload release for sparc-linux
    1. tar
  20. Create and upload release for arm-linux (cross-release)
    1. tar - Daniel
  21. Create and upload release for x86_64-linux
    1. tar - Michael
  22. Run makereleasezips (combine small ZIP files together)
  23. Consider announcing availability of the new RC in fpc-devel list and/or ask there for dedicated testers for individual platforms
  24. Test the GO32v2 release
    1. dos???.zip installation
    2. dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
    3. make sure readme.txt & whatsnew.txt are for the current version
    4. run all executables in /bin/go32v2 (no params)
    5. make cycle with newly installed binaries and sources
    6. run testsuite
    7. open the installed hello.pp in IDE
    8. make a minor change in the demo in IDE & save it
    9. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    10. compile the demo file in IDE
    11. run the demo within the IDE (debugger)
  25. Test the OS/2 release
    1. os2???.zip installation
    2. os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
    3. make sure readme.txt & whatsnew.txt are for the current version
    4. run all executables in /bin/os2 (no params)
    5. make cycle with newly installed binaries and sources
    6. run testsuite
    7. open the installed hello.pp in IDE
    8. make a minor change in the demo in IDE & save it
    9. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    10. compile the demo file in IDE
    11. run the demo within the IDE (debugger)
  26. Test the Win32 release
    1. Run installer
    2. make sure readme.txt & whatsnew.txt are for the current version
    3. run all executables in /bin/win32 (without parameters)
    4. make cycle with newly installed binaries and sources
    5. run testsuite
    6. open the installed hello.pp in IDE
    7. make a minor change in the demo in IDE & save it
    8. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    9. compile the demo file in IDE
    10. run the demo within the IDE (debugger)
  27. Test release for i386-freebsd
  28. Test release for i386-linux
    1. tar
    2. deb
    3. rpm
  29. Test release for powerpc-linux
    1. tar
  30. Test release for powerpc-macosx
    1. .dmg package
    2. .info files for fink - Mischi
  31. Test release for powerpc-macos
  32. Test release for powerpc-morphos
  33. Test release for i386-netware
  34. Test release for i386-netwlibc
  35. Test release for sparc-linux
    1. tar
  36. Test release for arm-linux
    1. tar
  37. Test release for x86_64-linux
  38. Check PDF documentation (open all files)
  39. Check HTML documentation
  40. Check TXT documentation
  41. Read updated text files as distributed in release zip files
    1. readme.txt
    2. faq.txt
    3. whatsnew.txt

2.1.4 (2.2.0 beta)

  1. Section for new beta on release pages in Wiki
    1. Release procedure
    2. Issue log
  2. Look at unmerged changes in fpc and fpcbuild since the last RC and consider/ask for necessity of their inclusion in the release
  1. New directories (done)
  2. New directories
    1. Create new directories on ftp
    2. Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
  3. Tag version 2.1.2
    1. /compiler/version.pas
  4. Create and upload exported fpcbuild.zip
  5. Create and upload the documentation - Michael
    1. doc-pdf.zip
    2. doc-html.zip
    3. doc-htm.zip
    4. doc-txt.zip
    5. doc-ps.zip
    6. doc-pdf.tar.gz
    7. doc-html.tar.gz
    8. doc-ps.tar.gz
  6. Create and upload source zips
    1. short name version for binary packages
    2. short name version for docs source
    3. long name version for binary packages
    4. long name version for docs source
  7. Create and upload source tars
  8. Create and upload zip files for i386-go32v2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  9. Create and upload zip files for i386-os2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  10. Create and upload installer exe for i386-win32 - Florian
  11. Create and upload tgz file for i386-freebsd - Marco
  12. Create and upload release for i386-linux
    1. tar - Michael
    2. deb - Peter
    3. rpm - Michael
  13. Create and upload release for powerpc-linux
    1. tar - Thomas
  14. Create and upload release for powerpc-macosx - Jonas
    1. .dmg package
    2. .info files for fink - Mischi
  15. Create and upload release for powerpc-macos
  16. Create and upload release for powerpc-morphos - Charlie
  17. Create and upload zip files for i386-netware
  18. Create and upload zip files for i386-netwlibc
  19. Create and upload release for sparc-linux
    1. tar
  20. Create and upload release for arm-linux (cross-release)
    1. tar - Daniel
  21. Create and upload release for x86_64-linux
    1. tar - Michael
  22. Run makereleasezips (combine small ZIP files together)
  23. Consider announcing availability of the new RC in fpc-devel list and/or ask there for dedicated testers for individual platforms
  24. Test the GO32v2 release
    1. dos???.zip installation
    2. dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
    3. make sure readme.txt & whatsnew.txt are for the current version
    4. run all executables in /bin/go32v2 (no params)
    5. make cycle with newly installed binaries and sources
    6. run testsuite
    7. open the installed hello.pp in IDE
    8. make a minor change in the demo in IDE & save it
    9. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    10. compile the demo file in IDE
    11. run the demo within the IDE (debugger)
  25. Test the OS/2 release
    1. os2???.zip installation
    2. os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
    3. make sure readme.txt & whatsnew.txt are for the current version
    4. run all executables in /bin/os2 (no params)
    5. make cycle with newly installed binaries and sources
    6. run testsuite
    7. open the installed hello.pp in IDE
    8. make a minor change in the demo in IDE & save it
    9. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    10. compile the demo file in IDE
    11. run the demo within the IDE (debugger)
  26. Test the Win32 release
    1. Run installer
    2. make sure readme.txt & whatsnew.txt are for the current version
    3. run all executables in /bin/win32 (without parameters)
    4. make cycle with newly installed binaries and sources
    5. run testsuite
    6. open the installed hello.pp in IDE
    7. make a minor change in the demo in IDE & save it
    8. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
    9. compile the demo file in IDE
    10. run the demo within the IDE (debugger)
  27. Test release for i386-freebsd
  28. Test release for i386-linux
    1. tar
    2. deb
    3. rpm
  29. Test release for powerpc-linux
    1. tar
  30. Test release for powerpc-macosx
    1. .dmg package
    2. .info files for fink - Mischi
  31. Test release for powerpc-macos
  32. Test release for powerpc-morphos
  33. Test release for i386-netware
  34. Test release for i386-netwlibc
  35. Test release for sparc-linux
    1. tar
  36. Test release for arm-linux
    1. tar
  37. Test release for x86_64-linux
  38. Check PDF documentation (open all files)
  39. Check HTML documentation
  40. Check TXT documentation
  41. Read updated text files as distributed in release zip files
    1. readme.txt
    2. faq.txt
    3. whatsnew.txt

During the beta

  1. Check and update all .msg files
    1. errore.msg - John?
    2. errord.msg - Karl-Michael Schindler?
    3. errorf.msg - Remi Dorlet and "Oro06"/"Olivier"?
    4. errorn.msg - Matthijs Willemstein?
    5. errorr.msg - Michail Baikov?
    6. errorrw.msg - Michail Baikov?
    7. errorues.msg
    8. errores.msg
    9. errorct.msg
    10. errorhe.msg - Ido Kanner?
    11. errorptd.msg - Ari Ricardo Ody?
    12. errorptw.msg - Ari Ricardo Ody?
    13. errorpli.msg - Wojciech Malinowski?
    14. errorpl.msg - Wojciech Malinowski?
    15. errorid.msg - Zaenal Mutaqin?

Going public

  1. Make new version numbers (release plus next odd patch number for continuing fixes) available in bug tracker
  2. Make new version numbers (release plus next odd patch number for continuing fixes) available in testsuite db - Florian
  3. Make new files on FTP available to wide public
    1. update symlinks (no symlinks any more?)
    2. move the old version to the olddist/<version>
    3. upload files to SourceForge.net and add them to new "releases" for individual platforms
    4. make new "releases" on SourceForge.net accessible for users (change status to "active")
    5. Allow automated notifications on individual SourceForge.net file release pages to be sent
  4. Submit darwin packages to fink
  5. Update WWW pages
    1. /html/news.fp
    2. /html/down/* (links to all individual files & file sizes)
    3. /html/download.fp (version number and list of platforms)
    4. /html/fpc.fp
    5. /html/faq.fp (things like "the latest version is ...")
  6. Create new fixes branch (only after a major release - ?.?.0) (not relevant this time)
    1. Update version number in the trunk branch (only after a major release - ?.?.0) (not relevant this time)
      1. /compiler/version.pas (not relevant this time)
      2. All Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles) (not relevant this time)
  7. Update version number in the fixes branch (increase the patch to next odd number) - Tomas
    1. /compiler/version.pas
    2. All Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles)
  8. Check the WWW pages - Tomas
    1. make sure http://www.freepascal.org contains the new version already
    2. read news.html
    3. read fpc.html
    4. read download.html and check links to individual files
  9. Send announcement to our mailing lists
  10. Post announcement on the community site
  11. Post announcement on Sourceforge.net (only "Project Administrators" may do it) - Jonas
  12. Make sure that all unfixed issues encountered during RC testing and listed on dedicated page in Wiki are documented in bug tracker too
  13. Revise / update /html/future.fp after major versions (?.?.0)