We love your input! We want to make contributing to Gurubase as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
master
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
We use VSCode devcontainers for development. This ensures a consistent development environment for all contributors.
cd src/gurubase-frontend
# Install dependencies
yarn install
# Run in development mode
yarn dev-selfhosted
The backend development environment is configured using VSCode devcontainers. To get started:
- Install VSCode and the "Remote - Containers" extension
- Open the project in VSCode
- When prompted, click "Reopen in Container" or run the "Remote-Containers: Reopen in Container" command
- The container will be built and configured automatically
Once inside the container:
cd src/gurubase-backend/backend
bash migrate_runserver.sh
- Update the README.md with details of changes to the interface, if applicable.
- Update the CHANGELOG.md with a note describing your changes.
- The PR will be merged once you have the sign-off of at least one other developer.
- Use ESLint and Prettier configurations provided in the project
- Follow React best practices and hooks guidelines
- Use functional components
- Implement proper TypeScript types
- Follow the existing component structure
- Follow PEP 8 style guide
- Use Django's coding style
- Write docstrings for all functions and classes
- Keep functions small and focused
- Use type hints where possible
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
By contributing, you agree that your contributions will be licensed under its Apache License 2.0.