We welcome contributions from everyone to help improve and expand PLACEHOLDER. This document outlines the process for contributing to the project.
To contribute to PLACEHOLDER, follow these steps to set up your development environment:
- Clone the repository:
git clone https://github.com/Yale-CompBio/placeholder.git cd placeholder
- Create a Conda environment:
conda create -n placeholder python=3.10 conda activate placeholder
- Install the project in editable mode with development dependencies:
python3 -m pip install --upgrade pip pip install -e .
We strive to maintain clean and consistent code throughout the project. Please adhere to the following guidelines:
- Follow PEP 8 guidelines for Python code.
- Use meaningful variable and function names.
- Write docstrings for functions and classes.
- Keep functions small and focused on a single task.
- Use type hints where appropriate.
We use black
for code formatting. To ensure your code is properly formatted:
- Install black:
pip install black
- Run black on the codebase:
black .
- Create a new branch for your feature or bugfix; feature is for new function; bugfix is for fixing a bug:
git checkout -b feature/your-feature-name
- Make your changes and commit them with clear, concise commit messages.
- Monitor the current conditions and check which files are modified or untracked
git status
- Git add your file
git add schema.py
- Submit your change and commit
git commit -m "message"
- Push your branch to the repository:
git push origin feature/your-feature-name
- Open a pull request against the
main
branch on the website. - Fill out the pull request template (see below).
- Address any feedback or comments from reviewers.
When you open a new pull request, please use the following template:
## Description
### Changes
[Provide a detailed list of the changes made in this PR]
### Design
[Explain the design decisions and architectural changes, if any]
### Example Code
[If applicable, provide example code demonstrating the usage of new features or fixes]
## Related Issue
[Link to the issue this PR addresses, if applicable]
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
## How Has This Been Tested?
[Describe the tests you ran to verify your changes]
## Additional Notes
[Add any additional information or context about the PR here]
Thank you for contributing to PLACEHOLDER!