forked from PythonOptimizers/pysparse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ADMINISTRATA.txt
166 lines (110 loc) · 4.17 KB
/
ADMINISTRATA.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
=============
SVN practices
=============
--------
Branches
--------
Break off for radical refactoring::
$ cd trunk
$ BRANCH=refactoring_etc
$ PYSPARSEROOT=https://pysparse.svn.sourceforge.net/svnroot/pysparse
$ svn copy $PYSPARSEROOT/trunk $PYSPARSEROOT/branches/$BRANCH -m "creating branch for $BRANCH"
$ cd ..
$ svn co $PYSPARSEROOT/branches/$BRANCH
Edit and add to branch::
$ cd $BRANCH
$ emacs ...
$ svn ci -m "refactoring_stage_A"
$ emacs ...
$ svn ci -m "refactoring_stage_B"
Merging changes from trunk to the branch
----------------------------------------
Find the initial (IRN) and latest (LRN) revision numbers from the last
merge from trunk::
$ cd ../trunk
$ svn update
Set ``$LRN`` based on the updated revision of trunk::
$ LRN=...
$ svn log $PYSPARSEROOT/branches/$BRANCH --stop-on-copy
Look for ":samp:`merged trunk changes r{IRN}:{LRN} to {BRANCH}`" or
":samp:`merged log:trunk@{IRN}:{LRN} to source:branches/{BRANCH}`" and set
``IRN`` to :samp:`{LRN}` from the log message, otherwise to the revision at
which the branch was created::
$ IRN=...
Merge updated state of trunk to the branch::
$ cd ../$BRANCH
$ svn merge -r${IRN}:${LRN} $PYSPARSEROOT/trunk
$ svn diff
Resolve any conflicts::
$ python setup.py test
$ svn ci -m "merged log:trunk@${IRN}:${LRN} to source:branches/${BRANCH}@${LRN}"
Refactoring complete: merge branch to the trunk
-----------------------------------------------
First, follow the instructions for
`Merging changes from trunk to the branch`_.
Find the ``HEAD`` revision number::
$ cd trunk
$ svn update
$ HRN=...
Merge the branch ``HEAD`` to trunk::
$ svn merge ${PYSPARSEROOT}/trunk@${HRN} \
${PYSPARSEROOT}/branches/${BRANCH}@${HRN}
$ svn diff
Resolve any conflicts::
$ python setup.py test
$ svn ci -m "merged source:branches/${BRANCH}@${HRN} to source:trunk@${HRN}"
When completely done with the branch::
$ svn delete -m "Refactoring complete. Merged source:branches/${BRANCH} to source:trunk" \
${PYSPARSEROOT}/branches/${BRANCH}
--------
Versions
--------
At point of version release x.y, *on main trunk*::
$ svn copy $PYSPARSEROOT/trunk $PYSPARSEROOT/tags/version-x_y -m "tagging version x.y"
---------
Bug fixes
---------
At the point some fix is made to an old version n.m::
$ BRANCH=version-n_m
$ svn copy $PYSPARSEROOT/tags/version-n_m $PYSPARSEROOT/branches/$BRANCH -m "making branch for version n.m"
$ svn co $PYSPARSEROOT/branches/$BRANCH
Fix the code::
$ cd $BRANCH
$ svn ci -m "fix n.m.q"
$ svn copy $PYSPARSEROOT/branches/$BRANCH $PYSPARSEROOT/tags/version-n_m_q
Find the initial revision number for the branch (``IRN``) and the latest
revision number (``LRN``)::
$ svn log $PYSPARSEROOT/branches/$BRANCH --stop-on-copy
$ IRN=..
$ LRN=...
Now merge n.m.q changes back to main trunk::
$ cd ../trunk
$ svn merge -r${IRN}:${LRN} $PYSPARSEROOT/branches/$BRANCH
$ svn ci -m "merged version n.m.q, source:branches/${BRANCH}@${IRN}:${LRN} to source:trunk@${LRN}"
Make new fix q+1 to n.m::
$ cd ../$BRANCH
Fix the code::
$ svn ci -m "fix version n.m.q+1"
Find the previous revision number for the branch (``PRN``) and the latest
revision number (``LRN``)::
$ svn log $PYSPARSEROOT/branches/$BRANCH --stop-on-copy
$ PRN=..
$ LRN=...
Again, merge n.m.q+1 changes back to main trunk::
$ cd ../trunk
$ svn merge -r${PRN}:${LRN} $PYSPARSEROOT/branches/$BRANCH
$ svn ci -m "merged version n.m.q+1, log:branches/${BRANCH}@${PRN}:${LRN} to source:trunk@${LRN}"
==========================================
Making a Windows Distribution for Pysparse
==========================================
Make sure of the following:
- mingw is installed
- libpython.a is in c:\pythonXX\libs
- libblas.a is in c:\mingw\lib
- liblapack.a is in c:\mingw\lib
- Numeric is installed
If the above is not satisfied implement the Pysparse INSTALL instructions.
Set the PATH to use MINGW's tools.
set PATH=C:\mingw\bin
Build the distribution.
C:\pythonXX\python setup.py build --compiler=mingw32 bdist --format=wininst