Backport release script updates to 3.0.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user