Introduction: This repository provides a comprehensive project template for GitHub repositories. It's designed to streamline the setup process, ensuring best practices and essential components are included. By using this template, you can ensure a consistent and professional structure for your projects, making them more accessible and maintainable.
- LICENSE: A predefined license template ensuring your project's intellectual property is protected.
- SECURITY: Guidelines on how to report security vulnerabilities in the project.
- CODE OF CONDUCT: A set of rules to maintain a positive and inclusive community.
- CONTRIBUTING: Guidelines for potential contributors.
- ISSUE TEMPLATE: Templates to standardize issue reporting.
- PULL REQUEST TEMPLATE: Templates to standardize pull request descriptions.
- README GUIDE: This very guide you're reading, detailing the project and its setup.
- dependabot.yml: Automated dependency updates.
- FOUNDING: Information about the project's founding and backers.
- Makefile: A tool for automating code tasks. Use
make helpto see available commands. - pre-commit hooks: Tools to ensure code quality and standards before commits.
- Automated Code Quality Checks: Ensures code maintains a certain quality standard.
- Automated Releasing: Streamlines the release process.
- Click here to create a new repository with this template.
- Select and Add a license.
- Install pre-commit. (skip this step if you already have pre-commit installed)
- Run
pre-commit installto install the pre-commit hooks. - Run
make pre-committo run the pre-commit hooks on all files.
- Go to
Settings>Branches>Branch protection rules>Add rule - Add the following rules:
main- Require a pull request before merging
- Require status checks to pass before merging
- Require branches to be up-to-date before merging
- Add
lintingstatus checks ( and others if you created them ) - Do not allow bypassing the above settings
dev- Require a pull request before merging
- Require status checks to pass before merging
- Add
lintingstatus checks ( and others if you created them )
Why Branch Protection?: Branch protection ensures that changes to important branches undergo a review process. This maintains code quality and prevents potential issues from being merged.
main: The main branch. This branch is protected and cannot be pushed directly. (PRs must be made todevinstead ofmain)dev: The development branch. This branch is protected and cannot be pushed directly. (PRs must be made to this branch)feature/*: The 'feature/*' branches are used to develop new features for the upcoming or a distant future release. These branches are branched off from 'dev' and must merge back intodev.release/*: The 'release/*' branches are used to prepare the next release. They allow for last-minute changes and minor bug fixes. These branches are branched off from 'dev' and must merge back intomainanddev.hotfix/*: The 'hotfix/*' branches are used to develop fixes for the current release. These branches are branched off frommainand must merge back intomain.
Contributions are always welcome! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated. For more details, see CONTRIBUTING.md.
This project is licensed under some License. For more details, see LICENSE.
We believe in fostering an inclusive and respectful community. For guidelines and reporting information, see CODE_OF_CONDUCT.md.
Your security is paramount. If you discover any security-related issues, please follow the guidelines in SECURITY.md.
For information about the project's founding and backers, see FOUNDING.