1 | # Contributing to the Neo4j Ecosystem
|
2 |
|
3 | At [Neo4j](http://neo4j.com/), we develop our software in the open at GitHub.
|
4 | This provides transparency for you, our users, and allows you to fork the software to make your own additions and enhancements.
|
5 | We also provide areas specifically for community contributions, in particular the [neo4j-contrib](https://github.com/neo4j-contrib) space.
|
6 |
|
7 | There's an active [Neo4j Online Community](https://community.neo4j.com/) where we work directly with the community.
|
8 | If you're not already a member, sign up!
|
9 |
|
10 | We love our community and wouldn't be where we are without you.
|
11 |
|
12 | ## Need to raise an issue?
|
13 |
|
14 | Where you raise an issue depends largely on the nature of the problem.
|
15 |
|
16 | Firstly, if you are an Enterprise customer, you might want to head over to our [Customer Support Portal](http://support.neo4j.com/).
|
17 |
|
18 | There are plenty of public channels available too, though.
|
19 | If you simply want to get started or have a question on how to use a particular feature, ask a question in [Neo4j Online Community](https://community.neo4j.com/).
|
20 | If you think you might have hit a bug in our software (it happens occasionally!) or you have specific feature request then use the issue feature on the relevant GitHub repository.
|
21 | Check first though as someone else may have already raised something similar.
|
22 |
|
23 | [StackOverflow](http://stackoverflow.com/questions/tagged/neo4j) also hosts a ton of questions and might already have a discussion around your problem.
|
24 | Make sure you have a look there too.
|
25 |
|
26 | Include as much information as you can in any request you make:
|
27 |
|
28 | - Which versions of our products are you using?
|
29 | - Which language (and which version of that language) are you developing with?
|
30 | - What operating system are you on?
|
31 | - Are you working with a cluster or on a single machine?
|
32 | - What code are you running?
|
33 | - What errors are you seeing?
|
34 | - What solutions have you tried already?
|
35 |
|
36 | ## Want to contribute?
|
37 |
|
38 | If you want to contribute a pull request, we have a little bit of process you'll need to follow:
|
39 |
|
40 | - Do all your work in a personal fork of the original repository
|
41 | - [Rebase](https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request), don't merge (we prefer to keep our history clean)
|
42 | - Create a branch (with a useful name) for your contribution
|
43 | - Make sure you're familiar with the appropriate coding style (this varies by language so ask if you're in doubt)
|
44 | - Include unit tests if appropriate (obviously not necessary for documentation changes)
|
45 | - Take a moment to read and sign our [CLA](http://neo4j.com/developer/cla)
|
46 |
|
47 | We can't guarantee that we'll accept pull requests and may ask you to make some changes before they go in.
|
48 | Occasionally, we might also have logistical, commercial, or legal reasons why we can't accept your work but we'll try to find an alternative way for you to contribute in that case.
|
49 | Remember that many community members have become regular contributors and some are now even Neo employees!
|
50 |
|
51 | ## Got an idea for a new project?
|
52 |
|
53 | If you have an idea for a new tool or library, start by talking to other people in the community.
|
54 | Chances are that someone has a similar idea or may have already started working on it.
|
55 | The best software comes from getting like minds together to solve a problem.
|
56 | And we'll do our best to help you promote and co-ordinate your Neo ecosystem projects.
|
57 |
|
58 | ## Further reading
|
59 |
|
60 | If you want to find out more about how you can contribute, head over to our website for [more information](http://neo4j.com/developer/contributing-code/).
|