CONTRIBUTING.md in slack-ruby-client-2.1.0 vs CONTRIBUTING.md in slack-ruby-client-2.2.0
- old
+ new
@@ -61,42 +61,10 @@
Ruby style is enforced with [Rubocop](https://github.com/bbatsov/rubocop). Run `bundle exec rubocop` and fix any style issues highlighted, auto-correct issues when possible with `bundle exec rubocop -a`. To silence generally ignored issues, including line lengths or code complexity metrics, run `bundle exec rubocop --auto-gen-config`.
Make sure that `bundle exec rake` completes without errors.
-### Update Slack Web API
-
-Slack Web API is updated from https://github.com/slack-ruby/slack-api-ref, a maintained, machine-readable version of Slack API Docs, generated by scraping [api.slack.com](https://api.slack.com). To update the Web API from the latest definition run the following Rake task.
-
-```
-bundle exec rake slack:api:update
-```
-
-#### Patching Slack Web API
-
-Sometimes it's necessary to patch auto-generated Slack Web API methods. For example, we want to help clients with calling `to_json` on the `attachments` parameter sent to `chat_postMessage`. See [#20](https://github.com/slack-ruby/slack-ruby-client/issues/20).
-
-The broad steps are:
-1. Run `rake slack:api:update` to check that existing patches are still valid.
- - If you run into a `failed to apply patch` error, the auto-generated methods likely drifted from the last patch. Follow the steps [below](#resolving-patch-errors).
- - This may add new methods if the API has updated, please split them up into multiple PRs if so.
-2. Make a change to a generated file, for example `lib/slack/web/api/endpoints/chat.rb`.
-3. Generate a patch:
- ```
- git diff --no-color HEAD lib/slack/web/api/endpoints/chat.rb > lib/slack/web/api/patches/chat.added-support.patch
- ```
-4. Run `rake slack:api:update` to ensure that the patch is cleanly applied. Implement a test for the added or modified functionality and commit the patch file.
-
-##### Resolving Patch Errors
-
-The auto-generated method files may drift overtime e.g. new arguments may be added or descriptions changed. Since previous patches were based on the older auto-generated files, git may be unable to apply them to the new files. Resolving them requires some good ol' splicing:
-1. Run `rake slack:api:update SKIP_PATCH=true` to create the raw auto-generated files. Commit the files that you are updating, so we can run `git diff` later.
-2. Go through the old patches for the files (e.g. in `lib/slack/web/api/patches/chat.added-support.patch`), copying code into the new files.
- - Run `git apply --reject path/to/patch-file.patch` to see hunks that couldn't be applied.
-3. Continue with Step 2 [above](#patching-slack-web-api).
-
-
### Write Documentation
Document any external behavior in the [README](README.md).
### Update Changelog
@@ -161,9 +129,44 @@
Go back to your pull request after a few minutes and see whether it passed muster with CI. Everything should look green, otherwise fix issues and amend your commit as described above.
### Be Patient
It's likely that your change will not be merged and that the nitpicky maintainers will ask you to do more, or fix seemingly benign problems. Hang on there!
+While you wait you can help with keeping the Slack Web API up to date, see [below](#update-slack-web-api).
+
+### Update Slack Web API
+
+Please make sure to [create a separate branch](#create-a-topic-branch) for your changes.
+
+Slack Web API is updated from https://github.com/slack-ruby/slack-api-ref, a maintained, machine-readable version of Slack API Docs, generated by scraping [api.slack.com](https://api.slack.com). To update the Web API from the latest definition run the following Rake task.
+
+```
+bundle exec rake slack:api:update
+```
+
+#### Patching Slack Web API
+
+Sometimes it's necessary to patch auto-generated Slack Web API methods. For example, we want to help clients with calling `to_json` on the `attachments` parameter sent to `chat_postMessage`. See [#20](https://github.com/slack-ruby/slack-ruby-client/issues/20).
+
+The broad steps are:
+1. Run `rake slack:api:update` to check that existing patches are still valid.
+ - If you run into a `failed to apply patch` error, the auto-generated methods likely drifted from the last patch. Follow the steps [below](#resolving-patch-errors).
+ - This may add new methods if the API has updated, please split them up into multiple PRs if so.
+2. Make a change to a generated file, for example `lib/slack/web/api/endpoints/chat.rb`.
+3. Generate a patch:
+ ```
+ git diff --no-color HEAD lib/slack/web/api/endpoints/chat.rb > lib/slack/web/api/patches/chat.added-support.patch
+ ```
+4. Run `rake slack:api:update` to ensure that the patch is cleanly applied. Implement a test for the added or modified functionality and commit the patch file.
+
+##### Resolving Patch Errors
+
+The auto-generated method files may drift overtime e.g. new arguments may be added or descriptions changed. Since previous patches were based on the older auto-generated files, git may be unable to apply them to the new files. Resolving them requires some good ol' splicing:
+1. Run `rake slack:api:update SKIP_PATCH=true` to create the raw auto-generated files. Commit the files that you are updating, so we can run `git diff` later.
+2. Go through the old patches for the files (e.g. in `lib/slack/web/api/patches/chat.added-support.patch`), copying code into the new files.
+ - Run `git apply --reject path/to/patch-file.patch` to see hunks that couldn't be applied.
+3. Continue with Step 2 [above](#patching-slack-web-api).
+
## Thank You
Please do know that we really appreciate and value your time and work. We love you, really.