As much as possible the project will follow an agile approach to software development. The intention is to refactor code in steps, while having working code at each step. For this, tests and mechanisms to run them will be developed and put in place early in the project. Code will be checked against these tests very regularly (continuous integration). The goal of this task is to put in place the environment that will make exchange of code, testing and exchange of information easy.
Where we are
The JEDI project s starting from scratch.
Where we want to go
A flexible and easy to use environment for community development, including:
- Easy to access repositories for source code
- Automated testing environment
- Platform for exchange of information (Confluence and JIRA)
Proposed steps
Step 1: Prepare development environment
Task 1.1: Create repositories for source code (Bitbucket or github)
Task 1.2: Create Confluence space for the project
Task 1.3: Create project in JIRA
What it gives us: Tools to exchange code and information.
Step 2: Prepare GSI reference test cases
Task 2.1: Prepare low resolution GSI test case
Task 2.2: Prepare environment for compiling GSI (docker)
Task 2.3: Make test available to anybody who has access to the source code
What it gives us: Basic test case to compare refactored code against that are easy and quick to run for development and debugging.
Step 3: Educate users about environment
Task 3.1: Train users about collaborative work on source code
Task 3.2: Train users about testing environment
Task 3.3: Train users about working practices
Description of the work: Give enough information for users to use the infrastructure efficiently.
What it gives us: Ability to develop code faster and with more confidence in the result.
Step 4: Develop mode tests
Task 4.1: Define more GSI test cases
Task 4.2: Define test cases for subsets of the GSI
Task 4.3: Define low resolution test cases for FV3
What it gives us: Ability to test more parts of the code independently. Examples for users to develop more tests.
Comments
Development of test cases require involvement from scientists. This task is developing an infrastructure, not a full suite of tests.