This PEP describes the Python 2.0 release schedule, tracking thestatus and ownership of the major new features, summarizes discussionsheld in mailing list forums, and provides URLs for furtherinformation, patches, and other outstanding issues. The CVS revisionhistory of this file contains the definitive historical record.
[revised 5 Oct 2000]
We believe that release candidate 1 will fix all known bugs that weintend to fix for the 2.0 final release. This release should be a bitmore stable than the previous betas. We would like to see even morewidespread testing before the final release, so we are producing thisrelease candidate. The final release will be exactly the same unlessany show-stopping (or brown bag) bugs are found by testers of therelease candidate.
Use good sense when committing changes. You should know what we meanby good sense or we wouldn’t have given you commit privileges <0.5wink>. Some specific examples of good sense include:
Any significant new feature must be described in a PEP and approvedbefore it is checked in.
Any significant code addition, such as a new module or large patch,must include test cases for the regression test and documentation. Apatch should not be checked in until the tests and documentation areready.
If you fix a bug, you should write a test case that would have caughtthe bug.
If you commit a patch from the SF Patch Manager or fix a bug from theJitterbug database, be sure to reference the patch/bug number in theCVS log message. Also be sure to change the status in the patchmanager or bug database (if you have access to the bug database).
It is not acceptable for any checked in code to cause the regressiontest to fail. If a checkin causes a failure, it must be fixed within24 hours or it will be backed out.
All contributed C code must be ANSI C. If possible check it with twodifferent compilers, e.g. gcc and MSVC.
All contributed Python code must follow Guido’s Python style guide.http://www.python.org/doc/essays/styleguide.html
It is understood that any code contributed will be released under anOpen Source license. Do not contribute code if it can’t be releasedthis way.
We need to resolve errors in the regression test suite quickly.Changes should not be committed to the CVS tree unless the regressiontest runs cleanly with the changes applied. If it fails, there may bebugs lurking in the code. (There may be bugs anyway, but that’sanother matter.) If the test cases are known to fail, they serve nouseful purpose.
testcaseplatformdatereported------------------------------test_mmapWinME03-Sep-2000Windows2b1p2prelease[04-Sep-2000timreportedbyAudunS.Rundemailto:audun@mindspring.comthemmapconstructorfailsw/WindowsError:[Errno6]ThehandleisinvalidsincetherearenoreportsofthisfailingonotherflavorsofWindows,thislooksliketobeanMEbug]
Decide whether cycle-gc should be enabled by default.
Resolve compatibility issues between core xml package and the XML-SIGXML package.
Update Tools/compiler so that it is compatible with listcomprehensions, import as, and any other new language features.
Improve code coverage of test suite.
Finish writing the PEPs for the features that went out with 2.0b1(!sad, but realistic – we’ll get better with practice).
Major effort to whittle the bug database down to size. I’ve (tim)seen this before: if you can keep all the open bugs fitting on onescreen, people will generally keep it that way. But let it slobberover a screen for a month, & it just goes to hell (no “visibleprogress” indeed!).
If you find a test bouncing between this section and the previous one,the code it’s testing is in trouble!
test case platform date reported--------- -------- -------------test_fork1 Linux 26-Jul-2000 [28-aug-2000 fixed by cgw; solution is to create copies of lock in child process] [19-Aug-2000 tim Charles Waldman whipped up a patch to give child processes a new "global lock": http://sourceforge.net/patch/?func=detailpatch&patch_id=101226&group_id=5470 While this doesn't appear to address the symptoms we *saw*, it *does* so far appear to be fixing the failing cases anyway ]test_parser all 22-Aug-2000test_posixpath all 22-Aug-2000test_popen2 Win32 26-Jul-2000 [31-Aug-2000 tim This died again, but for an entirely different reason: it uses a dict to map file pointers to process handles, and calls a dict access function during popen.close(). But .close releases threads, which left the internal popen code accessing the dict without a valid thread state. The dict implementation changed so that's no longer accepted. Fixed by creating a temporary thread state in the guts of popen's close routine, and grabbing the global lock with it for the duration] [20-Aug-2000 tim changed the popen2.py _test function to use the "more" cmd when os.name == "nt". This makes test_popen2 pass under Win98SE. HOWEVER, the Win98 "more" invents a leading newline out of thin air, and I'm not sure that the other Windows flavors of "more" also do that. So, somebody please try under other Windows flavors! ] [still fails 15-Aug-2000 for me, on Win98 - tim test test_popen2 crashed -- exceptions.AssertionError : The problem is that the test uses "cat", but there is no such thing under Windows (unless you install it). So it's the test that's broken here, not (necessarily) the code. ]test_winreg Win32 26-Jul-2000 [works 15-Aug-2000 for me, on Win98 - tim]test_mmap Win32 26-Jul-2000 [believe that was fixed by Mark H.] [works 15-Aug-2000 for me, on Win98 - tim]test_longexp Win98+? 15-Aug-2000 [fails in release build, passes in release build under verbose mode but doesn't look like it should pass, passes in debug build, passes in debug build under verbose mode and looks like it should pass ] [18-Aug-2000, tim: can't reproduce, and nobody else saw it. I believe there *is* a subtle bug in regrtest.py when using -v, and I'll pursue that, but can't provoke anything wrong with test_longexp anymore; eyeballing Fred's changes didn't turn up a suspect either 19-Aug-2000, tim: the "subtle bug" in regrtest.py -v is actually a feature: -v masks *some* kinds of failures, since it doesn't compare test output with the canned output; this is what makes it say "test passed" even in some cases where the test fails without -v ]test_winreg2 Win32 26-Jul-2000 [20-Aug-2000 tim - the test has been removed from the project] [19-Aug-2000 tim This test will never work on Win98, because it's looking for a part of registry that doesn't exist under W98. The module (winreg.py) and this test case will be removed before 2.0 for other reasons, though. ] [still fails 15-Aug-2000 for me, on Win98 - tim test test_winreg2 failed -- Writing: 'Test Failed: testHives', expected: 'HKEY_PERFORMANCE_DATA\012' ]
[4-Sep-2000 guido: Fredrik finished this on 1-Sep]* PyErr_Format - Fredrik Lundh Make this function safe from buffer overflows.[4-Sep-2000 guido: Fred has added popen2, popen3 on 28-Sep]Add popen2 support for Linux -- Fred Drake[4-Sep-2000 guido: done on 1-Sep]Deal with buffering problem with SocketServer[04-Sep-2000 tim: done; installer runs; w9xpopen not an issue][01-Sep-2000 tim: make a prerelease available]Windows ME: Don't know anything about it. Will the installereven run? Does it need the w9xpopen hack?[04-Sep-2000 tim: done; tested on several Windows flavors now][01-Sep-2000 tim: completed but untested except on Win98SE]Windows installer: If HKLM isn't writable, back off to HKCU (soPython can be installed on NT & 2000 without admin privileges).[01-Sep-200 tim - as Guido said, runtime code in posixmodule.c doesn't call this on NT/2000, so no need to avoid installing it everywhere. Added code to the installer *to* install it, though.]Windows installer: Install w9xpopen.exe only under Win95/98.[23-Aug-2000 jeremy - tim reports "completed recently"]Windows: Look for registry info in HKCU before HKLM - MarkHammond.[20-Aug-2000 tim - done]Remove winreg.py and test_winreg2.py. Paul Prescod (the author)now wants to make a registry API more like the MS .NET API. Unclearwhether that can be done in time for 2.0, but, regardless, if welet winreg.py out the door we'll be stuck with it forever, and noteven Paul wants it anymore.[24-Aug-2000 tim+guido - done]Win98 Guido: popen is hanging on Guido, and even freezing thewhole machine. Was caused by Norton Antivirus 2000 (6.10.20) onWindows 9x. Resolution: disable virus protection.
2**16 - Charles Waldman SF Patch100893...*N) when N != 1. This makes the repr() morehuman readable while making it do what reprs are advertised asdoing. It also makes the xrange objects obvious when working in theinteractive interpreter.http://starship.python.net/~vlad/lineno/ for (working at the time)patches
Discussions on python-dev:
Source:https://github.com/python/peps/blob/main/peps/pep-0200.rst
Last modified:2025-02-01 08:59:27 GMT