Skip to content

Commit c42e667

Browse files
authored
Create CONTRIBUTING.md
1 parent 2477178 commit c42e667

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

CONTRIBUTING.md

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
## How to Contribute
2+
At NS1, it makes us very happy to get pull requests, and we appreciate the time
3+
and effort it takes to put one together. Below are a few guidelines that can
4+
help get your pull request approved and merged quickly and easily.
5+
6+
It's important to note that the guidelines are recommendations, not
7+
requirements. You may submit a pull request that does not adhere to the
8+
guidelines, but ideation and development may take longer or be more involved.
9+
10+
* Avoid getting nitpicked for basic formatting. Match the style of any given
11+
file as best you can - tabs or spaces as appropriate, curly bracket
12+
placement, indentation style, line length, etc. If there are any linters
13+
mentioned in docs or Makefile, please run them.
14+
15+
* Avoid changes that have any possibility of breaking existing uses. Some of
16+
these codebases have many of users, doing creative things with them. Breaking
17+
changes can cause significant challenges for other users. It's important to
18+
note that some projects are dependencies of other projects, and changes may
19+
require cross-code base coordination. It can be challenging to identify if a
20+
small change will have large ramifications, so we mainly ask that you keep
21+
this in mind when writing or modifying code. Do your best to preserve
22+
interfaces, and understand that NS1 may need to reject pull requests if they
23+
would jeopardize platform stability or place an undue burden on other users.
24+
25+
* If there are unit and/or integration tests, keeping the test suites passing
26+
is a must before we can merge. And nice tests around the changes will
27+
definitely help get a patch merged quickly.
28+
29+
* Ensure that any documentation that is part of the project is updated as part
30+
of the pull request. This helps to expedite the merge process.
31+
32+
* Be considerate when introducing new dependencies to a project. If a new
33+
dependency is necessary, try to choose a well-known project, and to pin the
34+
version as specifically as possible.
35+
36+
## Opening an issue
37+
38+
Below are a few guidelines for opening an issue on one of NS1's open-source
39+
repositories. Adhering to these guidelines to the best of your ability will
40+
help ensure that requests are resolved quickly and efficiently.
41+
42+
* **Be specific about the problem.** When describing your issue, it's helpful
43+
to include as many details as you can about the expected behavior versus
44+
what happened or is happening instead.
45+
* **Be specific about your objective.** Help us understand exactly what you are
46+
trying to accomplish so that our developers have a clear understanding about
47+
the particular problem you are trying to solve. In other words, help us
48+
avoid the "[XY Problem](http://xyproblem.info)".
49+
* **Indicate which products, software versions, and programming languages you
50+
are using.** In your request, indicate which NS1 product(s) you're using and,
51+
if relevant, which versions you are running. Also include any third-party
52+
software and versions that are relevant to the issue. If not obvious, include
53+
which programming language(s) you are using.
54+
* **If possible, provide a reproducible example of the problem.** This allows
55+
us to better examine the issue and test solutions.
56+
* **If possible, include stack/error traces.** Note: ensure there is no
57+
sensitive included in your stack/error traces.
58+
59+
## Closing an issue
60+
61+
* If an issue is closed by a commit, reference the relevant PR or commit when
62+
closing.
63+
* If an issue is closed by NS1 for any reason, you should expect us to include
64+
a reason for it.
65+
* If the fix does not work or is incomplete, you are welcome to re-open or
66+
recreate the issue. When doing so, it's important to be clear about why the
67+
previous fix was inadequate, to clarify the previous problem statement,
68+
and/or to modify the scope of the request. Please keep in mind that project
69+
status consideration or conflicting priorities may require us to close or
70+
defer work on the new or reopened issue. If that happens, feel free to reach
71+
out of [email protected] for more information.
72+
73+
## Tags on issues
74+
75+
In some projects we (NS1) may apply basic tags on some issues, for
76+
organizational purposes. Note: we do not use tags to indicate timelines or
77+
priorities.
78+
79+
Here are definitions for the most common tags we use:
80+
81+
* **BUG** - This tag confirms that the issue is a bug we intend to fix. The
82+
issue will remain open until it is resolved.
83+
* **ENHANCEMENT** - This tag indicates that we have categorized the issue as a
84+
feature request. Depending on priorities and timelines, we may close issues
85+
with this tag and track them in our internal backlog instead.

0 commit comments

Comments
 (0)