Bug report
Bug description:
The buildrelease.bat script does not support the --disable-gil parameter, which is required for building official free-threaded Python releases starting with Python 3.14. This prevents the creation of proper Windows installers for free-threaded Python builds.
Background
With PEP 779 introducing official support for free-threaded Python in Python 3.14 (moving from experimental status in 3.13), the ability to build official free-threaded releases is critical for Windows users.
Current State
- ✅
PCbuild\build.bat supports --disable-gil
- ✅
Tools\msi\build.bat supports --disable-gil
- ❌ buildrelease.bat does not support
--disable-gil
Problem Description
1. Missing --disable-gil Parameter Support
The buildrelease.bat script lacks the parameter parsing and handling for --disable-gil that exists in the other build scripts.
2. WiX Configuration Issues
Even when manually forcing the --disable-gil parameter to be passed to build.bat by modifying line 168-169 in buildrelease.bat:
@echo call "%PCBUILD%build.bat" -e -p %BUILD_PLAT% -t %TARGET% %PGOOPTS% %CERTOPTS% --disable-gil
@call "%PCBUILD%build.bat" -e -p %BUILD_PLAT% -t %TARGET% %PGOOPTS% %CERTOPTS% --disable-gil
The WiX packaging process fails because the configuration files cannot handle free-threaded binaries with the "t" suffix (e.g., python3t_d.dll).
Error Output
"J:\cpython\Tools\msi\bundle\releaselocal.wixproj"(Rebuild target) (1) ->
"J:\cpython\Tools\msi\core\core_d.wixproj"(Rebuild target) (3) ->
(Link target) ->
J:\cpython\Tools\msi\core\core_files.wxs(23): error LGHT0103: The system cannot find the file 'python3_d.dll'. [J:\cpython\Tools\msi\core\core_d.wixproj]
J:\cpython\Tools\msi\core\core_files.wxs(26): error LGHT0103: The system cannot find the file 'python314_d.dll'. [J:\cpython\Tools\msi\core\core_d.wixproj]
J:\cpython\Tools\msi\core\core_files.wxs(27): error LGHT0103: The system cannot find the file 'python314_d.pdb'. [J:\cpython\Tools\msi\core\core_d.wixproj]
"J:\cpython\Tools\msi\bundle\releaselocal.wixproj"(Rebuild target) (1) ->
"J:\cpython\Tools\msi\dev\dev_d.wixproj"(Rebuild target) (6) ->
J:\cpython\Tools\msi\dev\dev_files.wxs(25): error LGHT0103: The system cannot find the file 'python3_d.lib'. [J:\cpython\Tools\msi\dev\dev_d.wixproj]
J:\cpython\Tools\msi\dev\dev_files.wxs(28): error LGHT0103: The system cannot find the file 'python314_d.lib'. [J:\cpython\Tools\msi\dev\dev_d.wixproj]
"J:\cpython\Tools\msi\bundle\releaselocal.wixproj"(Rebuild target) (1) ->
"J:\cpython\Tools\msi\exe\exe_d.wixproj"(Rebuild target) (9) ->
J:\cpython\Tools\msi\exe\exe_files.wxs(57): error LGHT0103: The system cannot find the file 'python_d.exe'. [J:\cpython\Tools\msi\exe\exe_d.wixproj]
Expected Behavior
- buildrelease.bat should accept and properly handle the
--disable-gil parameter
- The WiX configuration should be updated to support free-threaded binary names with the "t" suffix
- Official free-threaded Python Windows installers should be buildable using the standard release process
Steps to Reproduce
- Clone the CPython repository (3.14+ branch)
- Attempt to run:
buildrelease.bat --disable-gil -x64
- Observe that the
--disable-gil parameter is not recognized
- Manually modify the script to pass
--disable-gil to build.bat
- Observe WiX packaging failures due to missing "t" suffix binaries
Environment
- Target Python version: 3.14.0rc2
- Venv Python version: 3.13.7
- Operating System: Windows
- Architecture: x64
Additional Context
This issue was originally discussed on discuss.python.org: I think we need to add –disable-gil support to buildrelease.bat for official free-threaded Python releases (3.14+)
Proposed Solution
- Add
--disable-gil parameter support to buildrelease.bat similar to how it's implemented in build.bat
- Update the WiX configuration files to properly handle free-threaded binary naming conventions
- Ensure the MSI packaging process can correctly package free-threaded Python builds
This is critical for the Python 3.14 release cycle as free-threaded Python transitions from experimental to officially supported status.
CPython versions tested on:
3.14
Operating systems tested on:
Windows
Bug report
Bug description:
The buildrelease.bat script does not support the
--disable-gilparameter, which is required for building official free-threaded Python releases starting with Python 3.14. This prevents the creation of proper Windows installers for free-threaded Python builds.Background
With PEP 779 introducing official support for free-threaded Python in Python 3.14 (moving from experimental status in 3.13), the ability to build official free-threaded releases is critical for Windows users.
Current State
PCbuild\build.batsupports--disable-gilTools\msi\build.batsupports--disable-gil--disable-gilProblem Description
1. Missing
--disable-gilParameter SupportThe buildrelease.bat script lacks the parameter parsing and handling for
--disable-gilthat exists in the other build scripts.2. WiX Configuration Issues
Even when manually forcing the
--disable-gilparameter to be passed to build.bat by modifying line 168-169 in buildrelease.bat:The WiX packaging process fails because the configuration files cannot handle free-threaded binaries with the "t" suffix (e.g.,
python3t_d.dll).Error Output
Expected Behavior
--disable-gilparameterSteps to Reproduce
buildrelease.bat --disable-gil -x64--disable-gilparameter is not recognized--disable-gilto build.batEnvironment
Additional Context
This issue was originally discussed on discuss.python.org: I think we need to add –disable-gil support to buildrelease.bat for official free-threaded Python releases (3.14+)
Proposed Solution
--disable-gilparameter support to buildrelease.bat similar to how it's implemented in build.batThis is critical for the Python 3.14 release cycle as free-threaded Python transitions from experimental to officially supported status.
CPython versions tested on:
3.14
Operating systems tested on:
Windows