We welcome contributions from everyone to help improve and expand BC-Design. This document outlines the process for contributing to the project.
To contribute to BC-Design, follow these steps to set up your development environment:
- Clone the repository:
git clone https://github.com/gersteinlab/BC-Design.git cd BC-Design
- Create a Conda environment:
conda env create -f environment.yml conda activate opencpd
- Install the project in editable mode with development dependencies:
python setup.py develop
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 BC-Design!