Skip to content

Latest commit

 

History

History
204 lines (119 loc) · 6.16 KB

getting-started.md

File metadata and controls

204 lines (119 loc) · 6.16 KB

Getting Started

PoC Innovation's Open-Source project template

Please read carefully this guide.

Setup

In this part, you will configure your project.

Branches

Branch protection is really important. It helps you to have control on your code.

For each of the following branches, add the required protections.

main

- [x] Require a pull request before merging
  - [x] Require approvals
        Required number of approvals before merging: 1

- [x] Require status checks to pass before merging
  - [x] Require branches to be up to date before merging

- [x] Require conversation resolution before merging

Documents

This template provides the must-have documents.

README.md

The README.md is the showcase of your project. It always must be clean and consistent. Otherwise, no one will care of your project.

Fill every sections of the README.md.

If you add pictures, put them in the assets folder.

CONTRIBUTING.md

The CONTRIBUTING.md is the guide to contribute to your project. It always must be clean and consistent. Otherwise, no one will contribute to your project.

Fill every sections of the CONTRIBUTING.md.

LICENSE

The LICENSE protects your code and contributors.

This template provides an Apache Licence 2.0.

If you want another one, check this guide.

If your project doesn't belong to PoC Innovation, make sure to update the copyrights of the LICENCE.

About

Update the About section by adding a description, a website, and topics.

Templates

This template provides the must-have templates.

Issues

An issue is a tool to track and focus tasks.

This template provides two issues templates :

  • Bug Report
  • Feature Request

Change the default assignee of the bug_report template.

Change the default assignee of the feature_request template.

Pull Requests

A pull request is an event where a contributor asks a maintainer to review code.

This template provides a pull request template. You don't need to update it.

Milestones

A milestone helps to track progress on groups of issues or pull requests.

This template provides a milestone template. You don't need to update it.

Labels

A label helps to categorize issues and pull requests.

Make sure to have the following labels :

  • bug: Something isn't working
  • bugfix: Resolve a bug
  • chore: Global maintenance
  • documentation: Improvements or additions to documentation
  • duplicate: This issue or pull request already exists
  • enhancement: New feature or request
  • help wanted: Extra attention is needed
  • invalid: This doesn't seem right
  • major: Major update (for release)
  • minor: Minor update (for release)
  • patch: Patch update (for release)
  • question: Further information is requested
  • triage: Need to be tagged
  • wontfix: This will not be worked on

GitHub project

Create a GitHub project to manage your milestones, issues and pull requests.

Actions

This template provides some GitHub actions.

Release Drafter

A release is tool with changelogs that present a full history of a project.

This template provides an action that drafts next releases notes as pull requests are merged into the main branch. You don't need to update it.

Check this action's documentation to understand how it works

Settings

Visibility

Make your repository public.

Sprints

In this part, you will learn how to manage sprints.

A sprint is associated as a milestone.
A task is associated as an issue.

Workflow

The workflow to follow is:

  1. Create a milestone
  2. Create all the needed issues linked to this milestone
  3. Manage the pull requests linked with these issues using the GitHib project
  4. Resolve these issues
  5. Publish a release
  6. Close the milestone

Milestones

Each milestones must use the milestone template.

There are two parts :

  • Overall

    ⚠️ It's checklist must be completed before starting this sprint ⚠️

  • Final Report

    ⚠️ It's checklist must be completed before starting a new sprint ⚠️

Additional information is written in the milestones's checklists. Read them carefully!

Issues

Create all the required issues of a sprint before starting it. Once the sprint started, no issue linked to it should be create.

Each issue must be linked to a milestone and a GitHub project, have the right labels and be assigned to someone.

You can discuss in a issue, do it as much as you can!

Pull Requests

Each pull request must be linked to an issue and a GitHub project, have the right labels, be assigned to someone and have a reviewer.

You can discuss in a pull request, do it as much as you can!

GitHub project

No tasks (issue) must be created directly from the GitHub project. Create an issue using a template, it will automatically appears on the GitHub project. Don't forget to archive the tasks once the milestone is closed.

It is a powerful tool, use it well!

Releases

Each update on the main branch must be linked to a release.

Tag pull requests with the patch, minor or major labels.

Notes

Discord Webhook

We strongly advice you to have a discord channel on which you will receive GitHub updates on your project.

Follow this tutorial.

Security dependabot

We strongly advice you to have a security dependabot to fix vulnerable dependencies.

Follow this tutorial.

Help

If you have any questions, please contact Reza Rahemtola.

Made with ❤️ by PoC