Difference between revisions of "Release Template"
From Lazarus wiki
Jump to navigationJump to search (Updates based on 2.0.4 experiences) |
m (Minor updates in links) |
||
Line 2: | Line 2: | ||
# Agree on deadline for changes and date for release candidate building | # 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 | + | # 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 | # 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) | ## Release-like building procedure should be performed in the appropriate branch (trunk or fixes depending on basis for the release) | ||
Line 27: | Line 27: | ||
# Update whatsnew.txt (/install/doc/whatsnew.txt) | # Update whatsnew.txt (/install/doc/whatsnew.txt) | ||
# Find testers | # Find testers | ||
− | ## Create a page in Wiki ("Testers_X.Y.Z" based on [[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) | ## 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 | # Finish all source file updates | ||
Line 41: | Line 41: | ||
=== RC1 === | === RC1 === | ||
− | # 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 | + | # 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]]) |
# New directories | # New directories | ||
## Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN and cpu-os under that) | ## Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN and cpu-os under that) | ||
Line 53: | Line 53: | ||
## fpcbuild-%{version}.zip | ## fpcbuild-%{version}.zip | ||
## fpcbuild-%{version}.tar.gz | ## fpcbuild-%{version}.tar.gz | ||
− | # Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits]]) | + | # Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits|more info]]) |
## doc-pdf.zip | ## doc-pdf.zip | ||
## doc-html.zip | ## doc-html.zip | ||
Line 74: | Line 74: | ||
# Create and upload installer exe for i386-win32 | # Create and upload installer exe for i386-win32 | ||
# Create and upload tgz file for i386-freebsd | # Create and upload tgz file for i386-freebsd | ||
− | # Create and upload release for i386-linux ([[Release engineering#Linux]]) | + | # Create and upload release for i386-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
## deb | ## deb | ||
## rpm | ## rpm | ||
− | # Create and upload release for powerpc-linux ([[Release engineering#Linux]]) | + | # Create and upload release for powerpc-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
# Create and upload release for powerpc-macosx | # Create and upload release for powerpc-macosx | ||
Line 90: | Line 90: | ||
# Create and upload zip files for i386-netware | # Create and upload zip files for i386-netware | ||
# Create and upload zip files for i386-netwlibc | # Create and upload zip files for i386-netwlibc | ||
− | # Create and upload release for sparc-linux ([[Release engineering#Linux]]) | + | # Create and upload release for sparc-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
# Create and upload release for sparc-sunos | # Create and upload release for sparc-sunos | ||
Line 96: | Line 96: | ||
# Create and upload release for arm-linux (cross-release) | # Create and upload release for arm-linux (cross-release) | ||
## tar | ## tar | ||
− | # Create and upload release for x86_64-linux ([[Release engineering#Linux]]) | + | # Create and upload release for x86_64-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
## deb | ## deb | ||
Line 194: | Line 194: | ||
## fpcbuild-%{version}.zip | ## fpcbuild-%{version}.zip | ||
## fpcbuild-%{version}.tar.gz | ## fpcbuild-%{version}.tar.gz | ||
− | # Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits]]) | + | # Create and upload the documentation ([[Release engineering#Documentation building and LaTeX limits|more info]]) |
## doc-pdf.zip | ## doc-pdf.zip | ||
## doc-html.zip | ## doc-html.zip | ||
Line 215: | Line 215: | ||
# Create and upload installer exe for i386-win32 | # Create and upload installer exe for i386-win32 | ||
# Create and upload tgz file for i386-freebsd | # Create and upload tgz file for i386-freebsd | ||
− | # Create and upload release for i386-linux ([[Release engineering#Linux]]) | + | # Create and upload release for i386-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
## deb | ## deb | ||
## rpm | ## rpm | ||
− | # Create and upload release for powerpc-linux ([[Release engineering#Linux]]) | + | # Create and upload release for powerpc-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
# Create and upload release for powerpc-macosx | # Create and upload release for powerpc-macosx | ||
Line 230: | Line 230: | ||
# Create and upload zip files for i386-netware | # Create and upload zip files for i386-netware | ||
# Create and upload zip files for i386-netwlibc | # Create and upload zip files for i386-netwlibc | ||
− | # Create and upload release for sparc-linux ([[Release engineering#Linux]]) | + | # Create and upload release for sparc-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
# Create and upload release for arm-linux (cross-release) | # Create and upload release for arm-linux (cross-release) | ||
## tar - Daniel | ## tar - Daniel | ||
− | # Create and upload release for x86_64-linux ([[Release engineering#Linux]]) | + | # Create and upload release for x86_64-linux ([[Release engineering#Linux|more info]]) |
## tar | ## tar | ||
## deb | ## deb |
Revision as of 18:49, 1 October 2006
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
- errore.msg
- errord.msg
- errorf.msg
- errorn.msg
- errorr.msg
- errorrw.msg
- errorues.msg
- errores.msg
- errorct.msg
- errorhe.msg
- errorheu.msg
- errorptd.msg
- errorptw.msg
- errorpli.msg
- errorpl.msg
- errorid.msg
- 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
- Repackage and upload additional tools where needed
- Update whatsnew.txt (/install/doc/whatsnew.txt)
- 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
- /installer/install.dat (header)
- /installer/install.pas (installer version)
- /install/fpc.spec
- convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
- /docs/fpc.sty (macro fpcversion)
- All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles)
RC1
- 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)
- New directories
- Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN and cpu-os under that)
- Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
- Update path and file names in /install/macosx/*.info for the new RC
- Add new section for the upcoming build in /install/debian/changelog
- Create new rc branch in SVN (release_X_Y_Z_rcN)
- Update version number in rc branch to X.Y.Z-rcN
- /compiler/version.pas
- Create and upload exported fpcbuild
- fpcbuild-%{version}.zip
- fpcbuild-%{version}.tar.gz
- Create and upload the documentation (more info)
- doc-pdf.zip
- doc-html.zip
- doc-htm.zip (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 (more info)
- tar
- deb
- rpm
- Create and upload release for powerpc-linux (more info)
- 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 (more info)
- 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 (more info)
- 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???full.zip installation (over the previously installed dos???.zip to simulate updates)
- make sure readme.txt & whatsnew.txt are for the current version
- run all executables in /bin/go32v2 (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 the OS/2 release
- 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
- 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) (not supported)
- Test the Win32 release
- Run installer
- make sure readme.txt & whatsnew.txt are for the current version
- run all executables in /bin/win32 (without parameters)
- 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 release for i386-freebsd
- 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 (more info)
- doc-pdf.zip
- doc-html.zip
- doc-htm.zip (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 (more info)
- tar
- deb
- rpm
- Create and upload release for powerpc-linux (more info)
- 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 (more info)
- tar
- Create and upload release for arm-linux (cross-release)
- tar - Daniel
- Create and upload release for x86_64-linux (more info)
- 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
- run all executables in /bin/go32v2 (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) (debugging in IDE currently not available/working)
- Test the OS/2 release
- 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
- 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) (not supported)
- Test the Win32 release
- Run installer
- make sure readme.txt & whatsnew.txt are for the current version
- run all executables in /bin/win32 (without parameters)
- 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 release for i386-freebsd
- 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
Going public
- 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
- update symlinks (no symlinks any more?)
- move the old version to the olddist/<version>
- 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/down/* (links to all individual files & file sizes)
- /html/download.fp (version number and list of platforms)
- /html/fpc.fp
- /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 trunk branch (only after a major release - ?.?.0)
- 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
- read news.html
- read fpc.html
- read download.html and check links to individual files
- Send announcement to our mailing lists
- Post announcement on the community site
- 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