Difference between revisions of "Release Template"
From Free Pascal wiki
Jump to navigationJump to searchm (Keep lowercase "e" on screen) |
(Restructuring the release template) |
||
Line 1: | Line 1: | ||
+ | === Release Issues === | ||
+ | |||
+ | The issues page is [[Issues x.x.x]] | ||
+ | |||
=== Release preparations === | === Release preparations === | ||
# Agree on deadline for changes and date for release candidate building | # Agree on deadline for changes and date for release candidate building | ||
− | # Check the | + | ## [[#FPC-x.x.xrc1]] deadline : |
− | # Check status of bugs assigned to that particular release in the bugtracker | + | ## [[#FPC-x.x.x]] deadline : |
+ | # Check the [[Detailed 2.2.2 Todo]] list for the particular release (should be linked from [[To Do lists]]) for status of individual todo items | ||
+ | # Check status of [http://bugs.freepascal.org/roadmap_page.php bugs assigned to that particular release] in the bugtracker | ||
# 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 | # 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 | ||
+ | # 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]]) | ||
# Ask platform maintainers and [[External_maintainers|external maintainers]] about including their platforms/builds in the new release | # Ask platform maintainers and [[External_maintainers|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 29: | Line 36: | ||
# Update whatsnew.txt (/install/doc/whatsnew.txt) | # Update whatsnew.txt (/install/doc/whatsnew.txt) | ||
# Find testers | # Find testers | ||
− | ## Create a page in Wiki ( | + | ## Create a [[Testers_x.x.x|testers]] page in Wiki (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) | ||
+ | # Update path and file names in /install/macosx/*.info for the new version | ||
# Finish all source file updates | # Finish all source file updates | ||
− | + | # convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== RC1 === | === RC1 === | ||
− | + | -- Below is a template for every version | |
+ | |||
# 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 or /pub/fpc/dist/X.Y.Z and cpu-os under that) |
## Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions) | ## Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions) | ||
− | |||
# Add new section for the upcoming build in /install/debian/changelog | # Add new section for the upcoming build in /install/debian/changelog | ||
− | # Create new | + | # Create new branch in SVN (release_X_Y_Z_rcN or release_X_Y_Z) |
− | # Update version number in | + | # Update version number in release branch (and, if necessary also in main branch (trunk or fixes)) |
## /compiler/version.pas | ## /compiler/version.pas | ||
+ | ## /install/doc/readme.txt | ||
+ | ## /installer/install.dat (header) | ||
+ | ## /installer/install.pas (installer version) | ||
+ | ## /install/fpc.spec | ||
+ | ## /docs/fpc.sty (macro fpcversion) | ||
+ | ## All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles) | ||
# Create and upload exported fpcbuild | # Create and upload exported fpcbuild | ||
## fpcbuild-%{version}.zip | ## fpcbuild-%{version}.zip | ||
Line 68: | Line 75: | ||
## docs source (including link for short name version) | ## docs source (including link for short name version) | ||
## long name version for binary packages | ## long name version for binary packages | ||
− | # Create and upload | + | # Create and upload binary releases (place the bame of the person who aggreed to build a release behind the name of the target below) |
− | + | #* i386-go32v2/basic zip (just binaries) | |
− | # | + | #* i386-go32v2/full zip (including docs and sources) |
− | # | + | #* i386-os2/basic zip (just binaries) |
− | + | #* i386-os2/full zip (including docs and sources) | |
− | # | + | #* i386-win32/exe |
− | # | + | #* x86_64-win32/exe |
− | # | + | #* arm-wince/exe (cross-release) |
− | # | + | #* i386-freebsd/tgz |
− | ## | + | #* i386-linux/tar ([[Release engineering#Linux|more info]]) |
− | ## | + | #* i386-linux/deb ([[Release engineering#Linux|more info]]) |
− | ## | + | #* i386-linux/rpm ([[Release engineering#Linux|more info]]) |
− | # | + | #* x86_64-linux/tar ([[Release engineering#Linux|more info]]) |
− | ## tar | + | #* x86_64-linux/deb ([[Release engineering#Linux|more info]]) |
− | # | + | #* x86_64-linux/rpm ([[Release engineering#Linux|more info]]) |
− | + | #* powerpc-linux/tar ([[Release engineering#Linux|more info]]) | |
− | # | + | #* powerpc-macosx/dmg |
− | + | #* i386-macosx/dmg | |
− | # | + | #* i386-macosx/.info for fink |
− | # | + | #* powerpc-macos |
− | # | + | #* powerpc-morphos |
− | # | + | #* powerpc-amiga |
− | # | + | #* i386-netware |
− | # | + | #* i386-netwlibc |
− | # | + | #* sparc-linux/tar ([[Release engineering#Linux|more info]]) |
− | # | + | #* sparc-sunos/tar |
− | + | #* arm-linux/tar (cross-release) | |
− | |||
− | # | ||
− | |||
− | |||
− | |||
− | |||
− | |||
# Get it tested | # Get it tested | ||
## Ask dedicated testers for testing their platforms | ## Ask dedicated testers for testing their platforms | ||
## Consider announcing availability of the new RC in fpc-devel list | ## Consider announcing availability of the new RC in fpc-devel list | ||
+ | # Keep track of testing in [[Testers_x.x.x|the wiki]] | ||
+ | |||
# Test the GO32v2 release | # Test the GO32v2 release | ||
## dos???.zip installation | ## dos???.zip installation | ||
Line 171: | Line 173: | ||
## faq.txt | ## faq.txt | ||
## whatsnew.txt | ## whatsnew.txt | ||
+ | |||
+ | -- End of template for every version | ||
=== RC2 === | === RC2 === | ||
Line 178: | Line 182: | ||
## Issue log | ## 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 | # Look at unmerged changes in fpc and fpcbuild since the last RC and consider/ask for necessity of their inclusion in the release | ||
− | + | ||
− | + | -- Template from above | |
− | |||
=== Final release === | === 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) | # 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) | ||
− | + | ||
− | + | -- Template from above | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Going public === | === Going public === |
Revision as of 14:33, 2 January 2009
Release Issues
The issues page is Issues x.x.x
Release preparations
- Agree on deadline for changes and date for release candidate building
- #FPC-x.x.xrc1 deadline :
- #FPC-x.x.x deadline :
- Check the Detailed 2.2.2 Todo list for the particular release (should be linked from To Do lists) for status of individual todo items
- Check status of bugs assigned to that particular release in the bugtracker
- 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
- 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)
- 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 testers page in Wiki (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)
- Update path and file names in /install/macosx/*.info for the new version
- Finish all source file updates
- convert /html/faq.fp to /install/doc/faq.htm and /install/doc/faq.txt
RC1
-- Below is a template for every version
- New directories
- Create new directories on ftp (/pub/fpc/beta/X.Y.Z-rcN or /pub/fpc/dist/X.Y.Z and cpu-os under that)
- Copy the extra files (asld*.zip, gdb*.zip, make*.zip) from previous release (unless updated with new versions)
- Add new section for the upcoming build in /install/debian/changelog
- Create new branch in SVN (release_X_Y_Z_rcN or release_X_Y_Z)
- Update version number in release branch (and, if necessary also in main branch (trunk or fixes))
- /compiler/version.pas
- /install/doc/readme.txt
- /installer/install.dat (header)
- /installer/install.pas (installer version)
- /install/fpc.spec
- /docs/fpc.sty (macro fpcversion)
- All Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles)
- 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 binary releases (place the bame of the person who aggreed to build a release behind the name of the target below)
- i386-go32v2/basic zip (just binaries)
- i386-go32v2/full zip (including docs and sources)
- i386-os2/basic zip (just binaries)
- i386-os2/full zip (including docs and sources)
- i386-win32/exe
- x86_64-win32/exe
- arm-wince/exe (cross-release)
- i386-freebsd/tgz
- i386-linux/tar (more info)
- i386-linux/deb (more info)
- i386-linux/rpm (more info)
- x86_64-linux/tar (more info)
- x86_64-linux/deb (more info)
- x86_64-linux/rpm (more info)
- powerpc-linux/tar (more info)
- powerpc-macosx/dmg
- i386-macosx/dmg
- i386-macosx/.info for fink
- powerpc-macos
- powerpc-morphos
- powerpc-amiga
- i386-netware
- i386-netwlibc
- sparc-linux/tar (more info)
- sparc-sunos/tar
- arm-linux/tar (cross-release)
- Get it tested
- Ask dedicated testers for testing their platforms
- Consider announcing availability of the new RC in fpc-devel list
- Keep track of testing in the wiki
- 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
-- End of template for every version
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
-- Template from above
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)
-- Template from above
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