Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added contributing guide. #720

Merged
merged 1 commit into from
May 31, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Contributing guidelines

The following is a set of guidelines for contributing to njs. We do
appreciate that you are considering contributing!

## Table of contents

- [Getting started](#getting-started)
- [Ask a question](#ask-a-question)
- [Contributing](#contributing)
- [Git style guide](#git-style-guide)


## Getting started

Check out the [Getting started](README.md#getting-started-with-nginx-javascript)
and [njs examples](https://github.com/nginx/njs-examples) guides to get NGINX with
njs up and running.


## Ask a question

Please open an [issue](https://github.com/nginx/njs/issues/new) on GitHub with
the label `question`. You can also ask a question on the NGINX mailing list,
nginx@nginx.org (subscribe [here](https://mailman.nginx.org/mailman/listinfo/nginx)).


## Contributing

### Report a bug

Please ensure the bug has not already been reported as
[issue](https://github.com/nginx/njs/issues).

If the bug is a potential security vulnerability, please report using our
[security policy](SECURITY.md).

To report a non-security bug, open an
[issue](https://github.com/nginx/njs/issues/new) on GitHub with the label
`bug`. Be sure to include a title and clear description, as much relevant
information as possible, and a code sample or an executable test case showing
the expected behavior that doesn't occur.


### Suggest a feature or enhancement

To suggest a feature or enhancement, please create an [issue](https://github.com/nginx/njs/issues/new)
on GitHub with the label `feature` or `enhancement` using the available feature
request issue template. Please ensure the feature or enhancement has not
already been suggested.

> [!NOTE]
> If you’d like to implement a new feature, please consider creating a
> feature request issue first to start a discussion about the feature
> before implementing it.


### Open a pull request

Fork the repo, create a branch, implement your changes, add any relevant tests,
submit a PR when your changes are tested and ready for review.

Before submitting a PR, please read the NGINX code guidelines to learn more
about coding conventions and style.

- Try to make it clear why the suggested change is needed, and provide a use
case, if possible.

- Changes should be formatted according to the code style used by njs.
njs mostly follows the [NGINX coding style](https://nginx.org/en/docs/dev/development_guide.html#code_style),
with some minor differences. Sometimes, there is no clear rule; in such
cases examine how existing njs sources are formatted and mimic this style.

- Submitting changes implies granting project a permission to use it under
an [BSD-2-Clause license](LICENSE).


## Git style guide

- Keep a clean, concise and meaningful git commit history on your branch,
rebasing locally and squashing before submitting a PR

- In the subject line, use the past tense ("Added feature", not "Add feature");
also, use past tense to describe past scenarios, and present tense for
current behavior

- Limit the subject line to 67 characters, and the rest of the commit message
to 80 characters

- Use subject line prefixes for commits that affect a specific portion of the
code; examples include "Tests:", "HTTP:", or "Core:". See the commit history
to get an idea of the prefixes used.

- Reference issues and PRs liberally after the subject line; if the commit
remedies a GitHub issue, [name it](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) accordingly