-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathHACKING
More file actions
88 lines (68 loc) · 2.71 KB
/
HACKING
File metadata and controls
88 lines (68 loc) · 2.71 KB
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
86
87
88
This document contains some information that is useful when working with the
source code.
Mercurial on Windows
====================
Windows users should use the EOL extension as described here:
<http://mercurial.selenic.com/wiki/EolExtension>.
Coding Guidelines
=================
We try to follow the
[Style Guide for Python Code](http://www.python.org/dev/peps/pep-0008/). Other
guidelines and exceptions to the standard are listed here.
Strings
-------
We use the " character for strings. Not the ' character.
Naming convention for private attributes
----------------------------------------
All methods inside a class that are not supposed to be called outside the class
should be marked private by prefixing it with one underscore.
All member variables should always be considered private but we don't append
any underscores. The preferred way to access a class' variable is to write a
get-method. In general member variables should never be directly accessed
outside a class.
How to make a release
=====================
Feature freeze
--------------
When all features for a major version (x.y) have been implemented in main we
move the development for that version over to stable. In stable we prepare for
the (x.y.0) release and then continue to do bugfix releases (x.y.1, x.y.2, ..)
there.
Features for the next version (x.y+1) can continue to be developed in main.
1. Move main repo to stable repo
1. `cd stable`
2. `hg pull ../main`
3. `hg push`
2. Notify developers of repo change
1. Send email to thetimelineproj-user@lists.sourceforge.net
3. Change versions numbers in main to denote the next version (x.y+1.0)
1. version.py
2. CHANGES
3. Run `python execute-specs.py` to find where else you need to modify
4. Commit and push
Work on stable
--------------
1. Fix bugs
2. Import translations from Launchpad
1. Request download from here (login required)
http://translations.launchpad.net/thetimelineproj/trunk/+translations
2. Run `python import-po-from-launchpad-export.py /path/to/launchpad-export.tar.gz`
3. Upload new pot-file
Create new po-file with the command
scons pot
3. Check that information and version numbers are correct in
1. version.py
2. CHANGES
4. Run `python execute-specs.py` to find possible errors
Last changes on stable
----------------------
1. Update version.py so that DEV=False
1. Commit
2. Run `python release/make-source-release.py`
3. Try running the unzipped release to make a basic check that it works
4. Run `hg tag x.y.z`
After
-----
* Upload source release to SourceForge
* Create binary packages and upload to SourceForge
* Make release announcement with `python release/release-announcer.py`