Skip to content

Commit 7abd8ea

Browse files
committed
📝 Improve documentation for contributors
1 parent 3958393 commit 7abd8ea

File tree

1 file changed

+42
-26
lines changed

1 file changed

+42
-26
lines changed

CONTRIBUTING.md

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ the [code of conduct][🤝conduct].
77
To submit a patch, please fork the project and create a patch with tests.
88
Once you're happy with it send a pull request.
99

10+
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
11+
1012
## You can help!
1113

1214
Take a look at the `reek` list which is the file called `REEK` and find something to improve.
@@ -21,22 +23,6 @@ Simply follow these instructions:
2123
6. Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
2224
7. Create new Pull Request.
2325

24-
## Contributors
25-
26-
Your picture could be here!
27-
28-
[![Contributors][🖐contributors-img]][🖐contributors]
29-
30-
Made with [contributors-img][🖐contrib-rocks].
31-
32-
## The Reek List
33-
34-
To refresh the `reek` list:
35-
36-
```bash
37-
bundle exec reek > REEK
38-
```
39-
4026
## Appraisals
4127

4228
From time to time the appraisal gemfiles in `gemfiles/` will need to be updated.
@@ -54,6 +40,16 @@ bundle exec rake rubocop_gradual:autocorrect
5440

5541
When adding an appraisal to CI check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
5642

43+
## The Reek List
44+
45+
Take a look at the `reek` list which is the file called `REEK` and find something to improve.
46+
47+
To refresh the `reek` list:
48+
49+
```bash
50+
bundle exec reek > REEK
51+
```
52+
5753
## Run Tests
5854

5955
NOTE: In order to run *all* the tests you will need to have the following databases installed, configured, and running.
@@ -127,11 +123,20 @@ bundle exec rake
127123
```
128124

129125
Or just run the linter.
126+
130127
```bash
131128
bundle exec rake rubocop_gradual:autocorrect
132129
```
133130

134-
## Release
131+
## Contributors
132+
133+
Your picture could be here!
134+
135+
[![Contributors][🖐contributors-img]][🖐contributors]
136+
137+
Made with [contributors-img][🖐contrib-rocks].
138+
139+
## For Maintainers
135140

136141
### One-time, Per-maintainer, Setup
137142

@@ -146,31 +151,42 @@ NOTE: To build without signing the gem you must set `SKIP_GEM_SIGNING` to some v
146151
### To release a new version:
147152

148153
1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
149-
2. Update the version number in `version.rb`
154+
2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
150155
3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
151156
4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
152157
5. Run `git push` to trigger the final CI pipeline before release, & merge PRs
153-
- NOTE: Remember to [check the build][🧪build]!
158+
- NOTE: Remember to [check the build][🧪build]!
154159
6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
155160
7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
156161
8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure you will release the latest trunk code
157162
9. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
158-
- Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
159-
- If the echo above has no output, then it didn't work.
160-
- Note that you'll need the `zsh/datetime` module, if running `zsh`.
161-
- In `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
163+
- Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
164+
- If the echo above has no output, then it didn't work.
165+
- Note that you'll need the `zsh/datetime` module, if running `zsh`.
166+
- In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
162167
10. Run `bundle exec rake build`
163-
11. Run `bin/checksums` (more [context][🔒️rubygems-checksums-pr]) to create SHA-256 and SHA-512 checksums
168+
11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
169+
to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
170+
[gem][💎stone_checksums].
164171
- Checksums will be committed automatically by the script, but not pushed
165172
12. Run `bundle exec rake release` which will create a git tag for the version,
166173
push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
167174

175+
[🚎src-main]: https://github.com/omniauth/omniauth-identity
168176
[🧪build]: https://github.com/omniauth/omniauth-identity/actions
169177
[🤝conduct]: https://github.com/omniauth/omniauth-identity/blob/main/CODE_OF_CONDUCT.md
170178
[🖐contrib-rocks]: https://contrib.rocks
171179
[🖐contributors]: https://github.com/omniauth/omniauth-identity/graphs/contributors
172180
[🖐contributors-img]: https://contrib.rocks/image?repo=omniauth/omniauth-identity
173181
[💎rubygems]: https://rubygems.org
174182
[🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
175-
[🔒️rubygems-checksums-pr]: https://github.com/rubygems/guides/pull/325
176-
[🚎src-main]: https://github.com/omniauth/omniauth-identity
183+
[🔒️rubygems-checksums-pr]: https://github.com/rubygems/rubygems/pull/6022
184+
[🔒️rubygems-guides-pr]: https://github.com/rubygems/guides/pull/325
185+
[💎stone_checksums]: https://github.com/pboling/stone_checksums
186+
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
187+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
188+
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
189+
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
190+
[🚎appraisal-eval-gemfile-pr]: https://github.com/thoughtbot/appraisal/pull/248
191+
[🚎appraisal-fork]: https://github.com/pboling/appraisal/tree/galtzo
192+
[🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache

0 commit comments

Comments
 (0)