Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Feb 13, 2025. It is now read-only.
forked frompython/cpython

ReleaseProcess

Anselm Kruis edited this pageAug 8, 2021 ·4 revisions

Release Process

This page is intended to document the release process of Stackless Python.

Checklist

Linux Tests

  1. Compile CPython as regular build and as debug build.
  2. Run the Python standard library unit tests with CPython (regular) to get a base line.
  3. Compile with STACKLESS_OFF, run Python standard library unit tests.The test result must be identical to the base line.
  4. Compile with STACKLESS without thread support and run the test suites.There must not be any failure in the Stackless test suite. Failures in thePython test suite must be identical to regular CPython.
  5. Compile a debug build with STACKLESS and with thread support and run the test suites.
  6. Rerun the test suites with option '-R:'. Takes a lot of time. You must not get failures inthe Stackless test suite. Failures in thePython test suite must be identical to regular CPython.
  7. Compile a regular build with STACKLESS and with thread support and run the test suites.You must not get failures in the Stackless test suite. Failures in thePython test suite must be identical to regular CPython.

Windows 32bit, Windows 64bit and OSX Tests

  1. Compile CPython as regular build and as debug build.
  2. Run the Python standard library unit tests with CPython (regular) to get a base line.(Windows: Python compiled with Visual Studio 2015, debug builds only: I observed assert violationsin the C-runtime library related to invalid file descriptors. This makes it impracticalto run the CPython test suite with a Python debug build.)
  3. Compile with STACKLESS_OFF, run Python standard library unit tests.The test result must be identical to the base line.
  4. Compile a debug build with STACKLESS and with thread support and run the test suites.
  5. Rerun the test suites with option '-R:'. Takes a lot of time. You must not get failures inthe Stackless test suite. Failures in thePython test suite must be identical to regular CPython.
  6. Compile a regular build with STACKLESS and with thread support and run the test suites.You must not get failures in the Stackless test suite. Failures in thePython test suite must be identical to regular CPython.

Prepare the release

  1. Build documentation for the tip of the branch on readthedocs.org. Sometimes readthedocs.org changesthe build environment and we must update our configuration file.readthedocs.yaml accordingly. See issue #259, #252 and #210 for examples.
  2. Update Stackless/changelog.txt: add the release date, add missing changes.
  3. Tag the release.
  4. Push to github.
  5. Generate a tarball using Anselm's zip archive generation script instackless/Stackless/Tools/create_source_archive.sh. See below for details.
  6. Upload to stackless.com/binaries/.
  7. Find someone to generate the 32 & 64 bit msi installers. Anselm can do that.
  8. Find someone to generate the MacOS installer. Do not block on this step if not possible.
  9. Build Stackless for Conda
  10. Announce: update thedownload page andarchived downloads page.

Details

How to Create a Stackless Python Source Code Archive

Unfortunately it is not enough to simply rungit archive .... The reason is, that the archive contains afew generated files together with their source files:

  • Include/Python-ast.h
  • Python/Python-ast.c

Sources are inParser/.

Building theses files requires Python itself; a classical chicken and eggs problem.Therefore it is essential that the timestamps of generated files are newer that thetimestamps of their sources after unpacking the source archive.This requires not only to touch generated files prior to packaging but also to control the orderof archive members.

Use the scriptstackless/Stackless/Tools/create_source_archive.sh to create a source archive.

How to Compile for Windows - v3.5.x and newer

First make sure that you can compile Stackless Python. Follow the instructions in PCBuild\readme.txt. Then build a release. Follow the instructions in Tools\msi\README.txt. (Make sure, "py" executes a python 3.6, that is writeableby you. And set the environment variables PYTHON and SPHINXBUILD.) Clean your sandbox and run:

> cd Tools\msi> buildrelease.bat --skip-nuget

Then test the installers in PCbuild\amd64\en-us and PCbuild\win32\en-us. If they are OK, upload them. Log into stackless.com and create the version-directory /var/www/stackless/binaries/MSI/$VERSION_NUMBER. VERSION_NUMBER is something like "3.5.4". Then add your ssh-key for stackless.com to Pageant, make sure that the commandgpg2 -bauses the intended signing-key (hint: create a copy of~/.gnupg, set the environment variableGNUPGHOME to the copy and edit%GNUPGHOME%\\gpg.conf) and run:

> uploadrelease.bat --host stackless.com --user root --target /var/www/stackless/binaries/MSI --skip-purge

How to Compile for Windows X64 (2.7 and pre 3.5)

The general rule is to follow the documentation. But there are a few obstacles.

  1. After fetchingopenssl the modules ssl and hashlib fail to build.

    Solution:del externals\openssl-*\ms\nt64.mak and restart the build.

  2. The debug build fails, because the debug C-runtimemsvcrXXd.dll is missing.(Could happen for 32bit builds too, but is less likely).

    Solution: install the appropriate assembly or copy the lib and the manifest into the directory with thepython executable.

  3. The build with STACKLESS_OFF fails, because the assembly fileStackless\platf\switch_x64_masm.asm refersundefined symbols.

    Solution: remove the content of the fileStackless\platf\switch_x64_masm.asm except for the finalENDstatement. (This assembly file does not get processed by CPP. Therefore the CPP macro STACKLESS_OFF does notaffect the assembler.)

How to build Stackless for Conda

SeeBuild Stackless for Conda.

Clone this wiki locally


[8]ページ先頭

©2009-2025 Movatter.jp