Thank you for considering contributing to the Emergent project! We value your input and collaboration to make this package better for everyone. Below are the guidelines to help you get started and ensure smooth contributions.
- Fork the Repository: Start by forking the repository to your GitHub account here.
- Clone the Repository: Clone your forked repository to your local machine:
git clone https://github.com/<your-username>/emergent.git
- Install Dependencies: Install the required dependencies in a virtual environment:
pip install -r requirements.txt
- Create a new branch for your work:
git checkout -b <your-github-username>/<your-feature-name>
- Write clean, modular code. Use meaningful variable and function names. It may be useful to review PEP 8 guidelines for writing Python code.
- Commit your changes. Write clear, concise commit messages, such as:
git commit -m "Add feature: Implemented XYZ"
- Push Your Branch:
git push origin <your-github-username>/<your-feature-name>
- Open a Pull Request:
- Go to the original repository on GitHub.
- Open a pull request (PR) from your branch here. If you forked the repo, you will need to select the compare across forks option.
- Provide a detailed description of the changes and their purpose. We may provide feedback or request changes before merging.
Documentation is essential for both developers working on the emergent
codebase and users of the package.
Internal documentation should be located in close proximity to the code in docstrings and module README files, while external user-facing documentation should be located in the docs
directory.
- Docstrings: Include detailed docstrings for all public classes, methods, and functions:
def example_function(param1, param2): """ This function demonstrates an example. Args: param1 (int): Description of param1. param2 (str): Description of param2. Returns: bool: True if successful, False otherwise. Notes: Additional internal details for developers. """ pass
- README Files in Subdirectories: When needed, include a
README.md
file in directories for more detailed documentation about the code within.
- Location: All user-facing documentation resides in the
docs/
directory. - Format: Use Markdown (
.md
) for all documents unless otherwise specified. - Organization: Ensure documentation is placed in the appropriate section, e.g., installation instructions in
installation.md
and usage examples inusage.md
. - Content Standards:
- Use simple, jargon-free language.
- Include code examples whenever possible.
- Provide clear explanations of all features and APIs.
- Update the appropriate files (either alongside code in
src/
or in thedocs/
directory). - Use consistent formatting and adhere to existing styles.
- If you add a new feature, include it in both internal and external documentation as appropriate.
Thank you for contributing! Your efforts make Emergent a better tool for everyone. 🚀