-
Notifications
You must be signed in to change notification settings - Fork 1
/
incubator.html
214 lines (165 loc) · 7.66 KB
/
incubator.html
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<!--#include FILE="./header.inc"-->
<body>
<!--#include FILE="./navigation.inc"-->
<div id="MainIn2ColumnPage">
<div CLASS="clsInsidePageHeader"> GENIE Incubator</div>
<br />
<div id="InsidePageMainText">
<div id="Note">
If you work on a development project with the intention of making it publicly
available through an official GENIE release, you need a <b>GENIE incubator project</b>.
This page explains <b>how to engage with the GENIE development process</b>.
</div>
<br/>
<h2>What is the GENIE incubator?</h2>
The <em>Incubator</em> is where all actual work above a complexity threshold takes place.
It consists of a series of <em>incubator projects</em>.
<br />
<br />
Incubator projects are in-house development activities or community development efforts
overseen by the GENIE scientific and technical leadership. An incubator project is the
<b>unique route for inclusion of physics or software developments into GENIE product releases</b>.
<br />
<br />
<div id="Note">
Incubator projects may include, but not limited to:
the development of a new physics model,
the improvement of an existing model,
a systematic study,
the tuning of a physics component,
the development of a new tool or the addition of a new feature to an existing tool,
an upgrade of the framework,
an improvement of numerical procedure, or
a documentation improvement.
</div>
<br />
<h2>Incubator project phases</h2>
The process is geared towards fast deployment,
while ensuring that all developments are peer reviewed
and the usual high GENIE standards on
physics correctness, software engineering, computational efficiency and documentation
are maintained.
<h3>Phase 0: Launch</h3>
The process starts with the <b>identification of a GENIE development need</b>,
either by member of the GENIE collaboration or a contributor / member of the community.
Following a consultation with GENIE leaders,
one or more incubator projects may be launched to address the identified GENIE need.
<br />
<br />
During this phase we make sure that each project has:
<ul>
<li> Fully <b>defined, agreed and documented scope and milestones</b>. </li>
<li> Fully <b>defined, agreed and documented requirements</b>, including physics validation,
tuning, software engineering, computational efficiency and documentation ones, as appropriate.
<li> A <b>clear reporting line, and a plan for collaboration reviews</b>
encompassing both physics and technical aspects of work.</li>
</ul>
<br />
<div id="Note">
Note that an incubator project may be launched even if a team of developers is not yet identified.
Such projects, are advertised in the User Forum to <b>solicit community contributions</b>.
</div>
<br />
<h3>Phase 1: R&D</h3>
<img src="./images/etc/incubator.jpg" width="80px" align="left">
This is the main research and development phase, within the previously agreed scope.
Regular updates in GENIE core group meetings are expected, as well as a series of intermediate reviews as agreed.
<br />
<br />
As a result of the experience gained during this phase, the project definition may be altered.
For example, the scope of a development can be reduced, or new requirements can be added.
This needs to be agreed both by the developer team and the GENIE leadership.
<br />
<br />
The developers of a project that achieved its agreed goal meeting its agreed requirements
may request the graduation of that project and its inclusion within a GENIE product release.
This initiates the <em>Graduation</em> phase.
<br />
<br />
<h3>Phase 2: Graduation</h3>
<img src="./images/etc/incubator_graduated.jpg" width="80px" align="left">
Upon receiving a request for a project graduation,
GENIE leaders <b>confirm that the project meets its agreed goals</b> and,
on this condition, <b>launch a formal final review</b>.
<br />
<br />
Reviews take place during video or face-to-face meetings.
They are open to all members of the GENIE Collaboration and selected, invited external participants.
The reviewed material which is made available well in advance include,
as appropriate given the nature of each project:
<ul>
<li> Clean and well-documented code. </li>
<li> Validation programs, with sufficient documentation
that they can be run by any member of the GENIE Collaboration. </li>
<li> Archive of theorist communication (including original codes). </li>
<li> A short document that
(a) summarizes validation results,
(b) presents a table summarizing code changes,
(c) highlights important assumptions in the code,
(d) makes suggestions for merging or tuning the model in the future, and
(e) makes suggestions for systematic error assignment for the model.
Note that the above list is not exhaustive or definitive, but is meant to serve as a guide.
</li>
</ul>
<br />
The reviewers take into account the agreed scope and requirements and give special emphasis,
as appropriate, on:
<ul>
<li> correctness and performance against previously agreed validation criteria,
<li> robustness and use of sound software enginnering practices, and
<li> sufficient documentation in various forms.
</ul>
All concerns raised during the review, need to be addressed before the project is allowed to graduate.
If major concerns are raised, one or more follow up reviews are scheduled.
<br />
<br />
<h3>Phase 3: Integration</h3>
Typically, the integration phase is handled by members of the core GENIE development team.
The new code is merged into the master version of the corresponding GENIE product and the validation procedure is repeated.
<br />
<br />
Additional development may commence during the integration phase.
<br />
<br />
<div id="Note">
In some instances, work may commence to bridge the gap between the requirements agreed with the
project developers and the actual requirements for inclusion in an official GENIE product release.
This may include the construction and tuning of a broader comprehensive physics model using a new development,
re-factorisations and improvement of interfaces that simplify integration of a new development,
or improvements of the computational efficiency.
Event generator development requires a unique blend of physics, programming and numerical computing skills,
and the expertise of the core GENIE team is in high demand for pushing some of the more complex projects to completion.
If the necessary work is judged to be of a considerable complexity, requiring more research & development
and necessitating peer reviews, new incubator projects are launched.
</div>
<br />
Upon completion of the above process, and with the agreement of GENIE leadership,
the improved work is merged into release candidate branch.
<h2>Current incubator projects</h2>
<div id="Note">
Many dozens of incubator projects,
several of which with strong community support,
were successfully delivered since the GENIE incubator was launched in 2015,
shaping the content of recent <A href="http://releases.genie-mc.org" target="_top">GENIE releases</A>.
<br />
<br />
This demonstrates the power of the GENIE incubator development paradigm
whereby community resources are centrally coordinated and supported by the core GENIE group
to deliver well-validated, efficient and fully documented simulations
for the benefit of the entire neutrino community.
</div>
<br />
<br />
Following the release of GENIE v3.2.0 in February 2022, the status and tasks
of new GENIE incubator projects is recorded in the
<A href="https://github.com/orgs/GENIE-MC/projects?type=beta" target="_top">
<b>projects page of the GENIE github organisation</b><A>.
<br />
<br />
</div>
</div> <!-- main -->
<!--#include FILE="./footer.inc"-->
</body>
</html>