initial commit
This commit is contained in:
99
CONTRIBUTING.md
Normal file
99
CONTRIBUTING.md
Normal file
@ -0,0 +1,99 @@
|
||||
# Contributing to FastAPI-boilerplate
|
||||
|
||||
Thank you for your interest in contributing to FastAPI-boilerplate! This guide is meant to make it easy for you to get started.
|
||||
Contributions are appreciated, even if just reporting bugs, documenting stuff or answering questions. To contribute with a feature:
|
||||
|
||||
## Setting Up Your Development Environment
|
||||
|
||||
### Cloning the Repository
|
||||
Start by forking and cloning the FastAPI-boilerplate repository:
|
||||
|
||||
1. **Fork the Repository**: Begin by forking the project repository. You can do this by visiting https://github.com/igormagalhaesr/FastAPI-boilerplate and clicking the "Fork" button.
|
||||
1. **Create a Feature Branch**: Once you've forked the repo, create a branch for your feature by running `git checkout -b feature/fooBar`.
|
||||
1. **Testing Changes**: Ensure that your changes do not break existing functionality by running tests. In the root folder, execute `uv run pytest` to run the tests.
|
||||
|
||||
### Using uv for Dependency Management
|
||||
FastAPI-boilerplate uses uv for managing dependencies. If you don't have uv installed, follow the instructions on the [official uv website](https://docs.astral.sh/uv/).
|
||||
|
||||
Once uv is installed, navigate to the cloned repository and install the dependencies:
|
||||
```sh
|
||||
cd FastAPI-boilerplate
|
||||
uv sync
|
||||
```
|
||||
|
||||
### Activating the Virtual Environment
|
||||
uv creates a virtual environment for your project. Activate it using:
|
||||
|
||||
```sh
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
Alternatively, you can run commands directly with `uv run` without activating the environment:
|
||||
```sh
|
||||
uv run python your_script.py
|
||||
```
|
||||
|
||||
## Making Contributions
|
||||
|
||||
### Coding Standards
|
||||
- Follow PEP 8 guidelines.
|
||||
- Write meaningful tests for new features or bug fixes.
|
||||
|
||||
### Testing with Pytest
|
||||
FastAPI-boilerplate uses pytest for testing. Run tests using:
|
||||
```sh
|
||||
uv run pytest
|
||||
```
|
||||
|
||||
### Linting
|
||||
Use mypy for type checking:
|
||||
```sh
|
||||
mypy src
|
||||
```
|
||||
|
||||
Use ruff for style:
|
||||
```sh
|
||||
ruff check --fix
|
||||
ruff format
|
||||
```
|
||||
|
||||
Ensure your code passes linting before submitting.
|
||||
|
||||
### Using pre-commit for Better Code Quality
|
||||
|
||||
It helps in identifying simple issues before submission to code review. By running automated checks, pre-commit can ensure code quality and consistency.
|
||||
|
||||
1. **Install Pre-commit**:
|
||||
- **Installation**: Install pre-commit in your development environment. Use the command `uv add --dev pre-commit` or `pip install pre-commit`.
|
||||
- **Setting Up Hooks**: After installing pre-commit, set up the hooks with `pre-commit install`. This command will install hooks into your .git/ directory which will automatically check your commits for issues.
|
||||
1. **Committing Your Changes**:
|
||||
After making your changes, use `git commit -am 'Add some fooBar'` to commit them. Pre-commit will run automatically on your files when you commit, ensuring that they meet the required standards.
|
||||
Note: If pre-commit identifies issues, it may block your commit. Fix these issues and commit again. This ensures that all contributions are of high quality.
|
||||
1. **Pushing Changes and Creating Pull Request**:
|
||||
Push your changes to the branch using `git push origin feature/fooBar`.
|
||||
Visit your fork on GitHub and create a new Pull Request to the main repository.
|
||||
|
||||
### Additional Notes
|
||||
|
||||
**Stay Updated**: Keep your fork updated with the main repository to avoid merge conflicts. Regularly fetch and merge changes from the upstream repository.
|
||||
**Adhere to Project Conventions**: Follow the coding style, conventions, and commit message guidelines of the project.
|
||||
**Open Communication**: Feel free to ask questions or discuss your ideas by opening an issue or in discussions.
|
||||
|
||||
## Submitting Your Contributions
|
||||
|
||||
### Creating a Pull Request
|
||||
After making your changes:
|
||||
|
||||
- Push your changes to your fork.
|
||||
- Open a pull request with a clear description of your changes.
|
||||
- Update the README.md if necessary.
|
||||
|
||||
|
||||
### Code Reviews
|
||||
- Address any feedback from code reviews.
|
||||
- Once approved, your contributions will be merged into the main branch.
|
||||
|
||||
## Code of Conduct
|
||||
Please adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) to maintain a welcoming and inclusive environment.
|
||||
|
||||
Thank you for contributing to FastAPI-boilerplate🚀
|
||||
Reference in New Issue
Block a user