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
Copy file name to clipboardexpand all lines: CONTRIBUTING.md
+19-10
Original file line number
Diff line number
Diff line change
@@ -8,41 +8,46 @@ As a contributor, here are the guidelines we would like you to follow:
8
8
-[Submission Guidelines](#submission-guidelines)
9
9
-[Signing the CLA](#contributor-licence-agreement)
10
10
11
-
12
11
## <aname="asking-questions"></a>Are you looking for answers?
12
+
13
13
There are many ways you can get your questions answered. It can be hard to decide, where to begin if you are just starting out. We suggest you take a look at the resources in the following order:
14
14
15
15
### 1. Stream chat API documentation
16
-
Package `stream-chat-react` has a peer dependency [stream-chat-js](https://github.com/GetStream/stream-chat-js) - a client library for interacting with the Stream Chat API (see the [API docs](https://getstream.io/chat/docs/javascript/?language=javascript)).
16
+
17
+
Package `stream-chat-react` has a peer dependency [stream-chat-js](https://github.com/GetStream/stream-chat-js) - a client library for interacting with the Stream Chat API (see the [API docs](https://getstream.io/chat/docs/javascript/?language=javascript)).
17
18
18
19
### 2. Documentation for stream-chat-react
20
+
19
21
The [stream-chat-react](https://getstream.io/chat/docs/sdk/react/) documentation is held separately from the Stream Chat API docs. Besides documenting the component API, it provides examples of their use in various scenarios.
20
22
21
23
### 3. Read the source code
24
+
22
25
When you plan on contributing to the repository try to get acquainted with the existing code base. The best way to learn :)
23
26
24
27
### 4. Take a look at our tutorials
25
28
26
-
27
29
### Get help from our Customer Success team
28
-
If what you are looking for is technical support embedding Stream in your application, we suggest emailing our Customer Success team at support@getstream.io with your application key and the SDK versions you're using. The Issue section of this GitHub repo is now reserved only for bug reports, feature improvements and suggestions.
29
30
31
+
If what you are looking for is technical support embedding Stream in your application, we suggest emailing our Customer Success team at support@getstream.io with your application key and the SDK versions you're using. The Issue section of this GitHub repo is now reserved only for bug reports, feature improvements and suggestions.
30
32
31
33
## <aname="filing-an-issue"></a>Filing an issue
32
-
Spotting imperfections and not keeping them to yourself is the first step to make this library better. We are very grateful for reports concerning imperfections in the source code or the [documentation]((https://getstream.io/chat/docs/sdk/react/)). Before filing an issue, please, review the list of [open issues](https://github.com/GetStream/stream-chat-react/issues) first.
34
+
35
+
Spotting imperfections and not keeping them to yourself is the first step to make this library better. We are very grateful for reports concerning imperfections in the source code or the [documentation](<(https://getstream.io/chat/docs/sdk/react/)>). Before filing an issue, please, review the list of [open issues](https://github.com/GetStream/stream-chat-react/issues) first.
33
36
34
37
### Reporting bugs
35
-
You can report a source code bug by using the [Bug Report template](https://github.com/GetStream/stream-chat-react/issues/new/choose). Make sure you include "steps to reproduce" section. Bug that cannot be reproduced cannot be solved.
36
38
37
-
Do not be afraid to report imperfections in our [documentation]((https://getstream.io/chat/docs/sdk/react/)) as well. In such case, please attach the `docs` tag to the issue.
39
+
You can report a source code bug by using the [Bug Report template](https://github.com/GetStream/stream-chat-react/issues/new/choose). Make sure you include "steps to reproduce" section. Bug that cannot be reproduced cannot be solved.
38
40
41
+
Do not be afraid to report imperfections in our [documentation](<(https://getstream.io/chat/docs/sdk/react/)>) as well. In such case, please attach the `docs` tag to the issue.
39
42
40
43
### Requesting a feature
44
+
41
45
You can request a feature by submitting a [Feature request issue](https://github.com/GetStream/stream-chat-react/issues/new?assignees=&labels=feature&template=feature_request.md&title=) in our repository. If you would like to implement the proposal, please state it in the issue. It will allow us to discuss the proposal and better coordinate the efforts. You can even ping us - mention `@GetStream/stream-react-developers ` in the issue.
42
46
43
47
## <aname="contribution-standards"></a> Contributing to the repo
44
48
45
49
### Set up for success
50
+
46
51
It is always good to get acquainted with the specifics of the package. For example the `stream-chat-react` package has its peer dependencies (`stream-chat-js`, `stream-chat-css`), which you may need to tweak at the same time, while developing the feature for `stream-chat-react`. To get more into those specifics, please read [development guide](./developers/DEVELOPMENT.md).
47
52
48
53
### Good first issue
@@ -51,28 +56,32 @@ It is always good to get acquainted with the specifics of the package. For examp
51
56
Any contributions to the library should follow Stream's coding rules.
52
57
53
58
#### 1. Code should be tested
59
+
54
60
All the code submitted should be covered by unit tests. Mocking utilities are provided in `src/mock-builders`. Optimally a suite of E2E tests should be included as well.
55
61
56
62
#### 2. API Changes should be documented
63
+
57
64
Changes to components interface exposed to the library integrators should be documented. We keep the documentation `docusaurus/docs/React` folder. Please see the [dedicated documentation guide](./developers/DOCUMENTATION.md) for more information on how to maintain our documentation.
58
65
59
66
#### 3. Code should be DRY & correctly formatted
67
+
60
68
If you find yourself copying source code from one place to another, please extract it into a separate component or function.
61
69
62
70
#### 4. Keep an eye on performance
71
+
63
72
Keep in mind that the chat application may need to work with thousands of messages.
64
73
65
74
#### 5. Follow commit formatting rules
66
-
We follow [Angular's Commit Message Format rules](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format) with [possible deviations](./developers/COMMIT.md). The same rules are used by our release automation tool. Therefore, every commit message should strictly comply with these rules.
67
75
76
+
We follow [Angular's Commit Message Format rules](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format) with [possible deviations](./developers/COMMIT.md). The same rules are used by our release automation tool. Therefore, every commit message should strictly comply with these rules.
68
77
69
78
## <aname="submission-guidelines"></a> Submitting your work
79
+
70
80
1. Make sure you have signed our Contributor License agreement
71
81
2.[Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the repo and create a dedicated git branch locally
72
82
3. Follow the [coding rules](#coding-rules)
73
83
4. Create a descriptive PR ([see more on PR requirements](./developers/PR_REVIEW.md))
Before we can merge your contribution into our repository, we would like to ask you to sign the [Contributor License Agreement](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform).
78
86
87
+
Before we can merge your contribution into our repository, we would like to ask you to sign the [Contributor License Agreement](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform).
Copy file name to clipboardexpand all lines: README.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,6 @@ For complete pricing and details visit our [Chat Pricing Page](https://getstream
50
50
51
51
`yarn add stream-chat stream-chat-react`
52
52
53
-
54
53
## Example Applications
55
54
56
55
We have built five demo applications showcasing a variety of chat use cases, including social messaging, team collaboration, customer support, livestream gaming, and virtual event. You can preview these [demos](https://getstream.io/chat/demos/) on our website. Also, the code is [open source](https://github.com/GetStream/website-react-examples/).
@@ -61,15 +60,15 @@ We use a doc generator to build our [component documentation](https://getstream.
61
60
62
61
The React components are created using the [stream-chat](https://github.com/getstream/stream-chat-js) library. If you're customizing the components, it's likely you'll need to make additional calls to our Chat API using our JavaScript client, which has [documentation](https://getstream.io/chat/docs/javascript/) on our website.
63
62
64
-
## Component Reusability
63
+
## Component Reusability
65
64
66
65
For components that implement significant logic, it's helpful to split the component into two parts: a top-level component which handles functionality and a lower level component which renders the UI. This way you can swap UI without altering the logic that gives the component its functionality. We use this provider/consumer pattern frequently in the library, and the below example shows how to swap out the `Message` UI component with `CustomMessageUI` (using `WithComponents`), without affecting any logic in the application.
@@ -103,6 +102,7 @@ Our library supports auto-translation for various user languages. Please read ou
103
102
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 pleased to merge your code into the official repository if it meets a need. 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.
104
103
105
104
## We are hiring!
105
+
106
106
We 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 are actively growing.
107
107
Our APIs are used by more than a billion end-users, and by working at Stream, you have the chance to make a huge impact on a team of very strong engineers.
108
108
@@ -116,4 +116,4 @@ This project uses `lamejs` library under the LGPL license to convert the recorde
116
116
The library source code is dynamically imported and used only if audio recording is enabled.
117
117
118
118
You can obtain the source code for `lamejs` from the [lamejs repository](https://github.com/gideonstele/lamejs) that is a fork of [the original JS library](https://github.com/zhuker/lamejs).
119
-
You can find the source code for LAME at https://lame.sourceforge.netand its license at: https://lame.sourceforge.net/license.txt
119
+
You can find the source code for LAME at https://lame.sourceforge.net and its license at: https://lame.sourceforge.net/license.txt
At Stream we are committed to the security of our Software. We appreciate your efforts in disclosing vulnerabilities responsibly and we will make every effort to acknowledge your contributions.
3
4
4
5
Report security vulnerabilities at the following email address:
6
+
5
7
```
6
8
security@getstream.io
7
9
```
10
+
8
11
Alternatively it is also possible to open a new issue in the affected repository, tagging it with the `security` tag.
9
12
10
13
A team member will acknowledge the vulnerability and will follow-up with more detailed information. A representative of the security team will be in touch if more information is needed.
11
14
12
15
# Information to include in a report
16
+
13
17
While we appreciate any information that you are willing to provide, please make sure to include the following:
14
-
* Which repository is affected
15
-
* Which branch, if relevant
16
-
* Be as descriptive as possible, the team will replicate the vulnerability before working on a fix.
18
+
19
+
- Which repository is affected
20
+
- Which branch, if relevant
21
+
- Be as descriptive as possible, the team will replicate the vulnerability before working on a fix.
If you are solving issues, that require adjustments in CSS or Stream Chat API client, then you want to fork the following repositories:
3
4
4
5
-`stream-chat-react`
5
6
-`stream-chat-css`
6
7
-`stream-chat-js`
7
8
8
-
9
9
GitHub provides guides on how to [fork and contribute to projects](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
10
10
11
11
## 2. Link the peer dependencies
12
+
12
13
If you are doing changes in peer dependencies and you want to see them reflected in a running application, you will need to [create symbolic links](https://classic.yarnpkg.com/en/docs/cli/link) to those repositories on your disk (`yarn link` in peer dependency's root folder --> `yarn link dep_name` in `stream-chat-react` root folder). No need to tweak `package.json` manually.
13
14
14
15
## 3. Create a new branch
16
+
15
17
Please create a new branch from the freshly pulled `develop` branch. We keep a simple [system of branches](./BRANCHES.md).
16
18
17
19
## 4. Write your code
20
+
18
21
Please follow our [Coding rules](../CONTRIBUTING.md#coding-rules). You can start by designing the user journeys by writing E2E tests.
19
22
20
23
## 4. Run your code
24
+
21
25
Again, if you are doing changes in peer dependencies, run `yarn start`:
26
+
22
27
1. in their root folders as well as
23
28
2. in the root folder of the `stream-chat-react` package.
24
29
25
30
Then you can start one of the applications in the `examples` folder. We recommend you to run the [`typescript` app](../examples/typescript).
26
31
27
32
## 5. Push your changes and create a PR
33
+
28
34
You are almost done. Please do not underestimate the role of a [well-prepared PR](./PR.md).
29
35
30
36
## 6. Fix imperfections
37
+
31
38
It can happen that the PR reviewer asks you to fix imperfections in your implementation. Please make adjustments agreed with the PR reviewer and push them back upstream.
32
39
33
40
## 7. Once the PR is merged
41
+
34
42
You can delete the local copy of your branch. Well done!
Copy file name to clipboardexpand all lines: developers/E2E.md
+2-1
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,13 @@ note: this document is a WIP
3
3
# E2E tests
4
4
5
5
End-to-end tests are a great mean of:
6
+
6
7
- quality assurance
7
8
- feature documentation
8
9
9
10
They play a crucial role in communicating the expected behavior and interaction between the components. E2E test suites are great for documenting the user journeys - a good start to developing a given feature.
10
11
11
-
Our E2E tests live in the [`e2e` folder](./e2e). They rely on so-called stories located in [`src/stories` folder](./src/components). E2E tests are run with the combination of [ladle](https://www.ladle.dev/) (utility used for documenting our components in form of stories) and [playwright](https://playwright.dev/) (E2E test runner).
12
+
Our E2E tests live in the [`e2e` folder](./e2e). They rely on so-called stories located in [`src/stories` folder](./src/components). E2E tests are run with the combination of [ladle](https://www.ladle.dev/) (utility used for documenting our components in form of stories) and [playwright](https://playwright.dev/) (E2E test runner).
0 commit comments