Helsinki Python Sprint
2014-08-02 / 2014-08-03
Both on irc.freenode.net
Whenever someone pushes a change, they:
on different machines/OSes/architectures/python versions
7 named branches in the repo:
"default" will be the next 3.x
development → bug-fix only → security-fix only
|3.4 / 2.7||bug-fix only|
|3.3 / 2.6||security-fix only|
Two parallel lines of development
(3.1 →) 3.2 → default
(2.6 →) 2.7
hg branches to see the list of branches
hg branch to see the current branch
hg up <branchname> to change branch
hg pull to get the latest changesets in the local repo
hg stat to see the changed file in the working copy
hg diff to see the changed code in the working copy
hg ci -m 'message' to save local changes in the repo
hg push to send the committed cset to another repo
Single clone (best for occasional contributors):
Multiple clones (best for committers):
You can work on several different bugs/features at once
The main Python repo is at http://hg.python.org/cpython
read-only hg clone http://hg.python.org/cpython
read-write (for committers) hg clone ssh://email@example.com/cpython
You need to run make only if C files change.
Python supports incremental compilation.
For new features the procedure is the same, but:
The documentation is in Doc/
Runner of the Python test suite. Lives in Lib/test/regrtest.py.
Use ./python -m test.regrtest on Python 2.
Create a patch:
You can also try patches uploaded on the tracker and:
Most likely someone will ask you to fix something in the patch
Developers will usually take care of merging and updating Misc/NEWS.
$ ls --group-directories-first build Misc RISCOS libpython2.7.a python Demo Modules Tools LICENSE python-gdb.py Doc Objects config.log Makefile README Grammar Parser config.status Makefile.pre setup.py Include PC configure Makefile.pre.in Lib PCbuild configure.in pyconfig.h Mac Python install-sh pyconfig.h.in
Contains most of the stdlib
Python modules and packages
Contains the C implementation of the Python objects:
Contains the C implementation of some Python modules:
Python contains the core of CPython.
Include contains the headers (*.h) of the C files in Objects, Modules, and Python.
Contains the ReST sources of the documentation.
Read the new devguide!