Backport release script updates to 3.0.

This commit is contained in:
Bryan Petty
2015-11-15 22:19:28 -07:00
parent 4a23f03ede
commit 80ceca14b5
8 changed files with 198 additions and 332 deletions

View File

@@ -1,101 +1,56 @@
Making a new wxWidgets release
==============================
Making a New wxWidgets Release
==============================
Before making the release
-------------------------
Creating a new release requires a few things before getting started:
Change the version in include/wx/version.h.
* Linux or OSX.
* Windows 7+ with HTML Help Workshop, and Inno Setup installed.
* 7-Zip, Doxygen 1.8.8, and GraphViz installed on both machines.
Update docs/readme.txt. Please review its contents in addition to just
changing the version number.
Unless mentioned otherwise, all steps should be run on Linux or OSX so that the
repository export used for the release is primarily using LF line endings. Files
that require CRLF line endings will be converted appropriately.
Put a date on the release line in docs/changes.txt.
*Important:* Ensure that 7-Zip, HTML Help Workshop, Doxygen, GraphViz and Inno
Setup have all been added to your Path in Windows. You can confirm this by
running `7z`, `hhc`, `iscc`, `doxygen -v`, and `dot -V` in a command prompt.
Add the missing installed folder locations of any executables to your Path.
Update the date in the manual (docs/doxygen/mainpages/manual.h).
Pre-Release Steps
-----------------
Update the release announcement post in docs/publicity/announce.txt.
* Change the version in `include/wx/version.h`.
* Update `docs/readme.txt`. Please review its contents in addition to just
changing the version number.
* Put a date on the release line in `docs/changes.txt`.
* Update the date in the manual (`docs/doxygen/mainpages/manual.h`).
* Update the release announcement post in `docs/publicity/announce.txt`.
Creating release files
Creating Release Files
----------------------
The currently used release scripts need to be used from git-svn checkout and
rely on Git to avoid problems with using non-clean trees and such. If you don't
use Git you may use the alternative archive creation scripts in the next
section.
The release scripts can be run from any working directory, and they will
generate all release package files under `distrib/release/x.y.z`. The scripts
build the release packages based on the current HEAD commit, so always
ensure you have the appropriate tag or commit checked out.
Follow these steps assuming the current working directory is the root of git
working copy and you want to prepare distribution for the version x.y.z:
1. Run `./build/tools/release.sh x.y.z` to create source archives
`wxWidgets-x.y.z.{7z,tar.bz2,zip}`, `wxWidgets-x.y.z-headers.7z`, and
`wxWidgets-x.y.z-docs-html.{tar.bz2,zip}` packages.
1. Run "./build/tools/svn-find-native-eols.pl > ../eol-native" (if you have
an existing svn checkout, pass it to the script to make it run much faster,
but take care to have up to date sources in the working tree).
2. Copy just the `wxWidgets-x.y.z.zip` package into the same
`distrib\release\x.y.z` folder on Windows.
2. Run "./build/tools/git-make-release x.y.z" to create source archives
../wxWidgets-x.y.z.{7z,tar.bz2,zip} and wxWidgets_x.y.z_Headers.zip.
3. Run "./build/tools/make-html-docs x.y.z" to create HTML documentation
archives ../wxWidgets-x.y.z.{tar.bz2,zip}
4. This step must be done under Windows as it relies on having hhc.exe, the
Html Help compiler, in PATH: run the following commands
cd docs\doxygen
regen.bat chm
cd out
zip ..\..\..\wxWidgets-x.y.z-docs-chm.zip wx.chm
5. This step also must be done under Windows as it uses Inno Setup to produce
the .exe file and it also requires the CHM file built above:
md x.y.z-sources
cd x.y.z-sources
7z x ..\wxWidgets-x.y.z.7z
md docs\htmlhelp
cp ..\docs\doxygen\out\wx.chm docs\htmlhelp
set WXW_VER=x.y.z
iscc build\tools\wxwidgets.iss
Instructions for the previous version of release scripts
--------------------------------------------------------
NB: These scripts haven't been used since 2.8 series and may not work any longer!
Currently our release system uses a Python 2.x script to generate releases.
The script requires Unix utilities such as tar, zip and unix2dos and thus must
be run either on Unix or using Cygwin on Windows. To generate a release, simply
run the following command:
build/tools/create-archive.py --compression=all /path/to/output/dir
This will produce zip, gzip and bzip archives of the tree (without
"compression" argument only .gz is made). Note that this commands produces huge
amounts of output so redirecting it to a file is recommended.
To add a prefix to the release, such as RC1, the SVN revision, or a date, just
pass --postfix="postfix" to the script. More info on the options and their
possible values can be found by calling `create-archive.py --help`.
IMPORTANT NOTE: You *must* run this script from a clean source tree, that is,
with no junk files in it or modifications. This is because the
release should be a pristine copy of the tree as of the time of
release. If you have legitimate modifications in the tree that need
to be in the release, commit them first.
To generate the windows installer (.exe) and the documentation files (chm and htb formats)
run:
build\tools\bld_chm_exe.bat
which depends on the wxwidgets.iss file, and generates output in the %DAILY% directory. It
assumes a clean copy of the wxWidgets source tree in %INNO%. Temporary files will be generated
in the tree from which the batch file is run. It depends on doxygen, a number of gnu
win32 tools and Microsofts htmlhelp compiler. The wxwidgets.iss file should not need
editing, but you will want to check that the bld_chm_exe.bat has the correct version number.
3. Run `build/tools/release.bat x.y.z` in a Windows command prompt.
4. Copy these Windows packages back to your Linux or OSX `distrib/release/x.y.z`
directory so you can continue with the upload step with all packages
available:
```
wxMSW-x.y.z-Setup.exe
wxWidgets-x.y.z.chm
```
Uploading
---------
@@ -144,21 +99,27 @@ Create http://docs.wxwidgets.org/x.y.z/ (ask Bryan to do it if not done yet).
Announcement
------------
Post docs/publicity/announce.txt at least to wx-announce@googlegroups.com.
Update https://www.wxwidgets.org, usually a news item is enough but something
more can be called for for major releases.
Submit a link to http://www.reddit.com/r/programming
Post `docs/publicity/announce.txt` at least to wx-announce@googlegroups.com and
to wx-users for the important releases.
For major releases, submit the announcement to http://slashdot.org/submission
Submit a link to https://www.reddit.com/r/programming
Update www.wxwidgets.org, usually a news item is enough but something more can
be called for for major releases.
Submit to https://isocpp.org/blog/suggest
Also update downloads/index.html to mention the new latest release.
For major releases, submit the announcement to https://slashdot.org/submission
Modify the links at downloads/index.html to point to the new release. Also
update the release date on this page.
Also update docs/index.html for the minor or major (i.e. not micro) releases.
Post to wxBlog if necessary.
Announce on Google+/Twitter/whatever the person doing the release prefers (we
don't have "official" wxWidgets account, should we?).
Create a new post on our official Google+ page here:
https://plus.google.com/+wxwidgets/ (contact Bryan for access)
Version updates