We appreciate your interest in contributing! Below are guidelines to help ensure a smooth collaboration.
-
Fork the repo on GitHub.
-
Clone your fork locally:
git clone https://github.com/steven-reyes/code-analyzer.git
-
Create a feature branch:
git checkout -b feature/awesome-update
-
Set up your environment:
- Install Python dependencies:
Or, if using Conda:
pip install -r requirements.txt
conda env create -f environment.yml conda activate code-analyzer-env
- Install Node dependencies (if contributing to the front-end):
npm install
- Install Python dependencies:
-
Run pre-commit hooks (if configured):
pre-commit install
-
Lint and test your changes:
- Python:
flake8 . # Python lint black . # Python format pytest --maxfail=1 -v # Python tests
- JavaScript/Node.js:
npm run lint # JS lint npm run test # JS tests
- Python:
-
Focus your commits:
- Keep commits focused and atomic.
- Use clear and descriptive commit messages.
-
Add or update tests and documentation:
- Ensure that your changes include adequate test coverage.
- Update related documentation (e.g.,
README.md
,USER_MANUAL.md
, etc.).
-
Fix bugs by referencing issue numbers (if applicable):
- Include a reference to the issue in your commit message or PR description, e.g.,
Fixes #123
.
- Include a reference to the issue in your commit message or PR description, e.g.,
-
Push your branch to GitHub:
git push origin feature/awesome-update
-
Open a PR against the
main
branch in our repository. -
Fill out the PR template (if available) with details such as:
- What changes were made?
- Why are these changes needed?
- Are there any open concerns or questions?
-
Python:
- Code is formatted using Black and linted with Flake8 or Pylint.
- Follow PEP 8 guidelines for Python code.
-
JavaScript/Node.js:
- Code is formatted using Prettier and linted with ESLint.
- Follow existing patterns and naming conventions.
- For major changes, open an issue first to discuss your approach.
- For security issues, refer to
SECURITY.md
.
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for your contribution!