If you work on a development project with the intention of making it publicly
available through an official GENIE release, you need a GENIE incubator project.
This page explains how to engage with the GENIE development process.
What is the GENIE incubator?
The
Incubator is where all actual work above a complexity threshold takes place.
It consists of a series of
incubator projects.
Incubator projects are in-house development activities or community development efforts
overseen by the GENIE scientific and technical leadership. An incubator project is the
unique route for inclusion of physics or software developments into GENIE product releases.
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.
Incubator project phases
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.
Phase 0: Launch
The process starts with the
identification of a GENIE development need,
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.
During this phase we make sure that each project has:
- Fully defined, agreed and documented scope and milestones.
- Fully defined, agreed and documented requirements, including physics validation,
tuning, software engineering, computational efficiency and documentation ones, as appropriate.
- A clear reporting line, and a plan for collaboration reviews
encompassing both physics and technical aspects of work.
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 solicit community contributions.
Phase 1: R&D
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.
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.
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
Graduation phase.
Phase 2: Graduation
Upon receiving a request for a project graduation,
GENIE leaders
confirm that the project meets its agreed goals and,
on this condition,
launch a formal final review.
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:
- Clean and well-documented code.
- Validation programs, with sufficient documentation
that they can be run by any member of the GENIE Collaboration.
- Archive of theorist communication (including original codes).
- 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.
The reviewers take into account the agreed scope and requirements and give special emphasis,
as appropriate, on:
- correctness and performance against previously agreed validation criteria,
- robustness and use of sound software enginnering practices, and
- sufficient documentation in various forms.
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.
Phase 3: Integration
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.
Additional development may commence during the integration phase.
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.
Upon completion of the above process, and with the agreement of GENIE leadership,
the improved work is merged into release candidate branch.
Current incubator projects
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
GENIE releases.
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.
Following the release of GENIE v3.2.0 in February 2022, the status and tasks
of new GENIE incubator projects is recorded in the
projects page of the GENIE github organisation.