From dc5c765ee3f8dd769d1041ff7f19e52627c216d2 Mon Sep 17 00:00:00 2001 From: Swati Goel Date: Mon, 26 Feb 2024 11:42:58 +0530 Subject: [PATCH] update CONTRIBUTING.md Signed-off-by: Swati Goel --- CONTRIBUTING.md | 79 +++++++++++++++++++------------------------------ 1 file changed, 31 insertions(+), 48 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c84917d..479c6968 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,17 @@ # Contributing -Contributions are always welcome, no matter how large or small! +We value code contributions, but non-code contributions too, from writers, editors, testers, etc. are always welcomed. Join us to contribute +* To contribute to code, [repository](https://github.com/mosip/tuvali) +* To contribute to documentation, [repository](https://github.com/mosip/documentation/blob/inji/docs/integration-guide/tuvali-inji.md) -We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. Before contributing, please read the [code of conduct](./CODE_OF_CONDUCT.md). +We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. -## Development workflow +## Code of Conduct +This project and everyone participating in it is governed by the [code of conduct](https://docs.mosip.io/1.2.0/community/code-of-conduct). + +This guide will help you to contribute in various aspects like raising issues, feature request, etc. + +## Project Initial Setup To get started with the project, run `yarn` in the root directory to install the required dependencies for each package: @@ -14,26 +21,6 @@ yarn > While it's possible to use [`npm`](https://github.com/npm/cli), the tooling is built around [`yarn`](https://classic.yarnpkg.com/), so you'll have an easier time if you use `yarn` for development. -While developing, you can run the [example app](/example/) to test your changes. Any changes you make in your library's JavaScript code will be reflected in the example app without a rebuild. If you change any native code, then you'll need to rebuild the example app. - -To start the packager: - -```sh -yarn example start -``` - -To run the example app on Android: - -```sh -yarn example android -``` - -To run the example app on iOS: - -```sh -yarn example ios -``` - Make sure your code passes TypeScript and ESLint. Run the following to verify: ```sh @@ -53,12 +40,11 @@ Remember to add tests for your change if possible. Run the unit tests by: yarn test ``` -To edit the Objective-C or Swift files, open `example/ios/TuvaliExample.xcworkspace` in XCode and find the source files at `Pods > Development Pods > react-native-tuvali`. +To edit the Objective-C or Swift files, open `ios/` in XCode. -To edit the Java or Kotlin files, open `example/android` in Android studio and find the source files at `react-native-tuvali` under `Android`. +To edit the Java or Kotlin files, open `android/` in Android studio. - -### Commit message convention +## Commit message convention We follow the [conventional commits specification](https://www.conventionalcommits.org/en) for our commit messages: @@ -71,7 +57,7 @@ We follow the [conventional commits specification](https://www.conventionalcommi Our pre-commit hooks verify that your commit message matches this format when committing. -### Linting and tests +## Linting and tests [ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/) @@ -79,17 +65,7 @@ We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint] Our pre-commit hooks verify that the linter and tests pass when committing. -### Publishing to npm - -We use [release-it](https://github.com/release-it/release-it) to make it easier to publish new versions. It handles common tasks like bumping version based on semver, creating tags and releases etc. - -To publish new versions, run the following: - -```sh -yarn release -``` - -### Scripts +## Scripts The `package.json` file contains various scripts for common tasks: @@ -97,18 +73,25 @@ The `package.json` file contains various scripts for common tasks: - `yarn typescript`: type-check files with TypeScript. - `yarn lint`: lint files with ESLint. - `yarn test`: run unit tests with Jest. -- `yarn example start`: start the Metro server for the example app. -- `yarn example android`: run the example app on Android. -- `yarn example ios`: run the example app on iOS. -### Sending a pull request +## Before Submitting a Pull Request > **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github). -When you're sending a pull request: +**Before submitting your pull request** make sure the following requirements are fulfilled: -- Prefer small pull requests focused on one change. -- Verify that linters and tests are passing. -- Review the documentation to make sure it looks good. -- Follow the pull request template when opening a pull request. +- Fork the repository +- Create a branch from `develop` +- Prefer small pull requests focused on one change +- Check linting and format it +- Change necessary code for bug fix, a new feature +- Follow the pull request template when opening a pull request - For pull requests that change the API or implementation, discuss with maintainers first by opening an issue. + + +## Reporting an issue + +Before submitting an issue, you need to make sure: + +- Kindly provide an adequate description and a clear title +- If possible, share a URL towards the repository in which action is failing