Feature Workflow¶
The overall workflow depends on the extent of the feature being added. This outline covers how to add a completely new feature to the library. However, depending on your situation some of the steps may be skipped, if in doubt, please start a discussion in the GitHub Discussions.
Full Workflow¶
The overall workflow for adding a new feature to the library is as follows:
graph TD
A[Feature Proposal] --> B[Add Theory]
B --> C[Add Functions]
C --> E[Add Class]
C <--> D[Add Unit Tests]
D <--> E[Add Class]
E --> F[Add to __init__]
F --> G[Add Examples]
G --> H((End))
Feature Proposal: Create a new discussion in the GitHub Discussions to propose your vision and goals.
- Include a description of the feature, its purpose, and how it fits into the library.
- Add manuscripts or references to contextualize the feature and equations to implement.
- Discuss the feature with the community to gather feedback and suggestions.
- Get the okay from the maintainer(s) to proceed with the implementation.
- Add Theory: Write the theory behind the feature.
- Add Functions: Write the functions that implement the feature.
- Add Unit Tests: Write unit tests to ensure the function works as intended.
- Add Class: Write the class that implements the functions.
- Add Unit Tests: Write unit tests for the class to ensure it works as intended.
- Add to init: Add the new functions/class to the
__init__.pyfile to make it accessible from the package. - Add Examples: Write examples to demonstrate the feature.
Note: Each step would be one or more issues, e.g., one for the theory, 1+ for the functions, etc.