Skip to content

Commit 84ea288

Browse files
authored
docs: Update contributing guidelines (open-feature#413)
Signed-off-by: André Silva <2493377+askpt@users.noreply.github.com>
1 parent 4043d3d commit 84ea288

File tree

1 file changed

+77
-71
lines changed

1 file changed

+77
-71
lines changed

CONTRIBUTING.md

Lines changed: 77 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ You can contribute to this project from a Windows, macOS or Linux machine.
66

77
On all platforms, the minimum requirements are:
88

9-
* Git client and command line tools.
10-
* .netstandard 2.0 or higher capable dotnet sdk (.Net Framework 4.6.2 or higher/.Net Core 3 or higher).
9+
- Git client and command line tools.
10+
- .netstandard 2.0 or higher capable dotnet sdk (.Net Framework 4.6.2 or higher/.Net 8 or higher).
1111

1212
### Linux or MacOS
1313

14-
* Jetbrains Rider 2022.2+ or Visual Studio 2022+ for Mac or Visual Studio Code
14+
- JetBrains Rider 2022.2+ or Visual Studio 2022+ for Mac or Visual Studio Code
1515

1616
### Windows
1717

18-
* Jetbrains Rider 2022.2+ or Visual Studio 2022+ or Visual Studio Code
19-
* .NET Framework 4.6.2+
18+
- JetBrains Rider 2022.2+ or Visual Studio 2022+ or Visual Studio Code
19+
- .NET Framework 4.6.2+
2020

2121
## Pull Request
2222

@@ -29,11 +29,13 @@ git clone https://github.com/open-feature/dotnet-sdk.git openfeature-dotnet-sdk
2929
```
3030

3131
Navigate to the repository folder
32+
3233
```bash
3334
cd openfeature-dotnet-sdk
3435
```
3536

3637
Add your fork as an origin
38+
3739
```bash
3840
git remote add fork https://github.com/YOUR_GITHUB_USERNAME/dotnet-sdk.git
3941
```
@@ -61,37 +63,37 @@ dotnet test test/OpenFeature.Tests/
6163

6264
#### E2E tests
6365

64-
To be able to run the e2e tests, first we need to initialize the submodule and copy the test files:
66+
To be able to run the e2e tests, first we need to initialize the submodule.
6567

6668
```bash
67-
git submodule update --init --recursive && cp spec/specification/assets/gherkin/evaluation.feature test/OpenFeature.E2ETests/Features/
69+
git submodule update --init --recursive
6870
```
6971

70-
Now you can run the tests using:
72+
Since all the spec files are copied during the build process. Now you can run the tests using:
7173

7274
```bash
7375
dotnet test test/OpenFeature.E2ETests/
7476
```
7577

7678
### How to Receive Comments
7779

78-
* If the PR is not ready for review, please mark it as
79-
[`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/).
80-
* Make sure all required CI checks are clear.
81-
* Submit small, focused PRs addressing a single concern/issue.
82-
* Make sure the PR title reflects the contribution.
83-
* Write a summary that helps understand the change.
84-
* Include usage examples in the summary, where applicable.
80+
- If the PR is not ready for review, please mark it as
81+
[`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/).
82+
- Make sure all required CI checks are clear.
83+
- Submit small, focused PRs addressing a single concern/issue.
84+
- Make sure the PR title reflects the contribution.
85+
- Write a summary that helps understand the change.
86+
- Include usage examples in the summary, where applicable.
8587

8688
### How to Get PRs Merged
8789

8890
A PR is considered to be **ready to merge** when:
8991

90-
* Major feedbacks are resolved.
91-
* It has been open for review for at least one working day. This gives people
92-
reasonable time to review.
93-
* Trivial change (typo, cosmetic, doc, etc.) doesn't have to wait for one day.
94-
* Urgent fix can take exception as long as it has been actively communicated.
92+
- Major feedbacks are resolved.
93+
- It has been open for review for at least one working day. This gives people
94+
reasonable time to review.
95+
- Trivial change (typo, cosmetic, doc, etc.) doesn't have to wait for one day.
96+
- Urgent fix can take exception as long as it has been actively communicated.
9597

9698
Any Maintainer can merge the PR once it is **ready to merge**. Note, that some
9799
PRs may not be merged immediately if the repo is in the process of a release and
@@ -100,32 +102,33 @@ the maintainers decided to defer the PR to the next release train.
100102
If a PR has been stuck (e.g. there are lots of debates and people couldn't agree
101103
on each other), the owner should try to get people aligned by:
102104

103-
* Consolidating the perspectives and putting a summary in the PR. It is
104-
recommended to add a link into the PR description, which points to a comment
105-
with a summary in the PR conversation.
106-
* Tagging subdomain experts (by looking at the change history) in the PR asking
107-
for suggestion.
108-
* Reaching out to more people on the [CNCF OpenFeature Slack channel](https://cloud-native.slack.com/archives/C0344AANLA1).
109-
* Stepping back to see if it makes sense to narrow down the scope of the PR or
110-
split it up.
111-
* If none of the above worked and the PR has been stuck for more than 2 weeks,
112-
the owner should bring it to the OpenFeatures [meeting](README.md#contributing).
105+
- Consolidating the perspectives and putting a summary in the PR. It is
106+
recommended to add a link into the PR description, which points to a comment
107+
with a summary in the PR conversation.
108+
- Tagging subdomain experts (by looking at the change history) in the PR asking
109+
for suggestion.
110+
- Reaching out to more people on the [CNCF OpenFeature Slack channel](https://cloud-native.slack.com/archives/C0344AANLA1).
111+
- Stepping back to see if it makes sense to narrow down the scope of the PR or
112+
split it up.
113+
- If none of the above worked and the PR has been stuck for more than 2 weeks,
114+
the owner should bring it to the OpenFeatures [meeting](README.md#contributing).
113115

114116
## Automated Changelog
115117

116-
Each time a release is published the changelogs will be generated automatically using [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/blob/main/doc/changelog_user_guide.md#13-categories). The tool will organise the changes based on the PR labels.
118+
Each time a release is published the changelogs will be generated automatically using [googleapis/release-please-action](https://github.com/googleapis/release-please-action). The tool will organise the changes based on the PR labels.
119+
Please make sure you follow the latest [conventions](https://www.conventionalcommits.org/en/v1.0.0/). We use an automation to check if the pull request respects the desired conventions. You can check it [here](https://github.com/open-feature/dotnet-sdk/actions/workflows/lint-pr.yml). Must be one of the following:
120+
121+
- build: Changes that affect the build system or external dependencies (example scopes: nuget)
122+
- ci: Changes to our CI configuration files and scripts (example scopes: GitHub Actions, Coverage)
123+
- docs: Documentation only changes
124+
- feat: A new feature
125+
- fix: A bug fix
126+
- perf: A code change that improves performance
127+
- refactor: A code change that neither fixes a bug nor adds a feature
128+
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
129+
- test: Adding missing tests or correcting existing tests
117130

118-
- 🚨 Breaking Changes = `breaking-change`
119-
- ✨ New Features = `feature`
120-
- 🐛 Bug Fixes = `bug`
121-
- 🚀 Enhancements = `enhancement`
122-
- 🧰 Maintenance = `maintenance`
123-
- 🏭 Tests = `tests`, `test`
124-
- 🛠 Examples = `examples`
125-
- 📚 Documentation = `documentation`
126-
- 🌎 Accessibility = `translations`
127-
- 📦 Dependencies = `dependencies`
128-
- 🧰 Misc = `misc`
131+
If you want to point out a breaking change, you should use `!` after the type. For example: `feat!: excellent new feature`.
129132

130133
## Design Choices
131134

@@ -153,34 +156,37 @@ dotnet release/OpenFeature.Benchmarks.dll
153156
## Consuming pre-release packages
154157

155158
1. Acquire a [GitHub personal access token (PAT)](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) scoped for `read:packages` and verify the permissions:
156-
```console
157-
$ gh auth login --scopes read:packages
158-
159-
? What account do you want to log into? GitHub.com
160-
? What is your preferred protocol for Git operations? HTTPS
161-
? How would you like to authenticate GitHub CLI? Login with a web browser
162-
163-
! First copy your one-time code: ****-****
164-
Press Enter to open github.com in your browser...
165-
166-
✓ Authentication complete.
167-
- gh config set -h github.com git_protocol https
168-
✓ Configured git protocol
169-
✓ Logged in as ********
170-
```
171-
172-
```console
173-
$ gh auth status
174-
175-
github.com
176-
✓ Logged in to github.com as ******** (~/.config/gh/hosts.yml)
177-
✓ Git operations for github.com configured to use https protocol.
178-
✓ Token: gho_************************************
179-
✓ Token scopes: gist, read:org, read:packages, repo, workflow
180-
```
159+
160+
```console
161+
$ gh auth login --scopes read:packages
162+
163+
? What account do you want to log into? GitHub.com
164+
? What is your preferred protocol for Git operations? HTTPS
165+
? How would you like to authenticate GitHub CLI? Login with a web browser
166+
167+
! First copy your one-time code: ****-****
168+
Press Enter to open github.com in your browser...
169+
170+
✓ Authentication complete.
171+
- gh config set -h github.com git_protocol https
172+
✓ Configured git protocol
173+
✓ Logged in as ********
174+
```
175+
176+
```console
177+
$ gh auth status
178+
179+
github.com
180+
✓ Logged in to github.com as ******** (~/.config/gh/hosts.yml)
181+
✓ Git operations for github.com configured to use https protocol.
182+
✓ Token: gho_************************************
183+
✓ Token scopes: gist, read:org, read:packages, repo, workflow
184+
```
185+
181186
2. Run the following command to configure your local environment to consume packages from GitHub Packages:
182-
```console
183-
$ dotnet nuget update source github-open-feature --username $(gh api user --jq .email) --password $(gh auth token) --store-password-in-clear-text
184187

185-
Package source "github-open-feature" was successfully updated.
186-
```
188+
```console
189+
$ dotnet nuget update source github-open-feature --username $(gh api user --jq .email) --password $(gh auth token) --store-password-in-clear-text
190+
191+
Package source "github-open-feature" was successfully updated.
192+
```

0 commit comments

Comments
 (0)