1.4 Python Development and Versions
Python is developed
by the Python Labs of Zope Corporation, which consists of half a
dozen core developers headed by Guido van Rossum,
Python's inventor, architect, and Benevolent
Dictator For Life (BDFL). This title means that Guido has the final
say on what becomes part of the Python language and standard
libraries.
Python intellectual property is vested in the Python Software
Foundation (PSF), a non-profit corporation devoted to promoting
Python, with dozens of individual members (nominated for their
contributions to Python, and including all of the Python core team)
and corporate sponsors. Most PSF members have commit privileges to
Python's CVS tree on SourceForge
(http://sf.net/cvs/?group_id=5470), and most
Python CVS committers are members of the PSF.
Proposed changes to
Python are detailed in public documents called Python Enhancement
Proposals (PEPs), debated (and sometimes advisorily voted upon) by
Python developers and the wider Python community, and finally
approved or rejected by Guido, who takes debate and votes into
account but is not bound by them. Hundreds of people contribute to
Python development, through PEPs, discussion, bug reports, and
proposed patches to Python sources, libraries, and documentation.
Python
Labs releases minor versions of Python (2.x, for
growing values of x) about once or twice a year.
2.0 was released in October 2000, 2.1 in April 2001, and 2.2 in
December 2001. Python 2.3 is scheduled to be released in early 2003.
Each minor release adds features that make Python more powerful and
simpler to use, but also takes care to maintain backward
compatibility. One day there will be a Python 3.0 release, which will
be allowed to break backward compatibility to some extent. However,
that release is still several years in the future, and no specific
plans for it currently exist.
Each minor release 2.x starts with alpha
releases, tagged as 2.xa0,
2.xa1, and so on. After the alphas comes at
least one beta release, 2.xb1, and after the
betas at least one release candidate, 2.xrc1. By
the time the final release of 2.x comes out, it
is always solid, reliable, and well tested on all major platforms.
Any Python programmer can help ensure this by downloading alphas,
betas, and release candidates, trying them out on existing Python
programs, and filing bug reports for any problem that might emerge.
Once a minor release is out, most of the attention of the core team
switches to the next minor release. However, a minor release normally
gets successive point releases (i.e., 2.x.1,
2.x.2 and so on) that add no functionality but
can fix errors, port Python to new platforms, enhance documentation,
and add optimizations and tools.
The Python Business Forum
(http://python-in-business.org) is an
international society of companies that base their business on
Python. The Forum, among other activities, tests and maintains
special Python releases (known as
"Python-in-a-tie") that Python Labs
certifies for industrial-strength
robustness.
This book focuses on Python 2.2 (and all its point releases), the
most stable and widespread release at the time of this writing, and
the basis of the current
"Python-in-a-tie" efforts. It also
mentions a few changes scheduled to appear in Python 2.3, and
documents the parts of the language and libraries that are new in 2.2
and thus cannot be used with the previous 2.1 release. Python 2.1 is
still important because it's used in widely deployed
Zope 2.x releases (the current Zope releases, 3.x, rely on Python 2.2
and later). Also, at the time of this writing, the released version
of Jython supports only Python 2.1, not yet Python 2.2.
Among older releases of Python, the only one with a large installed
base is 1.5.2, which is part of most installations of Red Hat Linux
Releases 6.x and 7.x. However, this book does not address Python
1.5.2, which is over three years old and should not be used for any
new development. Python's backward compatibility is
good: current versions of Python are able to properly process just
about any valid Python 1.5.2
program.
|