You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We welcome code changes that improve this library or fix a problem, please make sure to follow all best practices and add tests if applicable before submitting a Pull Request on Github. We are very happy to merge your code in the official repository. Make sure to sign our [Contributor License Agreement (CLA)](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) first. See our license file for more details.
We use [Rubocop](https://github.com/rubocop/rubocop) for linting and [Sorbet](https://sorbet.org/) for type checking.
23
+
24
+
To run them:
25
+
```shell
26
+
$ bundle exec rake rubocop
27
+
$ bundle exec srb tc
28
+
```
29
+
30
+
These linters can be easily integrated into IDEs such as RubyMine or VS Code.
31
+
32
+
For VS Code, just install the basic Ruby extension which handles Rubocop ([`rebornix.ruby`](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby)) and the official Sorbet one ([`sorbet.sorbet-vscode-extension`](https://marketplace.visualstudio.com/items?itemName=sorbet.sorbet-vscode-extension)).
33
+
34
+
Recommended settings:
35
+
```json
36
+
{
37
+
"editor.formatOnSave": true,
38
+
"ruby.useBundler": true,
39
+
"ruby.lint": {
40
+
"rubocop": {
41
+
"useBundler": true, // enable rubocop via bundler
42
+
}
43
+
},
44
+
"ruby.format": "rubocop",
45
+
"ruby.useLanguageServer": true,
46
+
"sorbet.enabled": true
47
+
}
48
+
```
49
+
50
+
### Commit message convention
51
+
52
+
This repository follows a commit message convention in order to automatically generate the [CHANGELOG](./CHANGELOG.md). Make sure you follow the rules of [conventional commits](https://www.conventionalcommits.org/) when opening a pull request.
53
+
54
+
### Releasing a new version (for Stream developers)
55
+
56
+
In order to release new version you need to be a maintainer of the library.
57
+
58
+
- Kick off a job called `initiate_release` ([link](https://github.com/GetStream/stream-chat-ruby/actions/workflows/initiate_release.yml)).
59
+
60
+
The job creates a pull request with the changelog. Check if it looks good.
61
+
62
+
- Merge the pull request.
63
+
64
+
Once the PR is merged, it automatically kicks off another job which will upload the Gem to RubyGems.org and creates a GitHub release.
> 💡 Note: since v2.21.0 we implemented [Sorbet](https://sorbet.org/) type checker. As of v2.x.x we only use it for static type checks and you won't notice any difference, but from v3.0.0 **we will enable runtime checks** 🚨 🚨 🚨.
48
+
49
+
> What this means, is that you'll receive an error during runtime if you pass an invalid type to our methods. To prepare for that, just make sure whatever you pass in, matches the method signature (`sig { ... }`).
50
+
51
+
---
52
+
53
+
> Additionally, in a future major version, we would like to enforce symbol hash keys during runtime to conform to Ruby best practises. It's a good idea to prepare your application for that.
This repository follows a commit message convention in order to automatically generate the [CHANGELOG](./CHANGELOG.md). Make sure you follow the rules of [conventional commits](https://www.conventionalcommits.org/) when opening a pull request.
220
-
221
-
### Releasing a new version
222
-
223
-
In order to release new version you need to be a maintainer of the library.
224
-
225
-
- Kick off a job called `initiate_release` ([link](https://github.com/GetStream/stream-chat-ruby/actions/workflows/initiate_release.yml)).
226
-
227
-
The job creates a pull request with the changelog. Check if it looks good.
179
+
## ✍️ Contributing
228
180
229
-
- Merge the pull request.
181
+
We welcome code changes that improve this library or fix a problem, please make sure to follow all best practices and add tests if applicable before submitting a Pull Request on Github. We are very happy to merge your code in the official repository. Make sure to sign our [Contributor License Agreement (CLA)](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) first. See our [license file](./LICENSE) for more details.
230
182
231
-
Once the PR is merged, it automatically kicks off another job which will upload the Gem to RubyGems.org and creates a GitHub release.
183
+
Head over to [CONTRIBUTING.md](./CONTRIBUTING.md) for some development tips.
232
184
233
-
## We are hiring!
185
+
## 🧑💻 We are hiring!
234
186
235
187
We've recently closed a [$38 million Series B funding round](https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/) and we keep actively growing.
236
188
Our APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world.
0 commit comments