Merge branch 'release-scripts'

This commit is contained in:
Vadim Zeitlin 2017-11-17 17:56:41 +01:00
commit ca0557a6eb
10 changed files with 165 additions and 32 deletions

8
.gitattributes vendored
View File

@ -36,3 +36,11 @@ configure.in eol=lf
# Ignore changes in the generated files.
build/upmake -diff
# Don't include stuff which is only used with Git in the archives.
.github/ export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.gitmodules export-ignore
.travis.yml export-ignore
appveyor.yml export-ignore

24
build/tools/post-release.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status.
set -e
topdir=`dirname $0`/../..
# Build the file list for sha1sums, from `docs/release.md`
declare -a files=(`sed -n '/^## Download Verification/,/^## Binaries/p' $topdir/docs/release.md | sed -n -E 's/^\s*0{40}\s{2}(wx.*)/\1/p'`)
# Get the release version
ver_string=`grep '#define wxVERSION_STRING ' $topdir/include/wx/version.h | sed 's/^.*"wxWidgets \(.*\)")/\1/'`
for i in "${files[@]}"
do
# compute sha1sum
sha1sum=`sha1sum $topdir/distrib/release/$ver_string/$i | cut -d' ' -f1`
# save the sha1sum for this file
sed -i -E "/^\s*[0]{40}\s{2}wx/ s/(^\s*)[0]{40}(\s{2}$i)/\1$sha1sum\2/" $topdir/docs/release.md
done
# Commit sha1sum related changes
git commit -m "Update released files sha1sums after $ver_string release" $topdir/docs/release.md

60
build/tools/pre-release.sh Executable file
View File

@ -0,0 +1,60 @@
#!/bin/bash
# build a list of English locales
declare -a locale_list=("en_GB" "en_US")
# get available en locales (including .utf8 and .UTF-8 ones)
declare -a en_locales=(`locale -a | grep '^C\|^POSIX\|^en_'`)
locale_list+=("${en_locales[@]}")
found=0
# set an English locale to get the month name
for i in "${locale_list[@]}"
do
LC_ALL="$i"
# check that setting the locale succeeded
# if it failed then LC_TIME would be empty
my_locale=`locale | grep LC_TIME | sed 's/.*"\(.*\)".*/\1/'`
if [ "$my_locale" = "$i" ]
then
echo Locale set to $i
found=1
break
fi
done
if [ $found = 0 ]
then
echo Could not set an appropriate locale
exit 1
fi
# Exit immediately if a command exits with a non-zero status.
set -e
topdir=`dirname $0`/../..
# get the month name and the year, see $(date +'%B %Y')
# then use it in the relevant line (one before last)
sed -i "/^The wxWidgets Team, / s/.*/The wxWidgets Team, $(date +'%B %Y')/" $topdir/docs/readme.txt
echo Updated date in docs/readme.txt
# reset checksums to a string of 40 0-s, see $(printf '%.40d' 0)
sed -i -E "/^\s*[0-9a-f]{40}\s{1,2}wx/ s/(\s*)[0-9a-f]{40}(\s{1,2}wx)/\1$(printf '%.40d' 0)\2/" $topdir/docs/release.md
echo Reset checksums in docs/release.md
# get current date, see $(date +'%Y-%m-%d')
# then use it in the line containing "X.X.X: (not released yet)"
sed -i "/^[3-9]\.[0-9]\.[0-9]: (not released yet)$/ s/not released yet/released $(date +'%Y-%m-%d')/" $topdir/docs/changes.txt
echo Updated release date in docs/changes.txt
# get current date, see $(date +'%B %d, %Y')
# then use it in the line starting with @date
sed -i "/^@date / s/.*/@date $(date +'%B %d, %Y')/" $topdir/docs/doxygen/mainpages/manual.h
echo Updated date in docs/doxygen/mainpages/manual.h
# get current date, see $(date +'%B %d, %Y')
# then use it in the first line
sed -i "1s/^.* -- /$(date +'%B %d, %Y') -- /" $topdir/docs/publicity/announce.txt
echo Updated date in docs/publicity/announce.txt

View File

@ -37,7 +37,14 @@ trap cleanup INT TERM EXIT
cleanup
mkdir -p $destdir
git archive --prefix=$prefix/ HEAD | (cd $destdir; tar x)
# We use GNU tar -i option to allow successfully extracting files from several
# tar archives concatenated together, without it we'd have to pipe output of
# each git-archive separately.
(git archive --prefix=$prefix/ HEAD;
git submodule foreach --quiet "cd $root/\$path && git archive --prefix=$prefix/\$path/ HEAD") |
tar x -C $destdir -i
cd $destdir
# All setup0.h files are supposed to be renamed to just setup.h when checked
# out and in the distribution.
@ -46,7 +53,7 @@ find $prefix/include/wx -type f -name setup0.h | while read f; do
done
# Compile gettext catalogs.
make -C $prefix/locale allmo
make -C $prefix/locale -s MSGFMT=msgfmt allmo
tar cjf $prefix.tar.bz2 $prefix

View File

@ -2,7 +2,7 @@
Creating a new release requires a few things before getting started:
* Linux or OSX.
* Linux (or another Unix but GNU tar is required).
* Windows 7+ with HTML Help Workshop, and Inno Setup installed.
* 7-Zip, Doxygen 1.8.8, and GraphViz installed on both machines.
@ -46,23 +46,22 @@ and then run it using the new DLLs.
## Pre-Release Steps
* Update `docs/readme.txt`. Please review its contents in addition to just
changing the version number.
* Update `docs/release.md` (the release sha1sums should be set to zeroes).
* 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`.
1. Perform the following steps. You can run `build/tools/pre-release.sh` to do
the straightforward changes like updating the date and version number
automatically, but please also review and update the contents of the README
and announcement text.
* Update `docs/readme.txt`: version needs to be changed, content updated.
* Update `docs/release.md`: the release sha1sums should be set to zeroes.
* 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`.
Commit the changes and finally tag the release, preferably GPG-signed:
2. Commit the changes and tag the release using your GPG key:
git tag -s -m 'Tag X.Y.Z release' vX.Y.Z
and otherwise unsigned:
git tag -m 'Tag X.Y.Z release' vX.Y.Z
Don't overwrite existing tags. For non-final releases use e.g. `X.Y.Z-rc1`
instead of `X.Y.Z`.
Don't overwrite existing tags. For non-final releases use e.g. `X.Y.Z-rc1`
instead of `X.Y.Z`.
## Creating Release Files
@ -91,7 +90,8 @@ ensure you have the appropriate tag or commit checked out.
wxMSW-x.y.z-Setup.exe
wxWidgets-x.y.z.chm
5. Update the sha1sums in `docs/release.md` and commit the changes.
5. Run `./build/tools/post-release.sh` to update the sha1sums in
`docs/release.md` and commit the changes.
## Uploading

View File

@ -24,30 +24,64 @@ download from:
* https://github.com/wxWidgets/wxWidgets/releases/tag/v3.1.1/
Changes
-------
Changes since 3.1.0
-------------------
Compared to the stable 3.0.x series, this version brings many
improvements and even more bug fixes, please see the change log
There have been more than 2000 commits from more than 130 contributors (70 with
multiple contributions) since 3.1.0 release. New features added since then
include:
- wxWebView can now return JavaScript results to the C++ code.
- wxSecretStore allows to securely store user passwords.
Some of the other improvements:
- Strings can now be translated differently depending on their context.
- Converting between wxString and UTF-8 encoded std::string is now
simpler and unsafe wxString can now be disabled on the opt-in basis
(see http://wxwidgets.blogspot.com/2017/02/safer-s.html)
- Many improvements to accessibility support under MSW.
- Support for XDG file layout under Unix.
- Many bug fixes to the appearances in both wxGTK3 and wxOSX, notably
related to borders (notable wxBORDER_NONE) and colours.
- wxDataViewCtrl items and headers can be formatted using simple markup
and it is simpler to combine to put items with checkboxes into it.
- Several enhancements to wxStyledTextCtrl including better support for
custom lexers and auto-completion.
Additionally, the latest versions of compilers (e.g. MSVS 2017) and
operating systems (macOS 10.12) are now supported and all the third
party libraries have been updated to their latest versions.
Please refer to the detailed change log for the full list of changes:
https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.1.1/docs/changes.txt
for the incomplete list of the most important ones. Here is the
Changes since 3.0
-----------------
Compared to the stable 3.0.x series, this version brings too many
improvements and even more bug fixes to list them them all. Here is the
maximally condensed summary:
- New classes: wxActivityIndicator, wxAddRemoveCtrl,
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker.
- And methods: wxDateTime::GetWeekBasedYear(), wxListBox::GetTopItem(),
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker,
wxSecretStore.
- And methods: wxDateTime::GetWeekBasedYear() and GetFirstWeekDay(),
GetTopItem() and GetCountPerPage() in wxListBox and wxDataViewCtrl,
wxProcess::Activate(), wxTextEntry::ForceUpper(), several ones in
wxRendererNative, wxStandardPaths::GetUserDir(), wxUIActionSimulator
::Select() and many others. Also new wxEVT_MAGNIFY event.
wxRendererNative, wxStandardPaths::GetUserDir() and SetFileLayout(),
wxUIActionSimulator::Select(), wxFontPickerCtrl::SetMinPointSize() and
many others.
- New events: wxEVT_MAGNIFY, wxEVT_STC_AUTOCOMP_COMPLETED.
- Significant improvements to: wxBusyInfo, wxNotificationMessage.
- All around better support for high DPI monitors.
- Much newer versions of bundled 3rd party libraries (notably libpng)
and support for GStreamer 1.0 under Unix.
and support for GStreamer up to 1.7 under Unix.
- Revamped OpenGL support better suited to modern OpenGL (3.2+).
- Further C++11 support improvements.
- Support for latest compilers: MSVS 2015, g++ 5.3, clang 3.8.
- Support for latest compilers: MSVS 2017, g++ 7.2, clang 5.0.
- A lot of bug fixes in wxGTK3 and wxOSX/Cocoa ports.
- New experimental wxQt port.

@ -1 +1 @@
Subproject commit 7972ac101c1bf3dec560aa0ee8078701a08c0e16
Subproject commit a0c31490268c5178c8b2273b19c44e64fb6c7dc7

@ -1 +1 @@
Subproject commit 0c4f9b739f65966ac5ffc34c2a42f4ab7f21d92d
Subproject commit e951f6ed6373d3c8d550755e4ec00adadc878aca

@ -1 +1 @@
Subproject commit 5dbedf2c64e40544b5ab776afce509a961c16e20
Subproject commit a016282f4752b1177da5722efda7e3045a4ecdf1

@ -1 +1 @@
Subproject commit c7955ffb6e88050487d46928f0701d94e4f0dd32
Subproject commit 1c1550729c409333f3cf4705a995c460599547a1