Helsinki Python Sprint
2014-08-02 / 2014-08-03
#python-dev
#python-infra
Both on irc.freenode.net
http://bugs.python.org/issue?@template=stats
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
Release | Status |
---|---|
3.5 (default) | development |
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):
See https://docs.python.org/devguide/committing.html#clones-setup
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://hg@hg.python.org/cpython
Update:
Compile:
You need to run make only if C files change.
Python supports incremental compilation.
For bugs:
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.
Examples:
Use ./python -m test.regrtest on Python 2.
Create a patch:
Apply it:
You can also try patches uploaded on the tracker and:
Most likely someone will ask you to fix something in the patch
Remember to:
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.
Questions?
Read the new devguide!