How to contribute to AGNI

Bug reporting

  • Ensure the bug was not already reported by searching on GitHub under Issues.

  • If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.

  • For more general information on submitting a bug report, visit this page.

Bug fixing

  • Open a new GitHub pull request (PR) with the patch.

  • Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.

  • Before submitting, please ensure your changes are consistent with the existing codebase. These can also be viewed in the API reference guide.

New features

  • Suggest your change on the issues page and start writing code.

Coding style

  • Indentation uses 4 spaces, no tabs.
  • Function names should be lowercase, with words separated by underscores .
  • Lines should aim to have a length of no more than 92 characters.
  • All functions should have docstrings, ideally with Arguments and Returns listed.
  • More comments are always better, even if they seem redundant.
  • Use type hinting where possible.
  • Print statements should be made through the logger where possible.
  • The core package code should not contain global variables, except in the phys module.

Testing

When contributing code changes, please:

  • Run the test suite to ensure your changes don't break existing functionality
  • Add tests for new features or bug fixes
  • Aim for >80% line coverage for new utility functions
  • Keep tests fast (avoid expensive setup/teardown when possible)

See the Testing Documentation for detailed information on:

  • Running tests locally
  • Generating coverage reports
  • Adding new tests
  • Test design principles

Queries and questions

Open source

AGNI is free, libre, and open source software. I encourage your contributions and suggestions.

Thanks, -Harrison