chore: start 3.2.0a0 development and block final-version nightlies (#6191)
Master was left at 3.1.0 final, so nightly wheels had the same version as
the PyPI release. Bump to 3.2.0a0 and make the nightly upload fail when a
wheel does not have a prerelease version.
Fixes #6182.
Assisted-by: ClaudeCode:claude-opus-5-5
diff --git a/.github/workflows/nightlies.yml b/.github/workflows/nightlies.yml
index 66db0fe..f5b2a71 100644
--- a/.github/workflows/nightlies.yml
+++ b/.github/workflows/nightlies.yml
@@ -52,6 +52,16 @@
- name: List wheel to be deployed
run: ls -lha dist/*.whl
+ # A final version would shadow the PyPI release with a master snapshot
+ - name: Require a development version
+ run: |
+ for whl in dist/*.whl; do
+ if ! basename "$whl" | grep -Eq '^[^-]+-[0-9.]+(a|b|rc|\.dev)[0-9]+-'; then
+ echo "::error::$whl is not a prerelease; bump master to a development version"
+ exit 1
+ fi
+ done
+
- name: Upload wheel to Anaconda Cloud as nightly
uses: scientific-python/upload-nightly-action@e76cfec8a4611fd02808a801b0ff5a7d7c1b2d99 # 0.6.4
with:
diff --git a/docs/changelog.md b/docs/changelog.md
index e0100ec..7273c61 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -13,6 +13,9 @@
entry" block in pull request descriptions.
+## Version 3.2.0 (IN DEVELOPMENT)
+
+
## Version 3.1.0 (August 6, 2026)
New Features:
diff --git a/docs/release.rst b/docs/release.rst
index ecfd046..99fbb3b 100644
--- a/docs/release.rst
+++ b/docs/release.rst
@@ -209,7 +209,8 @@
alpha, a next-minor alpha, or whether no immediate bump is wanted. If a bump
is selected, update all version macros consistently, add the corresponding
``IN DEVELOPMENT`` changelog section, run ``nox -s tests_packaging``, and use
- a PR against the selected base.
+ a PR against the selected base. The nightly wheel upload fails while
+ ``master`` has a final version.
- After a prerelease, normally leave the version on the same release line and
do not make an automatic development bump.
diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h
index 7445c01..dc2b7ce 100644
--- a/include/pybind11/detail/common.h
+++ b/include/pybind11/detail/common.h
@@ -18,16 +18,16 @@
// See also: https://github.com/python/cpython/blob/HEAD/Include/patchlevel.h
/* -- start version constants -- */
#define PYBIND11_VERSION_MAJOR 3
-#define PYBIND11_VERSION_MINOR 1
+#define PYBIND11_VERSION_MINOR 2
#define PYBIND11_VERSION_MICRO 0
// ALPHA = 0xA, BETA = 0xB, GAMMA = 0xC (release candidate), FINAL = 0xF (stable release)
// - The release level is set to "alpha" for development versions.
// Use 0xA0 (LEVEL=0xA, SERIAL=0) for development versions.
// - For stable releases, set the serial to 0.
-#define PYBIND11_VERSION_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
+#define PYBIND11_VERSION_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PYBIND11_VERSION_RELEASE_SERIAL 0
// String version of (micro, release level, release serial), e.g.: 0a0, 0b1, 0rc1, 0
-#define PYBIND11_VERSION_PATCH 0
+#define PYBIND11_VERSION_PATCH 0a0
/* -- end version constants -- */
#if !defined(Py_PACK_FULL_VERSION)