mirror of
https://gitlab.com/ryzen-controller-team/ryzen-controller.git
synced 2024-12-21 17:43:29 +07:00
88 lines
3.7 KiB
Markdown
88 lines
3.7 KiB
Markdown
|
# How to contribute
|
|||
|
|
|||
|
## 1. For everyone
|
|||
|
|
|||
|
You can help us in many ways:
|
|||
|
|
|||
|
Without beeing a developer
|
|||
|
- By [opening an issue](https://gitlab.com/ryzen-controller-team/ryzen-controller/issues/new) when:
|
|||
|
- you found a bug
|
|||
|
- have a suggestion
|
|||
|
- or just to tell us thanks
|
|||
|
- By testing new features an give feedbacks
|
|||
|
- on merge requests labeled `[to-test]`, take a look at the pipelines, you'll see some some green "bubbles". The one named _installers_ allow you to download artifacts.
|
|||
|
|
|||
|
If you have some developer/IT knowledge
|
|||
|
- By doing code reviews:
|
|||
|
- on merge requests labeled `[to-review]`, by commenting the code.
|
|||
|
- on the [whole codebase](https://gitlab.com/ryzen-controller-team/ryzen-controller/tree/v2-react/src), by [opening an issue](https://gitlab.com/ryzen-controller-team/ryzen-controller/issues/new)
|
|||
|
|
|||
|
If you want to be a part of Ryzen Controller Team, ask to become a member by [opening an issue](https://gitlab.com/ryzen-controller-team/ryzen-controller/issues/new) ;)
|
|||
|
|
|||
|
## 2. To members or Ryzen Controller Team
|
|||
|
|
|||
|
### 2.1. Git workflow
|
|||
|
|
|||
|
This project is fast forward commit only. It means the [commit graph](https://gitlab.com/ryzen-controller-team/ryzen-controller/-/network/master) will stay on one line. It also means that every merge request must be up-to-date with the target branch before beeing merged.
|
|||
|
|
|||
|
This allow us to avoid any side effect due to merge commits.
|
|||
|
|
|||
|
A little article about this: [A git workflow using rebase](https://medium.com/singlestone/a-git-workflow-using-rebase-1b1210de83e5)
|
|||
|
|
|||
|
#### 2.1.1. Quick example
|
|||
|
|
|||
|
```bash
|
|||
|
git clone git@gitlab.com:ryzen-controller-team/ryzen-controller.git ryzencontroller
|
|||
|
cd ryzencontroller
|
|||
|
git checkout -b my-bugfix
|
|||
|
# Doing stuff with files
|
|||
|
git add .
|
|||
|
git commit -m "fix: Ensure people know what to do."
|
|||
|
git push origin my-bugfix
|
|||
|
```
|
|||
|
Then you'll see a like to create a merge request
|
|||
|
|
|||
|
### 2.2. Automation
|
|||
|
|
|||
|
This project contains a [`.gitlab-ci.yml`](https://gitlab.com/ryzen-controller-team/ryzen-controller/blob/master/.gitlab-ci.yml) file.
|
|||
|
|
|||
|
This file allow us to auotmatically test, build, package and publish Ryzen Controller app.
|
|||
|
|
|||
|
It's executed for each merge request update and each week on the master branch.
|
|||
|
|
|||
|
Here a list of what's done by stage.
|
|||
|
|
|||
|
#### 2.2.1. Tests
|
|||
|
|
|||
|
Some jobs to enhance gitlab features like [code quality review](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html), [security dashboard](https://gitlab.com/ryzen-controller-team/ryzen-controller/security/dashboard/), [Static Application Security Testing](https://docs.gitlab.com/ee/user/application_security/sast/).
|
|||
|
|
|||
|
And a release-check ([sample job](https://gitlab.com/ryzen-controller-team/ryzen-controller/-/jobs/400164480)), this analyse commit list to detect if a new version must be released.
|
|||
|
|
|||
|
#### 2.2.2. Install
|
|||
|
|
|||
|
`yarn install --frozen-lockfile`: https://yarnpkg.com/lang/en/docs/cli/install/#toc-yarn-install-frozen-lockfile
|
|||
|
|
|||
|
Don’t generate a yarn.lock lockfile and fail if an update is needed.
|
|||
|
|
|||
|
#### 2.2.3. Build
|
|||
|
|
|||
|
`yarn build`: Compile projects files into `build/` folder, production ready.
|
|||
|
|
|||
|
#### 2.2.4. Installers
|
|||
|
|
|||
|
`yarn dist-pack-all`: Create a electron package and the installers that goes with it.
|
|||
|
|
|||
|
#### 2.2.5. Release note
|
|||
|
|
|||
|
Only executed on scheduled pipelines
|
|||
|
|
|||
|
`create-rpm-link`, `create-deb-link`, `create-exe-link`: Create bitly links so we can count downloads =)
|
|||
|
`update-changelog`: Update [CHANGELOG.md](https://gitlab.com/ryzen-controller-team/ryzen-controller/blob/master/CHANGELOG.md) files, will be used for the release description.
|
|||
|
|
|||
|
#### 2.2.6. Release
|
|||
|
|
|||
|
Only executed on scheduled pipelines
|
|||
|
|
|||
|
`publish`: Will create a new [release](https://gitlab.com/ryzen-controller-team/ryzen-controller/-/releases)
|
|||
|
`no-publish`: Avoid the red flag when no release has to be published.
|