From 8bdbeb7fec9b6b084392e1a0a5af27716d9b77a6 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 2 Jun 2023 07:42:24 -0700 Subject: [PATCH 1/4] Enable building a source archive without the sphinx files. This enables a source archive to be made without a full build. --- CHANGES.rst | 11 +++++++---- build.py | 9 +++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 0ff8ca0c..ffa488b1 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,8 +8,8 @@ wxPython Changelog ================== -4.2.1 -------------------- +4.2.1 "Size matters not." (Yoda) +-------------------------------- * 1-June-2023 PyPI: https://pypi.python.org/pypi/wxPython/4.2.1 @@ -18,14 +18,17 @@ Pip: ``pip install wxPython==4.2.1`` New and improved in this release: -* Added wrappers for wxGenericStaticBitmap. - * This release was built using the wxWidgets' v3.2.2.1 release tag. * Added Python 3.11 to the build system. * Added Python 3.12 (beta) to the build system. +* Added wrappers for wxGenericStaticBitmap. + +* Added wx.ThreadEvent. + + 4.2.0 "Rumors of my death are only slightly exaggerated" diff --git a/build.py b/build.py index 97ec3ea8..9df36f4e 100755 --- a/build.py +++ b/build.py @@ -2198,8 +2198,13 @@ def cmd_sdist(options, args): # Copy the Sphinx source files in the docs tree, excluding the html and # sphinx/build folders, if present. shutil.rmtree(opj(PDEST, 'docs'), ignore_errors=True) - shutil.copytree('docs', opj(PDEST, 'docs'), - ignore=shutil.ignore_patterns('html', 'build', '__pycache__', 'cpp')) + if options.nodoc: + os.makedirs(opj(PDEST, 'docs')) + with open(opj(PDEST, 'docs', 'README.txt'), 'wt') as f: + f.write("The sphinx files and generated docs are not included in this archive.\n") + else: + shutil.copytree('docs', opj(PDEST, 'docs'), + ignore=shutil.ignore_patterns('html', 'build', '__pycache__', 'cpp')) # Add some extra stuff to the root folder cmd_egg_info(options, args, egg_base=PDEST) From a728fa14a9fa75fe27e9aecf1f38371fb39b0f44 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 2 Jun 2023 12:07:25 -0700 Subject: [PATCH 2/4] Add and update docker images --- buildbot/master.cfg | 2 +- docker/build/fedora-36/Dockerfile | 6 ++- docker/build/fedora-37/Dockerfile | 67 ++++++++++++++++++++++++++++ docker/build/fedora-38/Dockerfile | 67 ++++++++++++++++++++++++++++ docker/build/rocky-8/Dockerfile | 4 +- docker/build/rocky-9/Dockerfile | 3 +- docker/build/ubuntu-18.04/Dockerfile | 8 ++-- docker/build/ubuntu-20.04/Dockerfile | 4 +- docker/build/ubuntu-22.04/Dockerfile | 4 +- docker/tasks.py | 2 + 10 files changed, 155 insertions(+), 12 deletions(-) create mode 100644 docker/build/fedora-37/Dockerfile create mode 100644 docker/build/fedora-38/Dockerfile diff --git a/buildbot/master.cfg b/buildbot/master.cfg index fd417ac6..627e7909 100644 --- a/buildbot/master.cfg +++ b/buildbot/master.cfg @@ -207,7 +207,7 @@ regularBuilders = [ #'build-osx-py36', 'build-gtk2-py38', 'build-gtk2-py39', #'build-gtk3-py36', - 'build-gtk3-py37', + #'build-gtk3-py37', 'build-gtk3-py38', 'build-gtk3-py39', 'build-gtk3-py310', diff --git a/docker/build/fedora-36/Dockerfile b/docker/build/fedora-36/Dockerfile index 09312930..93786acb 100644 --- a/docker/build/fedora-36/Dockerfile +++ b/docker/build/fedora-36/Dockerfile @@ -37,7 +37,8 @@ RUN \ RUN \ # Install all available Python packages and their dev packages dnf -y install python3 python3-tools python3-devel; \ - dnf -y install python3.9 + dnf -y install python3.9; \ + dnf -y install python3.11; \ RUN \ # Clean up dnf caches @@ -55,7 +56,8 @@ RUN \ cd ${HOME}; \ mkdir -p ${HOME}/venvs; \ python3.9 -m venv venvs/Py39; \ - python3.10 -m venv venvs/Py310 + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; # Add files from host into the container COPY scripts ${HOME}/bin diff --git a/docker/build/fedora-37/Dockerfile b/docker/build/fedora-37/Dockerfile new file mode 100644 index 00000000..4b9aa98d --- /dev/null +++ b/docker/build/fedora-37/Dockerfile @@ -0,0 +1,67 @@ +# The base image +FROM fedora:37 + +# Set environment variables +ENV DIST_NAME=fedora-37 +ENV USER=wxpy +ENV HOME=/home/$USER +ENV PYTHONUNBUFFERED=1 +ENV PATH=$HOME/bin:$PATH +ENV GTK2_OK=no + +# Update and install basic OS packages +RUN \ + dnf -y update; \ + dnf -y group install "Development Tools"; \ + dnf -y install gcc-c++ sudo nano which; \ +# Set up a user, and etc. + mkdir -p /dist; \ + adduser -m ${USER}; \ + echo "${USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \ +# Install development packages needed for building wxPython + dnf install -y \ + freeglut-devel \ + gstreamer1-devel \ + gstreamer1-plugins-base-devel \ + gtk3-devel \ + libjpeg-turbo-devel \ + libnotify-devel \ + libpng-devel \ + libSM-devel \ + libtiff-devel \ + libXtst-devel \ + SDL-devel \ + webkit2gtk3-devel \ + which; + +RUN \ +# Install all available Python packages and their dev packages + dnf -y install python3 python3-tools python3-devel; \ + dnf -y install python3.9; \ + dnf -y install python3.10; + +RUN \ +# Clean up dnf caches + dnf clean all; + + +# Set the user and group to use for the rest of the commands +USER ${USER}:${USER} + +# Set the working directory +WORKDIR ${HOME} + +# Create virtual environments for each Python +RUN \ + cd ${HOME}; \ + mkdir -p ${HOME}/venvs; \ + python3.9 -m venv venvs/Py39; \ + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; + +# Add files from host into the container +COPY scripts ${HOME}/bin + +# Define default command +CMD ["/bin/bash", "-l"] + diff --git a/docker/build/fedora-38/Dockerfile b/docker/build/fedora-38/Dockerfile new file mode 100644 index 00000000..99b3913d --- /dev/null +++ b/docker/build/fedora-38/Dockerfile @@ -0,0 +1,67 @@ +# The base image +FROM fedora:38 + +# Set environment variables +ENV DIST_NAME=fedora-38 +ENV USER=wxpy +ENV HOME=/home/$USER +ENV PYTHONUNBUFFERED=1 +ENV PATH=$HOME/bin:$PATH +ENV GTK2_OK=no + +# Update and install basic OS packages +RUN \ + dnf -y update; \ + dnf -y group install "Development Tools"; \ + dnf -y install gcc-c++ sudo nano which; \ +# Set up a user, and etc. + mkdir -p /dist; \ + adduser -m ${USER}; \ + echo "${USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \ +# Install development packages needed for building wxPython + dnf install -y \ + freeglut-devel \ + gstreamer1-devel \ + gstreamer1-plugins-base-devel \ + gtk3-devel \ + libjpeg-turbo-devel \ + libnotify-devel \ + libpng-devel \ + libSM-devel \ + libtiff-devel \ + libXtst-devel \ + SDL-devel \ + webkit2gtk3-devel \ + which; + +RUN \ +# Install all available Python packages and their dev packages + dnf -y install python3 python3-tools python3-devel; \ + dnf -y install python3.9; \ + dnf -y install python3.10; + +RUN \ +# Clean up dnf caches + dnf clean all; + + +# Set the user and group to use for the rest of the commands +USER ${USER}:${USER} + +# Set the working directory +WORKDIR ${HOME} + +# Create virtual environments for each Python +RUN \ + cd ${HOME}; \ + mkdir -p ${HOME}/venvs; \ + python3.9 -m venv venvs/Py39; \ + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; + +# Add files from host into the container +COPY scripts ${HOME}/bin + +# Define default command +CMD ["/bin/bash", "-l"] + diff --git a/docker/build/rocky-8/Dockerfile b/docker/build/rocky-8/Dockerfile index a2fad97e..8cc1ef90 100644 --- a/docker/build/rocky-8/Dockerfile +++ b/docker/build/rocky-8/Dockerfile @@ -43,6 +43,7 @@ RUN \ yum -y install python3 python3-tools python3-devel; \ yum -y install python38 python38-devel; \ yum -y install python39 python39-devel; \ + yum -y install python3.11 python3.11-devel; \ # Clean up the yum caches yum clean all; @@ -57,7 +58,8 @@ RUN \ cd ${HOME}; \ mkdir -p ${HOME}/venvs; \ python3.8 -m venv venvs/Py38; \ - python3.9 -m venv venvs/Py39; + python3.9 -m venv venvs/Py39; \ + python3.11 -m venv venvs/Py311; # Add files from host into the container COPY scripts ${HOME}/bin diff --git a/docker/build/rocky-9/Dockerfile b/docker/build/rocky-9/Dockerfile index 5cb583ef..a0092be0 100644 --- a/docker/build/rocky-9/Dockerfile +++ b/docker/build/rocky-9/Dockerfile @@ -54,7 +54,8 @@ WORKDIR ${HOME} RUN \ cd ${HOME}; \ mkdir -p ${HOME}/venvs; \ - python3.9 -m venv venvs/Py39; + python3.9 -m venv venvs/Py39; \ + python3.11 -m venv venvs/Py311; # Add files from host into the container COPY scripts ${HOME}/bin diff --git a/docker/build/ubuntu-18.04/Dockerfile b/docker/build/ubuntu-18.04/Dockerfile index 2df7c2bc..a558793e 100644 --- a/docker/build/ubuntu-18.04/Dockerfile +++ b/docker/build/ubuntu-18.04/Dockerfile @@ -49,11 +49,10 @@ RUN \ # Install all available Python packages and their dev packages RUN \ if [ ${USE_DEADSNAKES} = yes ]; then add-apt-repository -y ppa:deadsnakes/ppa; apt-get update; fi; \ - apt-get install -y python3.6 python3.6-dev libpython3.6-dev python3.6-venv; \ - apt-get install -y python3.7 python3.7-dev libpython3.7-dev python3.7-venv; \ apt-get install -y python3.8 python3.8-dev libpython3.8-dev python3.8-venv; \ apt-get install -y python3.9 python3.9-dev libpython3.9-dev python3.9-venv; \ apt-get install -y python3.10 python3.10-dev libpython3.10-dev python3.10-venv; \ + apt-get install -y python3.11 python3.11-dev libpython3.11-dev python3.11-venv; \ apt-get clean; # Add files from host into the container @@ -70,11 +69,10 @@ WORKDIR ${HOME} RUN \ cd ${HOME}; \ mkdir -p ${HOME}/venvs; \ - python3.6 -m venv venvs/Py36; \ - python3.7 -m venv venvs/Py37; \ python3.8 -m venv venvs/Py38; \ python3.9 -m venv venvs/Py39; \ - python3.10 -m venv venvs/Py310; + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; # Define default command CMD ["/bin/bash", "-l"] diff --git a/docker/build/ubuntu-20.04/Dockerfile b/docker/build/ubuntu-20.04/Dockerfile index 6725875a..2685c790 100644 --- a/docker/build/ubuntu-20.04/Dockerfile +++ b/docker/build/ubuntu-20.04/Dockerfile @@ -52,6 +52,7 @@ RUN \ apt-get install -y python3.8 python3.8-dev libpython3.8-dev python3.8-venv; \ apt-get install -y python3.9 python3.9-dev libpython3.9-dev python3.9-venv; \ apt-get install -y python3.10 python3.10-dev libpython3.10-dev python3.10-venv; \ + apt-get install -y python3.10 python3.11-dev libpython3.11-dev python3.11-venv; \ apt-get clean; # Add files from host into the container @@ -70,7 +71,8 @@ RUN \ mkdir -p ${HOME}/venvs; \ python3.8 -m venv venvs/Py38; \ python3.9 -m venv venvs/Py39; \ - python3.10 -m venv venvs/Py310; + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; # Define default command CMD ["/bin/bash", "-l"] diff --git a/docker/build/ubuntu-22.04/Dockerfile b/docker/build/ubuntu-22.04/Dockerfile index 47a32626..615e1bf9 100644 --- a/docker/build/ubuntu-22.04/Dockerfile +++ b/docker/build/ubuntu-22.04/Dockerfile @@ -52,6 +52,7 @@ RUN \ apt-get install -y python3.8 python3.8-dev libpython3.8-dev python3.8-venv; \ apt-get install -y python3.9 python3.9-dev libpython3.9-dev python3.9-venv; \ apt-get install -y python3.10 python3.10-dev libpython3.10-dev python3.10-venv; \ + apt-get install -y python3.11 python3.11-dev libpython3.11-dev python3.11-venv; \ apt-get clean; # Add files from host into the container @@ -70,7 +71,8 @@ RUN \ mkdir -p ${HOME}/venvs; \ python3.8 -m venv venvs/Py38; \ python3.9 -m venv venvs/Py39; \ - python3.10 -m venv venvs/Py310; + python3.10 -m venv venvs/Py310; \ + python3.11 -m venv venvs/Py311; # Define default command CMD ["/bin/bash", "-l"] diff --git a/docker/tasks.py b/docker/tasks.py index 33df0c5e..aa7e4c0a 100644 --- a/docker/tasks.py +++ b/docker/tasks.py @@ -29,6 +29,8 @@ OLD = [ 'debian-9', 'fedora-31', 'fedora-32', 'fedora-33', + 'fedora-35', + 'fedora-36', 'centos-7', 'centos-8', ] From 69e834a6c1cf3e36d66275af13a90ef73127b070 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 2 Jun 2023 14:28:52 -0700 Subject: [PATCH 3/4] Add windows buildbot worker --- buildbot/master.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/buildbot/master.cfg b/buildbot/master.cfg index 627e7909..9beeb68e 100644 --- a/buildbot/master.cfg +++ b/buildbot/master.cfg @@ -47,6 +47,7 @@ c['workers'] = [ worker.Worker('macosx-3', bbpasswd.PASSWD1, max_builds=1), worker.Worker('windows-1', bbpasswd.PASSWD1, max_builds=1), worker.Worker('windows-2', bbpasswd.PASSWD1, max_builds=1), + worker.Worker('windows-3', bbpasswd.PASSWD1, max_builds=1), worker.Worker('linux-1', bbpasswd.PASSWD1, max_builds=1), worker.Worker('linux-2', bbpasswd.PASSWD1, max_builds=1), worker.Worker('linux-3', bbpasswd.PASSWD1, max_builds=1), From cf3400fc1dcd844424013493b3661cdb0d3a2ccf Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 2 Jun 2023 14:33:27 -0700 Subject: [PATCH 4/4] Assign jobs to the windows-3 builder --- buildbot/master.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildbot/master.cfg b/buildbot/master.cfg index 9beeb68e..d4f2bc84 100644 --- a/buildbot/master.cfg +++ b/buildbot/master.cfg @@ -260,10 +260,10 @@ def makeBuilderConfigs(builder_names): pwmap = { 'osx': ['macosx-1', 'macosx-2', 'macosx-3'], 'gtk2': ['linux-1', 'linux-2', 'linux-3'], 'gtk3': ['linux-1', 'linux-2', 'linux-3'], - 'win32': ['windows-1', 'windows-2'], - 'win64': ['windows-1', 'windows-2'], + 'win32': ['windows-1', 'windows-2', 'windows-3'], + 'win64': ['windows-1', 'windows-2', 'windows-3'], 'src': ['linux-1', 'linux-2', 'linux-3'], - 'docs': ['windows-1', 'windows-2'], } + 'docs': ['windows-1', 'windows-2', 'windows-3'], } return pwmap[port] BCs = [] for bname in builder_names: