diff --git a/CHANGES.rst b/CHANGES.rst index 44d0115a..41bda903 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,15 +8,21 @@ wxPython Changelog ================== -4.0.7 "" ------------------- -* [not yet released] +4.0.7 "one more, for the road" +------------------------------ +* 25-Oct-2019 PyPI: https://pypi.org/project/wxPython/4.0.7 Extras: https://extras.wxPython.org/wxPython4/extras/ Pip: ``pip install wxPython==4.0.7`` -This release provides the following fixes: +This release is comprised mostly of fixes and minor features which have been +back-ported from the master branch. This release is likely the last release of +the 4.0.x release series, and is certainly the last 4.0.x release that will +support Python 2.7. It may still continue to build for Python 2.7 for some time, +but no extra effort will be expended to keep it compatible. + +This release provides the following changes: * Bug fixes in wx.lib.calendar: key navigation across month boundaries is now possible; key navigation now sets the date and fires the EVT_CALENDAR event; diff --git a/build.py b/build.py index e3a2b4b1..58cb8061 100755 --- a/build.py +++ b/build.py @@ -1182,7 +1182,7 @@ def cmd_bdist_docs(options, args): with tarfile.open(name=tarfilename, mode="w:gz") as tarball: tarball.add('docs/html', os.path.join(rootname, 'docs/html'), - filter=lambda info: None if '.svn' in info.name else info) + filter=_setTarItemPerms) if options.upload: uploadPackage(tarfilename, options, keep=5, @@ -2096,7 +2096,7 @@ def cmd_sdist_demo(options, args): tarball = tarfile.open(name=tarfilename, mode="w:gz") pwd = pushDir(PDEST) for name in glob.glob('*'): - tarball.add(name, os.path.join(rootname, name)) + tarball.add(name, os.path.join(rootname, name), filter=_setTarItemPerms) tarball.close() msg('Cleaning up...') del pwd diff --git a/buildtools/version.py b/buildtools/version.py index dfcfef3f..c1491100 100644 --- a/buildtools/version.py +++ b/buildtools/version.py @@ -24,7 +24,7 @@ PROJECT_NAME = 'wxPython' # version numbers. VER_MAJOR = 4 VER_MINOR = 0 -VER_RELEASE = 7 +VER_RELEASE = 8 VER_FLAGS = "a1" # wxPython release flags diff --git a/packaging/ANNOUNCE.txt b/packaging/ANNOUNCE.txt index eb4adf0d..896c62a3 100644 --- a/packaging/ANNOUNCE.txt +++ b/packaging/ANNOUNCE.txt @@ -9,25 +9,49 @@ -Announcing wxPython 4.0.6 +Announcing wxPython 4.0.7 ========================= -PyPI: https://pypi.org/project/wxPython/4.0.6 +PyPI: https://pypi.org/project/wxPython/4.0.7 Extras: https://extras.wxPython.org/wxPython4/extras/ -Pip: ``pip install wxPython==4.0.6`` +Pip: ``pip install wxPython==4.0.7`` -This is a quick-fix release to take care of the following issues: +This release is comprised mostly of fixes and minor features which have been +back-ported from the master branch. This release is likely the last release of +the 4.0.x release series, and is certainly the last 4.0.x release that will +support Python 2.7. It may still continue to build for Python 2.7 for some time, +but no extra effort will be expended to keep it compatible. -* Fixed a probably rare, but fatal bug on OSX when calling certain - overloaded virtual methods with implementations in Python. +Support for building for Python 3.8 has been added, as well as 3.8 binaries on +PyPI for Windows and MacOS. -* Fixed char pointers in generated stub code to have a valid - pointer value. +This release provides the following changes: -* Reverted the change that loads up install_requires from the - contents of requirements.txt. Split the requirements.txt file - into one for install and one for development. +* Bug fixes in wx.lib.calendar: key navigation across month boundaries is now + possible; key navigation now sets the date and fires the EVT_CALENDAR event; + setter APIs now set the date correctly (#1230). + +* Switch to using a wx.Overlay in the Widget Inspection Tool to highlight + widgets when running on a GTK3 port. + +* Fixed issue in wx.lib.agw.customtreectrl where label editor could remain + stuck forever (#1235). + +* Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay hold + a reference to the DC, to ensure that the DCOverlay is destroyed first. + (PR#1301) +* Ported the embedding sample from Classic, which shows how to use wxPython from + a C++ wxWidgets application that embeds Python. (PR #1353) + +* Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of + maintaining its own pointer. This way, if the wxApp is created by C++ code + wxPython will still be able to get access to it. (#1126) + +* Several other PRs have been backported from the master branch (which will + become wxPython 4.1.0), the full list can be seen here: + https://github.com/wxWidgets/Phoenix/pull/1357 + What is wxPython? diff --git a/requirements/install.txt b/requirements/install.txt index 159b7094..eeb7cd86 100644 --- a/requirements/install.txt +++ b/requirements/install.txt @@ -1,6 +1,5 @@ # Runtime dependencies needed when using wxPython Phoenix numpy==1.16.1 ; python_version <= '2.7' numpy ; python_version >= '3.0' -# pillow ; sys_platform == 'win32' and python_version < '3.8' -# pillow ; sys_platform != 'win32' +pillow six diff --git a/unittests/test_dialog.py b/unittests/test_dialog.py index 911e4484..6b36cf33 100644 --- a/unittests/test_dialog.py +++ b/unittests/test_dialog.py @@ -20,6 +20,10 @@ class dialog_Tests(wtc.WidgetTestCase): dlg.Destroy() self.assertTrue(val == wx.ID_OK) self.myYield() + else: + dlg.Show() + dlg.Destroy() + self.myYield() def test_dialogDefaultCtor(self): diff --git a/unittests/test_sizer.py b/unittests/test_sizer.py index 7703c972..af432fe5 100644 --- a/unittests/test_sizer.py +++ b/unittests/test_sizer.py @@ -74,12 +74,14 @@ class sizer_Tests(wtc.WidgetTestCase): def test_iter(self): bs = wx.BoxSizer() widgetlist = [wx.Panel(self.frame) for _ in range(5)] + for w in widgetlist: + bs.Add(w) sizeritems = [x for x in bs] for item in sizeritems: self.assertTrue(isinstance(item, wx.SizerItem)) - self.assertTrue([x.GetWidget() for x in bs] == widgetlist) + self.assertEqual([x.GetWindow() for x in bs], widgetlist) def test_sizerSpacers1(self): bs = wx.BoxSizer() diff --git a/unittests/wtc.py b/unittests/wtc.py index 53408674..c9cfa41e 100644 --- a/unittests/wtc.py +++ b/unittests/wtc.py @@ -57,6 +57,7 @@ class WidgetTestCase(unittest.TestCase): if 'wxOSX' in wx.PlatformInfo: wx.MilliSleep(40) # a little more than 1/30, just in case window.Update() + self.myYield() def closeDialogs(self): diff --git a/vagrant/centos-7/bootstrap.sh b/vagrant/centos-7/bootstrap.sh index 729e588e..1e640256 100644 --- a/vagrant/centos-7/bootstrap.sh +++ b/vagrant/centos-7/bootstrap.sh @@ -18,7 +18,6 @@ yum -y install gtk2 gtk2-devel gtk3 gtk3-devel \ # Install all available Python packages and their dev packages yum -y install python python-tools python-devel python-virtualenv -yum -y install python34u python34u-tools python34u-devel yum -y install python35u python35u-tools python35u-devel yum -y install python36u python36u-tools python36u-devel @@ -27,7 +26,6 @@ yum -y install python36u python36u-tools python36u-devel # done. Set them to the vagrant user so the venvs can be updated by pip later. mkdir venvs virtualenv --python=python2.7 venvs/Py27 -pyvenv-3.4 venvs/Py34 pyvenv-3.5 venvs/Py35 python3.6 -m venv venvs/Py36 chown -R vagrant:vagrant venvs diff --git a/vagrant/debian-8/bootstrap.sh b/vagrant/debian-8/bootstrap.sh index 1ceb3f71..08d72426 100644 --- a/vagrant/debian-8/bootstrap.sh +++ b/vagrant/debian-8/bootstrap.sh @@ -15,14 +15,14 @@ apt-get install -y libjpeg-dev libtiff-dev \ # Install all available Python packages and their dev packages apt-get install -y python2.7 python2.7-dev libpython2.7-dev python-virtualenv -apt-get install -y python3.4 python3.4-dev libpython3.4-dev python3.4-venv +#apt-get install -y python3.4 python3.4-dev libpython3.4-dev python3.4-venv #apt-get install -y python3.5 python3.5-dev libpython3.5-dev python3.5-venv # Set up virtual environments for each Python where the Phoenix builds will be # done. set them to the vagrant user so the venv's can be updated by pip later. mkdir venvs virtualenv --python=python2.7 venvs/Py27 -pyvenv-3.4 venvs/Py34 +#pyvenv-3.4 venvs/Py34 #pyvenv-3.5 venvs/Py35 chown -R vagrant:vagrant venvs diff --git a/vagrant/ubuntu-14.04/bootstrap.sh b/vagrant/ubuntu-14.04/bootstrap.sh index 75430f3d..ff1f76a4 100644 --- a/vagrant/ubuntu-14.04/bootstrap.sh +++ b/vagrant/ubuntu-14.04/bootstrap.sh @@ -16,7 +16,6 @@ apt-get install -y libjpeg-dev libtiff-dev \ # Install all available Python packages and their dev packages apt-get install -y python2.7 python2.7-dev libpython2.7-dev python-virtualenv -apt-get install -y python3.4 python3.4-dev libpython3.4-dev python3.4-venv apt-get install -y python3.5 python3.5-dev libpython3.5-dev python3.5-venv apt-get install -y python3.6 python3.6-dev libpython3.6-dev python3.6-venv @@ -24,7 +23,6 @@ apt-get install -y python3.6 python3.6-dev libpython3.6-dev python3.6-venv # done. set them to the vagrant user so the venv's can be updated by pip later. mkdir venvs virtualenv --python=python2.7 venvs/Py27 -python3.4 -m venv venvs/Py34 python3.5 -m venv venvs/Py35 python3.6 -m venv venvs/Py36 chown -R vagrant:vagrant venvs