forked from pymc-devs/pymc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DEVELOPERS.txt
85 lines (47 loc) · 2.59 KB
/
DEVELOPERS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
~~~~~~~~~~~~~~~~~~~~~
Developer Cheat Sheet
~~~~~~~~~~~~~~~~~~~~~
The setup.py file
~~~~~~~~~~~~~~~~~
The setup.py script describes how to build the software, and what is
needed to build the software is also what is included in the source
distribution.
To include other files, such as documentation, specify the names or
pattern in :file:`MANIFEST.in`.
Before uploading a package to PyPi, make sure you have the correct version
number defined in setup.py.
Creating source and binary distributions:
* Source::
python setup.py sdist --format=zip
* Windows::
python setup.py bdist_wininst
* POSIX::
python setup.py bdist
To upload to PyPi::
python setup.py sdist upload
python setup.py bdist_wininst upload
To simply change the information about the package on the PyPi page (as defined in setup.py)::
python setup.py register
To upload to GoogleCode download section::
python setup.py upload2google --src (or --windows)
To tag the 2.1.1 release::
svn cp https://pymc.googlecode.com/svn/trunk \
https://pymc.googlecode.com/svn/tags/2.1.1 \
-m "Tagging the 2.1.1 release."
Conventions:
* alpha release (a) -- Not everything is implemented, this is generally for internal testers. PyMC is not likely to need alpha releases any time soon.
* beta release (b) -- Everything is implemented, and the code is released to experienced users.
* release candidate (rc1) -- Released to a wider audience to make sure there are no installation issues and tests pass on more platforms than those used by the devs.
* Major release (2.0) -- Release where some API breaking is allowed.
* Minor release (2.1) -- Release introducing new features, but no API breaks.
* Bug fix release (2.1.1) -- Duh.
Buildind the docs
~~~~~~~~~~~~~~~~~
The docs are currently written in LaTeX and are stored in the docs/ directory. Some of the files (README.tex, INSTALL.tex and database.tex) are automatically generated from README.txt, INSTALL.txt and pymc/database/README.txt using rst2latex. The build process is coded in builddocs and is quite obfuscated. The plan is to move the documentation to Sphinx, since this is fast becoming the standard for Python projects. This will simplify synchronising docstrings and the documentation.
Trunk stability
~~~~~~~~~~~~~~~
The trunk/ should always be stable; meaning that it should pass the test
suite at all time. This means developers should always run pymc.test()
before committing their changes. If a change breaks something that was
not covered by the test suite, then it's a good idea to write a
regression test to make sure that doesn't happen again.