Skip to content
iluise edited this page Sep 23, 2024 · 12 revisions

AtmoRep code development guidelines

Meetings:

  • Biweekly code development meetings: 1 every two weeks. Mondays at 13.30
  • Monthly roadmap meetings: 1 per month. Mondays at 14 (before the HClimRep monthly meetings)

General:

All discussion in issues (there is label scientific)

Code guidelines:

  • Please follow the style of the existing code
  • This is largely in agreement with https://google.github.io/styleguide/pyguide.html
  • Pylint and flake8 to enforce the style will be set-up shortly
  • Install currently with setup.py
  • See readme for installation with virtual envs

Git guidelines:

Branches:

  • main: stable version - only maintainers can push on the main and develop branch
  • develop: main development branch. It includes the latest developments (possibly still under testing).

Convention for name branching:

  • Name your branches using the following convention:
  • <username>/<origin-branch>/<short description>
    • Example: iluise/develop/issue_15_fix_dims/

Opening Issues:

  • There should always be an open issue for what you are working on currently
  • Open an issue using the templates (bug, feature etc..)
  • Please mention the issue in all the related pull requests. It helps tracking the developments.
  • Do not close issues by yourself! Simply mark them as solved. The maintainers will take care of closing the issues.

Pull requests:

  • Please use the GitHub templates for opening a pull request. For the moment we are supporting the bug and feature templates.
  • Templates still need to be set-up.
  • Use labels to help the reviewers understand what the PR is about.
  • In the description of the issue please be as descriptive as possible.
  • Reviewers: due to GitHub (free version) restrictions the PR can have only one reviewer. Please tag:
    • Christian Lessig (clessig) for core model related issues
    • Ilaria Luise (iluise) for the evaluation/analysis part
  • Although only one person can be an official reviewer, multiple people can comment. Everyone is encouraged to please verify PRs (we will enforce this otherwise).

Local testing:

  • We are developing a testing interface to validate the code. You can run it with:
pytest -s atmorep/tests/validation_test.py --field temperature --model_id ztsut0mr --strategy BERT

Or (temporary) within the evaluation step by enabling the flag: with_pytest = True

  • Once the CI/CD pipeline will be integrated in GitHub the tests will be automatically ran at each commit

Github projects

  • We will use github projects to structure developments and issues.

Longer term plans:

  • pylint and flake8 to enforce consistent style
  • CI/CD implementation (this will be based on the local testing infra discussed above)
  • toml for project configuration

Code Structure:

This is the technical documentation of the AtmoRep model. Please refer to each Section for details:

Performance:

We have tested the code on different EuroHPC facilities. Please see here.

AtmoRep developers meetings:

AtmoRep roadmap meetings:

Clone this wiki locally