Chi-Tech
devman_A1_develcycle.h
Go to the documentation of this file.
1
/**\page DevManDevCycle Development Cycle
2
*
3
\section devman_sec0 Development Cycle
4
5
The development process of ChiTech is taylored for a small team of developers
6
and we will strive to keep to this philosophy as far as possible.
7
We aim to provide stable and reliable releases to users whilst simultaneously
8
keeping the development process fluent.
9
10
\subsection devman_sec0_1 Package update cycle - Primary: August
11
ChiTech releases comprise a packaged archive that represents a reviewed
12
snapshot of the code as determined by the principle developers. Update cycles
13
coincide approximately with U.S. University semesters:\n
14
- No later than end of August and no earlier than end of July.
15
- No later than end of February and no earlier than beginning of January.
16
17
\subsection devman_sec0_2 Development update cycle - Every 2 weeks
18
We as a team are commiting to reviewing Pull Requests (PRs) at a 2 week
19
interval. This means that a collaborator should not have to wait more than
20
two weeks for their pull request to be reviewed. This does not apply to
21
changes requested on previous pull requests which themselves will be
22
considered to be a new 2 week process.
23
\n
24
The basic development process is shown below:
25
26
\image html DevelopmentCycle.png " " width=600px
27
28
The development master branch will only be merged from the master branch of
29
contributor forks. We will not merge PRs from feature branches. Contributors
30
should merge feature branches to their respective master branches before
31
issueing pull requests.
32
\n\n
33
34
<B>Example Pull-Request:</B>\n
35
Monday January 9 a contributor makes a complex PR. The last dedicated PR-review
36
committee sitting was Wednesday January 4. The next dedicated sitting is then
37
Wednesday January 18 (2 weeks later) and therefore if the committee does not
38
find time before that date then the contributor will at maximum have to wait
39
till January 18. If the review fails or requests additional changes then the
40
timer is reset and the maximum wait time is again two weeks.
41
42
<B>Most likely course of action:</B>
43
Most likely the review committee members will start to individually respond
44
to the PR before the big review sitting. The contributor will see GitHub code
45
conversations for committee members which can be resolved on the go as
46
shown below.
47
48
\image html ReviewConversation.png " " width=600px
49
50
51
\subsection devman_sec0_4 Regression tests
52
Before any contributer makes a pull request an <B>\f$\alpha\f$-regression</B>
53
test-suite must be run. This is a regression test suite that can be run on a
54
number of local machine processes (typically on the contributor's personal
55
machine). On a weekly basis we will execute a high performance
56
<B>\f$\beta\f$-regression</B> test-suite. This test-suite comprises high
57
process-count tests necessary to ensure that the scalability of core features
58
remain unaffected. If the \f$\beta\f$-regression fails, all pull requests that
59
were merged after the last successful \f$\beta\f$-regression will be reverted and
60
the contributors notified.
61
62
\subsection devman_sec0_5 Code review criterion
63
64
-# Changes have a clear purpose and are useful.
65
-# The code passes the \f$\alpha\f$-regression tests.
66
-# If appropriate, test cases are added to regression or unit test suites.
67
We will not force unit tests without good cause.
68
-# No memory leaks (checked with valgrind).
69
-# Conforms to the ChiTech style guide.
70
-# No degradation of performance or greatly increased memory usage. This is
71
not a hard rule – in certain circumstances, a performance loss might be
72
acceptable if there are compelling reasons.
73
-# New features/input are documented. <B>Complex mathematical procedures
74
must be accompanied by a whitepaper</B>.
75
-# No unnecessary external software dependencies are introduced. An extensive
76
justification needs to be provided for more dependencies.
77
78
79
\section devman_sec0_6 Documentation quality
80
Our policy on documentation is split into two parts: Code annotation and
81
Technical documentation. It is our mission to create a sustainable modern
82
code for which good quality documentation is essential.
83
84
\subsection devman_sec0_7 Code annotation
85
Code contributions need to be annotated appropriately. There is a strong
86
connection to code-styling but over-all contributors must ensure their code
87
is comprehensible to the principal developers and future contributors. We are
88
not going to enforce specific annotation styles but we do enforce that the
89
<B>annotation must be consistent within large portions of code</B>.
90
\n
91
\n
92
Function/methods need to have `doxygen` documentation at the place of
93
definition. This policy will be <B>strongly</B> enforced for input
94
language (i.e. lua function calls) as this goes into the input reference
95
manual directly.
96
97
\subsection devman_sec0_8 Technical documentation
98
The fundamental mission on technical documentation is to have contributors
99
provide whitepapers. These are latex-documents that fully explain
100
mathematical derivations and implementations and may include pseudo-code
101
that can be reference to by code.
102
*
103
*
104
*
105
*
106
*/
doc
PAGES
ProgrammersManual
ReferenceContent
devman_A1_develcycle.h
Generated by
1.9.3