First off, thank you for considering contributing! Your help is appreciated. These are guidelines to help you get started.
- Fork and Clone: Fork the repository and clone it locally.
- Set up Environment: This project uses Docker Compose for local development. Ensure you have Docker installed.
This will start the frontend (React) on
docker-compose up --build
http://localhost:3000and the backend (FastAPI) onhttp://localhost:8000. - Install Linters (Locally, optional if primarily using Docker for linting):
- Backend (Python):
pip install black flake8(preferably in a virtual environment). - Frontend (JavaScript/React):
npm installin themy-drive-appdirectory should set up ESLint if configured inpackage.json.
- Backend (Python):
- Create feature branches from the
main(ordevelopif it exists) branch. Example:feature/my-cool-featureorfix/login-bug. - Ensure
mainalways reflects a stable, deployable state.
- Code Style:
- Backend (Python): Follow PEP 8. Use Black for auto-formatting and Flake8 for linting. Configuration for these tools will be added to the project (e.g.,
pyproject.toml). - Frontend (React/JS): Follow the existing code style. ESLint and Prettier (or similar) will be configured to enforce consistency.
- Backend (Python): Follow PEP 8. Use Black for auto-formatting and Flake8 for linting. Configuration for these tools will be added to the project (e.g.,
- Commit Messages: Aim for clear and descriptive commit messages. Consider using Conventional Commits for a structured approach. Example:
feat: Add file renaming functionality fix: Correct error handling in file download docs: Update ARCHITECTURE.md with new component details - Testing:
- Write tests for new functionality. (Details on testing frameworks and execution to be added once fully set up).
- Ensure all existing tests pass before submitting a PR.
- Create a PR: Push your feature branch to your fork and open a PR against the
main(ordevelop) branch of the upstream repository. - Title and Description: Use a clear and descriptive title for your PR. In the description, explain the changes you've made and reference any relevant issues.
- Code Review: At least one other developer should review and approve the PR. Address any feedback or comments.
- Merging: Once approved and all checks pass, the PR can be merged.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. (A formal CODE_OF_CONDUCT.md file would be added for a public project). For now, please be respectful and constructive in all interactions.
Happy coding!