Skip to content

Commit

Permalink
Update contribution guide (hashgraph#1353)
Browse files Browse the repository at this point in the history
  • Loading branch information
ochikov authored Dec 9, 2022
1 parent 491f829 commit a70c077
Showing 1 changed file with 43 additions and 33 deletions.
76 changes: 43 additions & 33 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ Thank you for your interest in contributing the Hedera SDK for JavaScript!

We appreciate your interest in helping us and the rest of our community. We welcome bug reports, feature requests, and code contributions.

__Jump To:__
**Jump To:**

* [Bug Reports](#bug-reports)
* [Feature Requests](#feature-requests)
* [Code Contributions](#code-contributions)
- [Bug Reports](#bug-reports)
- [Feature Requests](#feature-requests)
- [Code Contributions](#code-contributions)

## Bug Reports

Expand All @@ -18,10 +18,9 @@ The [bug][label-bug] label is used to track bugs.

## Requirements

- `just:latest`https://github.com/casey/just
- `bash:latest`
- `pnpm:latest` https://github.com/pnpm/pnpm
- `node:16` https://nodejs.org/
- `task:latest`https://taskfile.dev/
- `pnpm:latest` https://github.com/pnpm/pnpm
- `node:16` https://nodejs.org/

### Before Submitting a Bug Report

Expand All @@ -37,67 +36,78 @@ If you have completed these steps and you need to submit a bug report, please re

Please ensure that your bug report contains the following:

* A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
* A succinct, detailed description of the problem you're experiencing. This should include:
* Expected behaviour of the SDK and the actual behaviour exhibited.
* Any details of your application development environment that may be relevant.
* If applicable, the exception stack-trace.
* If you are able to create one, include a [Minimal Working Example][mwe] that reproduces the issue.
* [Markdown][markdown] formatting as appropriate to make the report easier to read; for example use code blocks when pasting a code snippet or exception stack-trace.
- A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
- A succinct, detailed description of the problem you're experiencing. This should include:
- Expected behaviour of the SDK and the actual behaviour exhibited.
- Any details of your application development environment that may be relevant.
- If applicable, the exception stack-trace.
- If you are able to create one, include a [Minimal Working Example][mwe] that reproduces the issue.
- [Markdown][markdown] formatting as appropriate to make the report easier to read; for example use code blocks when pasting a code snippet or exception stack-trace.

## Building the SDK and running examples

1. Run `task build`
2. You are ready to use it.
3. Navigate to `./examples`.
4. Run `task build`
5. Run `node::name of the example file`

Please note: Some of the examples require to run a [Local Node.](https://github.com/hashgraph/hedera-local-node)

## Feature Requests

Feature requests are also submitted through the [Issues][issues] page.

As with Bug Reports, please do a search of the open requests first before submitting a new one to avoid duplicates. If you do find a a feature request that represents your suggestion, please give it a +1.

__NOTE:__ If you intend to implement this feature, please submit the feature request *before* working on any code changes. This will allow members on the SDK team to assess the idea, discuss the design with you and ensure that it makes sense to include such a feature in the SDK.
**NOTE:** If you intend to implement this feature, please submit the feature request _before_ working on any code changes. This will allow members on the SDK team to assess the idea, discuss the design with you and ensure that it makes sense to include such a feature in the SDK.

Feature requests are labeled as [enhancements][label-enhancement].

### Submitting a Feature Request

Open an [issue][issues] with the following:

* A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
* A detailed description of the the proposed feature. Explain why you believe it should be added to the SDK. Illustrative example code may also be provided to help explain how the feature should work.
* [Markdown][markdown] formatting as appropriate to make the request easier to read.
* If you plan to implement this feature yourself, please let us know that you'd like to the issue to be assigned to you.
- A short, descriptive title. Other community members should be able to understand the nature of the issue by reading this title.
- A detailed description of the the proposed feature. Explain why you believe it should be added to the SDK. Illustrative example code may also be provided to help explain how the feature should work.
- [Markdown][markdown] formatting as appropriate to make the request easier to read.
- If you plan to implement this feature yourself, please let us know that you'd like to the issue to be assigned to you.

## Code Contributions

Code contributions to the SDK are handled using [Pull Requests][pull-requests]. Please keep the following in mind when considering a code contribution:

* The SDK is released under the [Apache 2.0 License][license].
- The SDK is released under the [Apache 2.0 License][license].

Any code you submit will be released under this license.

Any code you submit will be released under this license.
- For anything other than small or quick changes, you should always start by reviewing the [Issues][issues] page to ensure that the nobody else is already working on the same issue.

* For anything other than small or quick changes, you should always start by reviewing the [Issues][issues] page to ensure that the nobody else is already working on the same issue.
If you're working on a bug fix, check to see whether the bug has already been reported. If it has but no one is assigned to it, ask one of the maintainers to assign it to you before beginning work. If you're confident the bug hasn't been reported yet, create a new [Bug Report](#bug-reports) and ask us to assign it to you.

If you're working on a bug fix, check to see whether the bug has already been reported. If it has but no one is assigned to it, ask one of the maintainers to assign it to you before beginning work. If you're confident the bug hasn't been reported yet, create a new [Bug Report](#bug-reports) and ask us to assign it to you.
If you are thinking about adding entirely new functionality, open a [Feature Request](#feature-requests) or get in touch with us on [Discord](discord) to ask for feedback first before beginning work; this is to ensure that nobody else is already working on the feature (or another similar feature) and to confirm that it makes sense for such functionality to be included in the SDK.

If you are thinking about adding entirely new functionality, open a [Feature Request](#feature-requests) or get in touch with us on [Discord](discord) to ask for feedback first before beginning work; this is to ensure that nobody else is already working on the feature (or another similar feature) and to confirm that it makes sense for such functionality to be included in the SDK.
* All code contributions must be accompanied with new or modified tests that verify that the code works as expected; i.e. that the issue has been fixed or that the functionality works as intended.
- All code contributions must be accompanied with new or modified tests that verify that the code works as expected; i.e. that the issue has been fixed or that the functionality works as intended.

### Pull Request Readiness

Before submitting your pull request, refer to the pull request readiness checklist below:

* [ ] Includes tests to exercise the new behaviour
* [ ] Code is documented, especially public and user-facing constructs
* [ ] Local run of `just build` and `just test-unit` succeed
* [ ] Git commit message is detailed and includes context behind the change
* [ ] If the change is related to an existing Bug Report or Feature Request, please include its issue number
- [ ] Includes tests to exercise the new behaviour
- [ ] Code is documented, especially public and user-facing constructs
- [ ] Local run of `task build`, `task test:unit:node` and `task:test:integration:node` succeed
- [ ] Git commit message is detailed and includes context behind the change
- [ ] If the change is related to an existing Bug Report or Feature Request, please include its issue number

To contribute, please fork the GitHub repository and submit a pull request to the `main` branch.
To contribute, please fork the GitHub repository and submit a pull request to the `develop` branch.

### Getting Your Pull Request Merged

All Pull Requests must be approved by at least one member of the SDK team before it can be merged in. The members only have limited bandwidth to review Pull Requests so it's not unusual for a Pull Request to go unreviewed for a few days, especially if it's a large or complex one. After a couple of weeks, if you haven't received any feedback regarding your Pull Request from the SDK team, feel free to contact us on [Discord](discord) to ask for a review.

## Getting in Contact

* Join us in our [Discord][discord] channel; there you can engage with the Hedera team and other developers and enthusiasts.
- Join us in our [Discord][discord] channel; there you can engage with the Hedera team and other developers and enthusiasts.

[license]: https://github.com/hashgraph/hedera-sdk-js/blob/main/LICENSE
[mwe]: https://en.wikipedia.org/wiki/Minimal_Working_Example
Expand Down

0 comments on commit a70c077

Please sign in to comment.