nrel-spa-dart/.github/wiki/CONTRIBUTING.md

1.7 KiB

Contributing to nrel-spa-dart

Thanks for taking the time to contribute.

Getting started

  1. Fork the repository and clone your fork.
  2. Install the Dart SDK (stable channel): dart.dev/get-dart
  3. Install dependencies: dart pub get
  4. Run the tests: dart test

Reporting bugs

Open a GitHub issue with:

  • A minimal reproducible example
  • The actual output and the expected output
  • Your Dart SDK version (dart --version)
  • Your operating system

Suggesting enhancements

Open a GitHub issue before writing code. Describe the use case and the proposed API. Algorithm changes require a reference to the relevant paper or standard.

Pull requests

  1. Create a feature branch from main.
  2. Keep changes focused. One feature or bug fix per PR.
  3. Add or update tests for any changed behavior.
  4. Run dart analyze and confirm zero issues.
  5. Run dart format lib/ test/ before committing.
  6. Update the CHANGELOG.md under ## [Unreleased] with a brief description.
  7. Open the PR with a clear title and description.

Code style

Follow standard Dart conventions. The project uses dart format with default settings. Lint rules are defined in analysis_options.yaml and inherit from the lints package.

Comments should explain why, not what. Algorithm steps should reference the equation number from Reda & Andreas (2004).

Algorithm changes

This package implements the NREL Solar Position Algorithm exactly as specified in NREL/TP-560-34302. Proposed deviations from the paper require strong justification and a test against the validation dataset from the paper.

License

By contributing, you agree that your contributions will be licensed under the MIT License.