Difference between revisions of "Release Template"

From Lazarus wiki
Jump to navigationJump to search
m (util*.zip built within release, not copied from old)
(Updates based on 2.0.4 experiences)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
=== Release preparations ===
 +
 +
#  Agree on deadline for changes and date for release candidate building
 +
#  New page in Wiki named "Release_X.Y.Z" for release procedure with steps needed and their status (based on [[Release template]]), at the beginning consisting of (at least) RC1 and final release sections
 +
#  Ask platform maintainers and [[external maintainers]] about including their platforms/builds in the new release
 +
## Release-like building procedure should be performed in the appropriate branch (trunk or fixes depending on basis for the release)
 
#  Check and update all .msg files
 
#  Check and update all .msg files
 
## errore.msg
 
## errore.msg
Line 6: Line 12:
 
## errorr.msg
 
## errorr.msg
 
## errorrw.msg
 
## errorrw.msg
 +
## errorues.msg
 
## errores.msg
 
## errores.msg
# New directories
+
## errorct.msg
## Create new directories on FTP and set permission to 700 (using a script ...?)
+
## errorhe.msg
## Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from the old release
+
## errorheu.msg
 +
## errorptd.msg
 +
## errorptw.msg
 +
## errorpli.msg
 +
## errorpl.msg
 +
## errorid.msg
 
#  Check tools
 
#  Check tools
 
## 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
 
## 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
 
## Repackage and upload additional tools where needed
 
## Repackage and upload additional tools where needed
#  Update version number in the appropriate CVS branch
+
#  Update whatsnew.txt (/install/doc/whatsnew.txt)
## /compiler/version.pas
+
#  Find testers
 +
## Create a page in Wiki ("Testers_X.Y.Z" based on [[Testers template]])
 +
## Ask in fpc-devel list for volunteers interested in testing the individual platforms / builds and list them on the newly created page (they can add themselves)
 +
# Finish all source file updates
 +
# Update version number to new release number
 
## /install/doc/readme.txt
 
## /install/doc/readme.txt
## /install/fpinst/install.dat (header + cfg template)
+
## /installer/install.dat (header)
## /install/fpinst/install.pas (installer version)
+
## /installer/install.pas (installer version)
## /install/fpc-docs.spec
 
 
## /install/fpc.spec
 
## /install/fpc.spec
## /install/install.sh
 
## /html/faq.fp (things like "the latest version is ...")
 
 
## convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
 
## convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
 
## /docs/fpc.sty (macro fpcversion)
 
## /docs/fpc.sty (macro fpcversion)
# Update whatsnew.txt (/install/doc/whatsnew.txt)
+
## All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles)
#  Finishing all source file updates
+
 
# Tag CVS with RELEASE_?_?_?
+
=== RC1 ===
# Create and upload zip files for GO32v2
+
 
# Create and upload zip files for OS/2
+
# Create new page in Wiki with issue log for documentation of issues encountered in release candidates and their status ("Issues_X.Y.Z" based on [[Issues template]])
# Create and upload zip files for Win32
+
# New directories
# Create and upload tar files for FreeBSD
+
## Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN and cpu-os under that)
# Create and upload tar files for Linux
+
## Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
## i386
+
# Update path and file names in /install/macosx/*.info for the new RC
## powerpc
+
# Add new section for the upcoming build in /install/debian/changelog
## sparc
+
# Create new rc branch in SVN (release_X_Y_Z_rcN)
## x86-64
+
# Update version number in rc branch to X.Y.Z-rcN
## arm
+
## /compiler/version.pas
# Create and upload Linux RPMs
+
# Create and upload exported fpcbuild
## i386
+
## fpcbuild-%{version}.zip
## sparc
+
## fpcbuild-%{version}.tar.gz
## x86-64
+
# Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits]])
## powerpc
+
## doc-pdf.zip
## arm
 
# Create and upload Linux DEBs (ask DEB maintainer)
 
## i386
 
## sparc
 
## x86-64
 
## powerpc
 
## arm
 
# Create and upload the documentation
 
## docs-pdf.zip
 
 
## doc-html.zip
 
## doc-html.zip
## doc-htm.zip
+
## <i>doc-htm.zip</i> (not included)
## docs-txt.zip
+
## doc-txt.zip
# Create and upload source zips
+
## doc-ps.zip
# Create and upload source tars
+
## doc-pdf.tar.gz
# Run makereleasezips
+
## doc-html.tar.gz
# Test the GO32v2 release
+
## doc-ps.tar.gz
 +
Create and upload source zips
 +
## short name version for binary packages
 +
## docs source (including link for short name version)
 +
## long name version for binary packages
 +
Create and upload zip files for i386-go32v2
 +
## basic zip (just binaries)
 +
## full zip (including docs and sources)
 +
#  Create and upload zip files for i386-os2
 +
## basic zip (just binaries)
 +
## full zip (including docs and sources)
 +
#  Create and upload installer exe for i386-win32
 +
#  Create and upload tgz file for i386-freebsd
 +
#  Create and upload release for i386-linux ([[Release engineering#Linux]])
 +
## tar
 +
## deb
 +
## rpm
 +
#  Create and upload release for powerpc-linux ([[Release engineering#Linux]])
 +
## tar
 +
#  Create and upload release for powerpc-macosx
 +
## .dmg package
 +
#  Create and upload release for i386-macosx
 +
## .dmg package
 +
## .info files for fink
 +
#  Create and upload release for powerpc-macos
 +
#  Create and upload release for powerpc-morphos
 +
#  Create and upload release for powerpc-amiga
 +
#  Create and upload zip files for i386-netware
 +
#  Create and upload zip files for i386-netwlibc
 +
#  Create and upload release for sparc-linux ([[Release engineering#Linux]])
 +
## tar
 +
#  Create and upload release for sparc-sunos
 +
## tar
 +
#  Create and upload release for arm-linux (cross-release)
 +
## tar
 +
#  Create and upload release for x86_64-linux ([[Release engineering#Linux]])
 +
## tar
 +
## deb
 +
## rpm
 +
#  Get it tested
 +
## Ask dedicated testers for testing their platforms
 +
## Consider announcing availability of the new RC in fpc-devel list
 +
# Test the GO32v2 release
 
## dos???.zip installation
 
## dos???.zip installation
 
## dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
 
## dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
Line 69: Line 115:
 
## compile the demo file in IDE
 
## compile the demo file in IDE
 
## run the demo within the IDE (debugger)
 
## run the demo within the IDE (debugger)
# Test the OS/2 release
+
# Test the OS/2 release
 
## os2???.zip installation
 
## os2???.zip installation
 
## os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
 
## os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
Line 80: Line 126:
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## compile the demo file in IDE
 
## compile the demo file in IDE
## run the demo within the IDE (debugger)
+
## <i>run the demo within the IDE (debugger)</i> (not supported)
# Test the Win32 release
+
# Test the Win32 release
## w32???.zip installation
+
## Run installer
## w32???full.zip installation
 
## dosw32???full.zip installation (over the previously installed w32???full.zip to simulate updates)
 
 
## make sure readme.txt & whatsnew.txt are for the current version
 
## make sure readme.txt & whatsnew.txt are for the current version
## run all executables in /bin/win32 and /bin/go32v2 (without parameters)
+
## run all executables in /bin/win32 (without parameters)
 
## make cycle with newly installed binaries and sources
 
## make cycle with newly installed binaries and sources
 
## run testsuite
 
## run testsuite
Line 94: Line 138:
 
## compile the demo file in IDE
 
## compile the demo file in IDE
 
## run the demo within the IDE (debugger)
 
## run the demo within the IDE (debugger)
# Test the FreeBSD release
+
# Test release for i386-freebsd
## FreeBSD tar installation
+
#  Test release for i386-linux
 +
## tar
 +
## deb
 +
## rpm
 +
#  Test release for powerpc-linux
 +
## tar
 +
#  Test release for powerpc-macosx
 +
## .dmg package
 +
#  Test release for i386-macosx
 +
## .dmg package
 +
#  Test release for powerpc-macos
 +
#  Test release for powerpc-morphos
 +
#  Test release for powerpc-amiga
 +
#  Test release for i386-netware
 +
#  Test release for i386-netwlibc
 +
#  Test release for sparc-linux
 +
## tar
 +
#  Test release for arm-linux
 +
## tar
 +
#  Test release for x86_64-linux
 +
## tar
 +
## deb
 +
## rpm
 +
#  Check PDF documentation (open all files)
 +
#  Check HTML documentation
 +
#  Check TXT documentation
 +
#  Read updated text files as distributed in release zip files
 +
## readme.txt
 +
## faq.txt
 +
## whatsnew.txt
 +
 
 +
=== RC2 ===
 +
 
 +
#  Section for new RC on release pages in Wiki
 +
## Release procedure
 +
## Issue log
 +
#  Look at unmerged changes in fpc and fpcbuild since the last RC and consider/ask for necessity of their inclusion in the release
 +
#  New directories
 +
.
 +
.
 +
 
 +
=== Final release ===
 +
 
 +
#  Look at unmerged changes in fpc and fpcbuild since the last RC and consider/ask for necessity of their inclusion in the release (only cosmetic changes should be included, otherwise a new RC is needed instead of final release)
 +
#  New directories
 +
## Create new directories on ftp (/pub/fpc/dist/cpu-os-X.Y.Z)
 +
## Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous RC (unless updated with new versions)
 +
#  Update path and file names in /install/macosx/*.info for the new release
 +
#  Add new section for the upcoming build in /install/debian/changelog
 +
#  Create new release branch in SVN
 +
#  Update version number in release branch to the X.Y.Z
 +
## /compiler/version.pas
 +
#  Create and upload exported fpcbuild
 +
## fpcbuild-%{version}.zip
 +
## fpcbuild-%{version}.tar.gz
 +
#  Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits]])
 +
## doc-pdf.zip
 +
## doc-html.zip
 +
## <i>doc-htm.zip</i> (not included)
 +
## doc-txt.zip
 +
## doc-ps.zip
 +
## doc-pdf.tar.gz
 +
## doc-html.tar.gz
 +
## doc-ps.tar.gz
 +
#  Create and upload source zips
 +
## short name version for binary packages
 +
## docs source (including link for short name version)
 +
## long name version for binary packages
 +
#  Create and upload zip files for i386-go32v2
 +
## basic zip (just binaries)
 +
## full zip (including docs and sources)
 +
#  Create and upload zip files for i386-os2
 +
## basic zip (just binaries)
 +
## full zip (including docs and sources)
 +
#  Create and upload installer exe for i386-win32
 +
#  Create and upload tgz file for i386-freebsd
 +
#  Create and upload release for i386-linux ([[Release engineering#Linux]])
 +
## tar
 +
## deb
 +
## rpm
 +
#  Create and upload release for powerpc-linux ([[Release engineering#Linux]])
 +
## tar
 +
#  Create and upload release for powerpc-macosx
 +
## .dmg package
 +
#  Create and upload release for i386-macosx
 +
## .dmg package
 +
#  Create and upload release for powerpc-macos
 +
#  Create and upload release for powerpc-morphos
 +
#  Create and upload release for powerpc-amiga
 +
#  Create and upload zip files for i386-netware
 +
#  Create and upload zip files for i386-netwlibc
 +
#  Create and upload release for sparc-linux ([[Release engineering#Linux]])
 +
## tar
 +
#  Create and upload release for arm-linux (cross-release)
 +
## tar - Daniel
 +
#  Create and upload release for x86_64-linux ([[Release engineering#Linux]])
 +
## tar
 +
## deb
 +
## rpm
 +
#  Test the GO32v2 release
 +
## dos???.zip installation
 +
## dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
 
## make sure readme.txt & whatsnew.txt are for the current version
 
## make sure readme.txt & whatsnew.txt are for the current version
## run all executables in /bin/freebsd (no params)
+
## run all executables in /bin/go32v2 (no params)
 
## make cycle with newly installed binaries and sources
 
## make cycle with newly installed binaries and sources
 
## run testsuite
 
## run testsuite
Line 104: Line 249:
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## compile the demo file in IDE
 
## compile the demo file in IDE
## run the demo within the IDE (debugger)
+
## <i>run the demo within the IDE (debugger)</i> (debugging in IDE currently not available/working)
# Test Linux DEBs
+
# Test the OS/2 release
## Linux DEBs installation
+
## os2???.zip installation
 +
## os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
 
## make sure readme.txt & whatsnew.txt are for the current version
 
## make sure readme.txt & whatsnew.txt are for the current version
## run all executables in /bin/linux (no params)
+
## run all executables in /bin/os2 (no params)
## make cycle with newly installed binaries and sources
 
## run testsuite
 
## open the installed hello.pp in IDE
 
## make a minor change in the demo in IDE & save it
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## compile the demo file in IDE
 
## run the demo within the IDE (debugger)
 
# Test Linux RPMs
 
## Linux RPMs installation
 
## make sure readme.txt & whatsnew.txt are for the current version
 
## run all executables in /bin/linux (no params)
 
 
## make cycle with newly installed binaries and sources
 
## make cycle with newly installed binaries and sources
 
## run testsuite
 
## run testsuite
Line 126: Line 261:
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
 
## compile the demo file in IDE
 
## compile the demo file in IDE
## run the demo within the IDE (debugger)
+
## <i>run the demo within the IDE (debugger)</i> (not supported)
# Test Linux tar release
+
# Test the Win32 release
## Linux tar installation
+
## Run installer
 
## make sure readme.txt & whatsnew.txt are for the current version
 
## make sure readme.txt & whatsnew.txt are for the current version
## run all executables in /bin/linux (no params)
+
## run all executables in /bin/win32 (without parameters)
 
## make cycle with newly installed binaries and sources
 
## make cycle with newly installed binaries and sources
 
## run testsuite
 
## run testsuite
Line 138: Line 273:
 
## compile the demo file in IDE
 
## compile the demo file in IDE
 
## run the demo within the IDE (debugger)
 
## run the demo within the IDE (debugger)
# Check PDF documentation (open all files)
+
# Test release for i386-freebsd
# Check HTML documentation
+
#  Test release for i386-linux
# Check TXT documentation
+
## tar
# Read updated text files as distributed in release zip files
+
## deb
 +
## rpm
 +
#  Test release for powerpc-linux
 +
## tar
 +
#  Test release for powerpc-macosx
 +
## .dmg package
 +
#  Test release for i386-macosx
 +
## .dmg package
 +
#  Test release for powerpc-macos
 +
#  Test release for powerpc-morphos
 +
#  Test release for powerpc-amiga
 +
#  Test release for i386-netware
 +
#  Test release for i386-netwlibc
 +
#  Test release for sparc-linux
 +
## tar
 +
#  Test release for arm-linux
 +
## tar
 +
#  Test release for x86_64-linux
 +
## tar
 +
## deb
 +
## rpm
 +
Check PDF documentation (open all files)
 +
# Check HTML documentation
 +
# Check TXT documentation
 +
# Read updated text files as distributed in release zip files
 
## readme.txt
 
## readme.txt
 
## faq.txt
 
## faq.txt
 
## whatsnew.txt
 
## whatsnew.txt
# Make new files on FTP available to wide public
+
 
## open new directories for public access
+
=== Going public ===
## update symlinks
+
 
 +
#  Make new version numbers (release plus next odd patch number for continuing fixes) available in bug tracker
 +
# Make new version numbers (release plus next odd patch number for continuing fixes) available in testsuite db
 +
Make new files on FTP available to wide public
 +
## <i>update symlinks</i> (no symlinks any more?)
 
## move the old version to the olddist/<version>
 
## move the old version to the olddist/<version>
# Update WWW pages
+
## upload files to SourceForge.net and add them to new "releases" for individual platforms
 +
## make new "releases" on SourceForge.net accessible for users (change status to "active")
 +
## Allow automated notifications on individual SourceForge.net file release pages to be sent
 +
#  Submit darwin packages to fink
 +
Update WWW pages
 
## /html/news.fp
 
## /html/news.fp
## /html/download.fp (links to all individual files & file sizes)
+
## /html/down/* (links to all individual files & file sizes)
 +
## /html/download.fp (version number and list of platforms)
 
## /html/fpc.fp
 
## /html/fpc.fp
# Check the WWW pages
+
## /html/faq.fp (things like "the latest version is ...")
 +
#  Create new fixes branch (only after a major release -  ?.?.0)
 +
## Update version number in the trunk branch (only after a major release -  ?.?.0)
 +
### /compiler/version.pas
 +
### All Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles)
 +
#  Update version number in the fixes branch (increase the patch to next odd number)
 +
## /compiler/version.pas
 +
## all Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles)
 +
Check the WWW pages
 
## make sure http://www.freepascal.org contains the new version already
 
## make sure http://www.freepascal.org contains the new version already
 
## read news.html
 
## read news.html
 
## read fpc.html
 
## read fpc.html
## read download.html and check _all_ links to individual files
+
## read download.html and check links to individual files
# Send announcement to our mailing lists
+
# Send announcement to our mailing lists
# Post announcement on the community site
+
# Post announcement on the community site
# Revise / update /html/future.fp after major versions (?.?.0)
+
# Post announcement on Sourceforge.net (only "Project Administrators" may do it)
 +
#  Make sure that all unfixed issues encountered during RC testing and listed on dedicated page in Wiki are documented in bug tracker too
 +
Revise / update /html/future.fp after major versions (?.?.0)
 +
#  Remove unneeded RC builds from FTP

Revision as of 18:44, 1 October 2006

Release preparations

  1. Agree on deadline for changes and date for release candidate building
  2. New page in Wiki named "Release_X.Y.Z" for release procedure with steps needed and their status (based on Release template), at the beginning consisting of (at least) RC1 and final release sections
  3. Ask platform maintainers and external maintainers about including their platforms/builds in the new release
    1. Release-like building procedure should be performed in the appropriate branch (trunk or fixes depending on basis for the release)
  4. Check and update all .msg files
    1. errore.msg
    2. errord.msg
    3. errorf.msg
    4. errorn.msg
    5. errorr.msg
    6. errorrw.msg
    7. errorues.msg
    8. errores.msg
    9. errorct.msg
    10. errorhe.msg
    11. errorheu.msg
    12. errorptd.msg
    13. errorptw.msg
    14. errorpli.msg
    15. errorpl.msg
    16. errorid.msg
  5. 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
  6. Update whatsnew.txt (/install/doc/whatsnew.txt)
  7. Find testers
    1. Create a page in Wiki ("Testers_X.Y.Z" based on Testers template)
    2. Ask in fpc-devel list for volunteers interested in testing the individual platforms / builds and list them on the newly created page (they can add themselves)
  8. Finish all source file updates
  9. 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. convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
    6. /docs/fpc.sty (macro fpcversion)
    7. All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles)

RC1

  1. Create new page in Wiki with issue log for documentation of issues encountered in release candidates and their status ("Issues_X.Y.Z" based on Issues template)
  2. New directories
    1. Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN and cpu-os under that)
    2. Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
  3. Update path and file names in /install/macosx/*.info for the new RC
  4. Add new section for the upcoming build in /install/debian/changelog
  5. Create new rc branch in SVN (release_X_Y_Z_rcN)
  6. Update version number in rc branch to X.Y.Z-rcN
    1. /compiler/version.pas
  7. Create and upload exported fpcbuild
    1. fpcbuild-%{version}.zip
    2. fpcbuild-%{version}.tar.gz
  8. Create and upload the documentation (Release engineering#Documentation building and LaTeX limits)
    1. doc-pdf.zip
    2. doc-html.zip
    3. doc-htm.zip (not included)
    4. doc-txt.zip
    5. doc-ps.zip
    6. doc-pdf.tar.gz
    7. doc-html.tar.gz
    8. doc-ps.tar.gz
  9. Create and upload source zips
    1. short name version for binary packages
    2. docs source (including link for short name version)
    3. long name version for binary packages
  10. Create and upload zip files for i386-go32v2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  11. Create and upload zip files for i386-os2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  12. Create and upload installer exe for i386-win32
  13. Create and upload tgz file for i386-freebsd
  14. Create and upload release for i386-linux (Release engineering#Linux)
    1. tar
    2. deb
    3. rpm
  15. Create and upload release for powerpc-linux (Release engineering#Linux)
    1. tar
  16. Create and upload release for powerpc-macosx
    1. .dmg package
  17. Create and upload release for i386-macosx
    1. .dmg package
    2. .info files for fink
  18. Create and upload release for powerpc-macos
  19. Create and upload release for powerpc-morphos
  20. Create and upload release for powerpc-amiga
  21. Create and upload zip files for i386-netware
  22. Create and upload zip files for i386-netwlibc
  23. Create and upload release for sparc-linux (Release engineering#Linux)
    1. tar
  24. Create and upload release for sparc-sunos
    1. tar
  25. Create and upload release for arm-linux (cross-release)
    1. tar
  26. Create and upload release for x86_64-linux (Release engineering#Linux)
    1. tar
    2. deb
    3. rpm
  27. Get it tested
    1. Ask dedicated testers for testing their platforms
    2. Consider announcing availability of the new RC in fpc-devel list
  28. 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)
  29. 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) (not supported)
  30. 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)
  31. Test release for i386-freebsd
  32. Test release for i386-linux
    1. tar
    2. deb
    3. rpm
  33. Test release for powerpc-linux
    1. tar
  34. Test release for powerpc-macosx
    1. .dmg package
  35. Test release for i386-macosx
    1. .dmg package
  36. Test release for powerpc-macos
  37. Test release for powerpc-morphos
  38. Test release for powerpc-amiga
  39. Test release for i386-netware
  40. Test release for i386-netwlibc
  41. Test release for sparc-linux
    1. tar
  42. Test release for arm-linux
    1. tar
  43. Test release for x86_64-linux
    1. tar
    2. deb
    3. rpm
  44. Check PDF documentation (open all files)
  45. Check HTML documentation
  46. Check TXT documentation
  47. Read updated text files as distributed in release zip files
    1. readme.txt
    2. faq.txt
    3. whatsnew.txt

RC2

  1. Section for new RC 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
  3. New directories
.
.

Final release

  1. Look at unmerged changes in fpc and fpcbuild since the last RC and consider/ask for necessity of their inclusion in the release (only cosmetic changes should be included, otherwise a new RC is needed instead of final release)
  2. New directories
    1. Create new directories on ftp (/pub/fpc/dist/cpu-os-X.Y.Z)
    2. Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous RC (unless updated with new versions)
  3. Update path and file names in /install/macosx/*.info for the new release
  4. Add new section for the upcoming build in /install/debian/changelog
  5. Create new release branch in SVN
  6. Update version number in release branch to the X.Y.Z
    1. /compiler/version.pas
  7. Create and upload exported fpcbuild
    1. fpcbuild-%{version}.zip
    2. fpcbuild-%{version}.tar.gz
  8. Create and upload the documentation (Release engineering#Documentation building and LaTeX limits)
    1. doc-pdf.zip
    2. doc-html.zip
    3. doc-htm.zip (not included)
    4. doc-txt.zip
    5. doc-ps.zip
    6. doc-pdf.tar.gz
    7. doc-html.tar.gz
    8. doc-ps.tar.gz
  9. Create and upload source zips
    1. short name version for binary packages
    2. docs source (including link for short name version)
    3. long name version for binary packages
  10. Create and upload zip files for i386-go32v2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  11. Create and upload zip files for i386-os2
    1. basic zip (just binaries)
    2. full zip (including docs and sources)
  12. Create and upload installer exe for i386-win32
  13. Create and upload tgz file for i386-freebsd
  14. Create and upload release for i386-linux (Release engineering#Linux)
    1. tar
    2. deb
    3. rpm
  15. Create and upload release for powerpc-linux (Release engineering#Linux)
    1. tar
  16. Create and upload release for powerpc-macosx
    1. .dmg package
  17. Create and upload release for i386-macosx
    1. .dmg package
  18. Create and upload release for powerpc-macos
  19. Create and upload release for powerpc-morphos
  20. Create and upload release for powerpc-amiga
  21. Create and upload zip files for i386-netware
  22. Create and upload zip files for i386-netwlibc
  23. Create and upload release for sparc-linux (Release engineering#Linux)
    1. tar
  24. Create and upload release for arm-linux (cross-release)
    1. tar - Daniel
  25. Create and upload release for x86_64-linux (Release engineering#Linux)
    1. tar
    2. deb
    3. rpm
  26. 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) (debugging in IDE currently not available/working)
  27. 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) (not supported)
  28. 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)
  29. Test release for i386-freebsd
  30. Test release for i386-linux
    1. tar
    2. deb
    3. rpm
  31. Test release for powerpc-linux
    1. tar
  32. Test release for powerpc-macosx
    1. .dmg package
  33. Test release for i386-macosx
    1. .dmg package
  34. Test release for powerpc-macos
  35. Test release for powerpc-morphos
  36. Test release for powerpc-amiga
  37. Test release for i386-netware
  38. Test release for i386-netwlibc
  39. Test release for sparc-linux
    1. tar
  40. Test release for arm-linux
    1. tar
  41. Test release for x86_64-linux
    1. tar
    2. deb
    3. rpm
  42. Check PDF documentation (open all files)
  43. Check HTML documentation
  44. Check TXT documentation
  45. Read updated text files as distributed in release zip files
    1. readme.txt
    2. faq.txt
    3. whatsnew.txt

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
  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)
    1. Update version number in the trunk branch (only after a major release - ?.?.0)
      1. /compiler/version.pas
      2. All Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles)
  7. Update version number in the fixes branch (increase the patch to next odd number)
    1. /compiler/version.pas
    2. all Makefile.fpc files containing "version=..." (plus regenerate the corresponding Makefiles)
  8. Check the WWW pages
    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)
  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)
  14. Remove unneeded RC builds from FTP