docs: expand contributing guide#4028
Conversation
There was a problem hiding this comment.
Pull request overview
This docs-only PR expands and reorganizes the contributing guide to better direct contributors toward bug reports, discussions, issue triage, reviews, and code contributions.
Changes:
- Reworked “Ways to Contribute” with dedicated guidance for bug reports and feedback/discussions.
- Added guidance for discussing larger feature work before implementation.
- Clarified setup/checklist wording and adjusted ordered-list numbering in parts of the guide.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 10 comments.
Comments suppressed due to low confidence (6)
guides/CONTRIBUTING.md:28
- This sentence is missing an article before “great”; it should read “a great way to contribute.”
1. **Replying and handling open issues** – great way to contribute without writing a single line of code is triaging the issues.
guides/CONTRIBUTING.md:45
- This sentence is missing an article before “good idea.”
or introducing new amazing features. If you want to start your adventure
with open source it's good idea to take a look at [good first issue](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) on GitHub. Read more about [contributing to code](#contributing-to-code).
guides/CONTRIBUTING.md:106
- This sentence is missing an article before “list.”
If you are eager to start contributing right away, we have list of [good first issues](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup.
guides/CONTRIBUTING.md:112
- This sentence is missing an article before “full implementation.”
> Before committing yourself to full implementation of a new feature, it's recommended to first open
guides/CONTRIBUTING.md:56
- This sentence is missing an article before “Exact list.”
Exact list of information we expect is included in our [issue template](/.github/ISSUE_TEMPLATE/bug-report.yml).
guides/CONTRIBUTING.md:187
- This phrase is missing an article before “great idea.”
3. **Test code and steps to reproduce** – describe how others can test your change, if you didn't add `Test*.tsx` file it's good idea to add code snippets here.
| Code-level contributions generally come in the form of pull requests. | ||
| By contributing to code you help us with solving issues, fixing bugs | ||
| or introducing new amazing features. If you want to start your adventure | ||
| with open source it's good idea to take a look at [good first issue](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) on GitHub. Read more about [contributing to code](#contributing-to-code). |
There was a problem hiding this comment.
This link is sus, I think that this is the proper one: https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue%20is%3Aopen%20label%3Agood-first-issue
There was a problem hiding this comment.
For me both links are showing empty list. Same as filter just by label:
only because we don't have any good first issues in public repo, but testing on labs:
- https://github.com/software-mansion/react-native-screens-labs/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22 - broken - the same GH search pattern we have here
- https://github.com/software-mansion/react-native-screens-labs/issues?q=is%3Aissue%20state%3Aopen%20label%3Agood-first-issue - works
imo the link is still invalid
(testing on Chrome)
| 2. **Changes** - write what you have changes and why. | ||
| 3. **Screenshots / GIFs** – if applicable it's great idea to attach screen or video before and after changes. | ||
| 4. **Test code and steps to reproduce** – describe how others can test your change, if you didn't add `Test*.tsx` file it's good idea to add code snippets here. | ||
| 1. **Changes** - write what you have changed and why. |
There was a problem hiding this comment.
What's an alternative? "to change" in present perfect ends up as changed 😅
There was a problem hiding this comment.
Sorry, I should be more precise (tbh I completely haven't focused on the presence of "changed" word in that line 😄) I meant why we changed this part of the code (the numbering), now we have two '1' for the same list
|
|
||
| We have two types of sources: pure examples (apps/Example for source code) and examples, dedicated for tests from issues / pull requests (apps/src/tests for source code). The former work as a showcase of the library, the latter contain isolated props' behavior, selected interactions between props, and specific test cases that corresponds to GitHub issues. For example, `Test1864.tsx` corresponds to issue [#1864](https://github.com/software-mansion/react-native-screens/issues/1864). Our developer flow usually consists of creating new `Test*.tsx` file with code example that we try to fix or add. For new features we try to prepare dedicated showcases. The `apps/App` file is where you set the source code for the application to use by either leaving `<Example>` as is or replacing it with `<Test.Test*>`. | ||
|
|
||
| - `apps/Example` – source code with showcase app |
There was a problem hiding this comment.
Should we clarify this a bit?
From my point of view the showcase screens themselves are located in apps/src/screens. apps/Example is more of the root entry point where we define the overall app structure, linking both the showcase and test screens.
LKuchno
left a comment
There was a problem hiding this comment.
Looks good! Just left a few minor comments. :)
| We've provided a template on GitHub that simplifies the process of filing an issue. | ||
| Maybe you have an idea for a feature that you find missing from the library, or | ||
| you want to share your opinion on features that are currently planned for development? | ||
| Please see [the dedicated section for instructions](#got-a-question-an-idea-for-a-feature-or-you-want-to-share-your-feedback). |
There was a problem hiding this comment.
| Please see [the dedicated section for instructions](#got-a-question-an-idea-for-a-feature-or-you-want-to-share-your-feedback). | |
| Please see [the dedicated section for instructions](#got-a-question-an-idea-for-a-feature-want-to-share-your-feedback). |
| Code-level contributions generally come in the form of pull requests. | ||
| By contributing to code you help us with solving issues, fixing bugs | ||
| or introducing new amazing features. If you want to start your adventure | ||
| with open source it's good idea to take a look at [good first issue](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) on GitHub. Read more about [contributing to code](#contributing-to-code). |
There was a problem hiding this comment.
For me both links are showing empty list. Same as filter just by label:
only because we don't have any good first issues in public repo, but testing on labs:
- https://github.com/software-mansion/react-native-screens-labs/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22 - broken - the same GH search pattern we have here
- https://github.com/software-mansion/react-native-screens-labs/issues?q=is%3Aissue%20state%3Aopen%20label%3Agood-first-issue - works
imo the link is still invalid
(testing on Chrome)
| or introducing new amazing features. If you want to start your adventure | ||
| Read more about [contributing to code](#contributing-to-code). |
There was a problem hiding this comment.
| or introducing new amazing features. If you want to start your adventure | |
| Read more about [contributing to code](#contributing-to-code). | |
| or introducing new amazing features. If you want to start your adventure, | |
| read more about [contributing to code](#contributing-to-code). |
| > [!tip] | ||
| > For commits and pull request names we follow a [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. | ||
|
|
||
| > [!note] |
There was a problem hiding this comment.
maybe this should be [!IMPORTANT]
| - `gesture-handler` – interop between react-native-screens and react-native-gesture-handler | ||
| - `guides` – guides for developers | ||
| - `ios` – source code of native implementation for iOS | ||
| - `native-stack` – description of native stack v5, actual implementation can be found in `src/native-stack`, this will be deprecated in favor of react-navigation in near feature |
There was a problem hiding this comment.
#4028 (comment) -> if you want to fix the mentions of old stack, we have it here -> this directory doesn't exist now.
| > current library development direction. We want to avoid situations where hours of work on a feature PR | ||
| > are wasted due to misalignment. | ||
|
|
||
| We have two types of sources: pure examples (apps/Example for source code) and examples, dedicated for tests from issues / pull requests (apps/src/tests for source code). The former work as a showcase of the library, the latter contain isolated props' behavior, selected interactions between props, and specific test cases that corresponds to GitHub issues. For example, `Test1864.tsx` corresponds to issue [#1864](https://github.com/software-mansion/react-native-screens/issues/1864). Our developer flow usually consists of creating new `Test*.tsx` file with code example that we try to fix or add. For new features we try to prepare dedicated showcases. The `apps/App` file is where you set the source code for the application to use by either leaving `<Example>` as is or replacing it with `<Test.Test*>`. |
There was a problem hiding this comment.
Similar to above: old example app
| Code-level contributions generally come in the form of pull requests. | ||
| By contributing to code you help us with solving issues, fixing bugs | ||
| or introducing new amazing features. If you want to start your adventure | ||
| Read more about [contributing to code](#contributing-to-code). |
There was a problem hiding this comment.
Generally looks good :)
There is just small thing to correct - after (#contributing-to-code) there is unnecessary dot.
sgaczol
left a comment
There was a problem hiding this comment.
LGTM!
Just left a few suggestions
|
|
||
| Recommended approach is to set up [direnv](https://direnv.net/) as suggested [here](https://github.com/software-mansion/react-native-screens-labs/pull/197/files), | ||
| so that you don't have to do this manually each time. | ||
| Recommended approach is to set up [direnv](https://direnv.net/) as suggested [here](https://github.com/software-mansion/react-native-screens-labs/pull/197/files), |
There was a problem hiding this comment.
| Recommended approach is to set up [direnv](https://direnv.net/) as suggested [here](https://github.com/software-mansion/react-native-screens-labs/pull/197/files), | |
| The recommended approach is to set up [direnv](https://direnv.net/) as suggested [here](https://github.com/software-mansion/react-native-screens-labs/pull/197/files), |
| ## Contributing to Code | ||
|
|
||
| Submitting Pull Requests that resolve issues is a great way to contribute to Screens. If you are eager to start contributing right away, we have list of [good first issues](https://github.com/software-mansion/react-native-screens/pulls?q=is%3Apr+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup. | ||
| Submitting a Pull Requests that resolve issues is a great way to contribute to Screens. |
There was a problem hiding this comment.
| Submitting a Pull Requests that resolve issues is a great way to contribute to Screens. | |
| Submitting Pull Requests that resolve issues is a great way to contribute to Screens. |
|
|
||
| Submitting Pull Requests that resolve issues is a great way to contribute to Screens. If you are eager to start contributing right away, we have list of [good first issues](https://github.com/software-mansion/react-native-screens/pulls?q=is%3Apr+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup. | ||
| Submitting a Pull Requests that resolve issues is a great way to contribute to Screens. | ||
| If you are eager to start contributing right away, we have list of [good first issues](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup. |
There was a problem hiding this comment.
| If you are eager to start contributing right away, we have list of [good first issues](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup. | |
| If you are eager to start contributing right away, we have a list of [good first issues](https://github.com/software-mansion/react-native-screens/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that contain bugs which have limited scope. In this section we'll describe in more details how to play around with react-native-screens setup. |


Description
Restructures and expands
guides/CONTRIBUTING.mdto make it easier for new contributors to find the right entry point and understand expectations around bug reports, discussions, and feature work.The most important changes here include adding a section about feedback as a way of contribution and encouraging discussion before opening a PR.
Changes
### Reporting a bugsection, pointing readers to the issue template and emphasizing the reproduction requirement.### Got a question, an idea for a feature or you want to share your feedback?section directing non-bug traffic to GitHub Discussions, with a note that misplaced issues may be closed.apps/Appis shared source code between example apps.Test plan
Docs-only change. Verified locally:
guides/CONTRIBUTING.mdrenders with correct heading hierarchy and ordered-list numbering.#reporting-a-bug,#got-a-question-an-idea-for-a-feature-or-you-want-to-share-your-feedback,#contributing-to-code) resolve to the new section headings.Checklist