Skip to content

Commit

Permalink
Merge pull request #40 from PoCInnovation/feat/setup-open-source
Browse files Browse the repository at this point in the history
Setup Open Source
  • Loading branch information
adrienfort committed Apr 18, 2022
2 parents 64787f3 + e506ac2 commit 0cdd126
Show file tree
Hide file tree
Showing 10 changed files with 831 additions and 74 deletions.
71 changes: 71 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
assignees:
- adrienfort # Update it
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: description
attributes:
label: Description
description: Describe your bug shortly.
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Describe your bug with as much details as possible.
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: Describe what should happened with as much details as possible.
placeholder: Tell us what should happened!
value: "This should happened!"
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Describe your environment with as much details as possible.
placeholder: Tell us what is your environment!
value: "- OS and version\n- Branch that causes this bug"
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: List the steps to reproduce with as much details as possible.
placeholder: Tell us how to reproduce this bug!
value: "- You have to do this!\n- Then this!"
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: C++
validations:
required: false
- type: textarea
id: proposed-solution
attributes:
label: Proposed solution
description: If you have an idea of how to fix this issue, please write it down here, so we can begin discussing it.
validations:
required: false
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Feature Request
description: File a feature request
title: "[Feature]: "
labels: ["feature", "triage"]
assignees:
- adrienfort # Update it
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: textarea
id: description
attributes:
label: Description
description: Describe your feature shortly.
placeholder: Tell us what you want to see!
value: "A new feature!"
validations:
required: true
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: Describe what you want to happen with as much details as possible.
placeholder: Tell us what you want to happen!
value: "This should happened!"
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Describe your environment with as much details as possible.
placeholder: Tell us what is your environment!
value: "- OS and version"
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: Proposed solution
description: If you have an idea of how to realise this feature, please write it down here, so we can begin discussing it.
validations:
required: false
202 changes: 202 additions & 0 deletions .github/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Getting Started

> [PoC Innovation's Open-Source project template](https://github.com/PoCInnovation/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 controle on your code.

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

#### `master`

```markdown
- [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](../README.md).
> If you add pictures, put them in the [assets](./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](../CONTRIBUTING.md).

#### LICENSE

The LICENSE protects your code and contributors.

This template provides an [Apache Licence 2.0](https://www.apache.org/licenses/LICENSE-2.0).
> If you want another one, check this [guide](https://choosealicense.com).
If your project doesn't belong to [PoC Innovation](https://github.com/PoCInnovation), make sure to update the copyrights of the [LICENCE](../LICENSE).

### 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](./ISSUE_TEMPLATE/bug_report.yml) template.

Change the default assignee of the [feature_request](./ISSUE_TEMPLATE/bug_report.yml) template.

#### Pull Requests

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

This template provides a [pull request template](./pull_request_template.md). 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](./milestone_template.md). 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 taged
- `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](./workflows/release-drafter.yml) that drafts [next releases notes](./release-drafter.yml) as pull requests are merged into the master branch. You don't need to update it.
> Check this [action's documentation](https://github.com/release-drafter/release-drafter) 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](./milestone_template.md).

There are three parts :
- Overall
> **:warning: It's checklist must be completed before starting this sprint :warning:**
- Monitoring
> **:warning: You must write a report each week :warning:**
- Final Report
> **:warning: It's checklist must be completed before starting a new sprint :warning:**
Additional informations are 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.**

It is a powerfull tool, use it well!

### Releases

**Each update on the master 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 wich you will receive GitHub updates on your project.

Follow this [tutorial](https://gist.github.com/SGTGunner/50d6a3cc0d489cf779f77695ba3e22ea).

### Security dependabot

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

Follow this [tutorial](https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates#managing-dependabot-security-updates-for-your-repositories).

### Help

If you have any questions, please contact [Adrien Fort](https://github.com/adrienfort).

> Made with :heart: by PoC
65 changes: 65 additions & 0 deletions .github/milestone_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
## Overall

### Objective

[Explain here the objective of the milestone]

### Timeline

#### Duration

- [ ] 1 week
- [ ] 2 weeks
- [ ] 3 weeks

#### Date

- Start date : [dd/mm/yyyy]
- End date : [dd/mm/yyyy]

### Checklist

- [ ] Clear objective
- [ ] Consistent objective
- [ ] Achievable in the given time
- [ ] Issues created, with the rights labels and linked to this milestone
- [ ] Issues assigned

## Monitoring

### Week 1

[Detail this week's report]

### Week 2

[Detail this week's report]\
[If this milestone's duration is less than 2 weeks, please delete this section]

### Week 3

[Detail this week's report]\
[If this milestone's duration is less than 3 weeks, please delete this section]

## Final Report

### Checklist

- [ ] Objective fulfilled
- [ ] README.md and other relevant documents (guide, ...) updated
- [ ] Documentation updated
- [ ] Pull requests merged
- [ ] Issues closed
- [ ] Release created
- [ ] Tasks archived
- [ ] Branches cleared

### Questions

**Was this objective fulfilled on time ?**

[Answer this question]

**If not, why ?**

[Answer this question if needed, otherwise delete it]

0 comments on commit 0cdd126

Please sign in to comment.