Skip to content

Latest commit

 

History

History
89 lines (60 loc) · 5.56 KB

CONTRIBUTING.adoc

File metadata and controls

89 lines (60 loc) · 5.56 KB

Contributing to Cypher

There are multiples ways of contributing to Cypher.

As a user of Cypher, you might be most comfortable contributing through suggesting features to the language that would help you in your daily work. If you are a software developer, you might be interested in contributing code improvements to the Cypher Reference Implementation. Should language design be more of your thing, you might consider writing Cypher Improvement Proposals that detail new features of the language.

No change happens in isolation. Regardless of how you choose to contribute, let’s all make Cypher an open community by helping each other in our efforts. A Cypher Improvement Proposal describing a change to the language might require help with implementing the reference implementation for that feature. Conversely code contributions could sometimes make great changes to the language that would need to be accompanied by a corresponding Cypher Improvement Proposal. Perhaps most importantly, if you want to contribute (either code or specification), please consider how your contribution solves the most frequently requested features.

All contributions to Cypher take place in this repository:

1. Feature Requests

Submitting a feature request is the easiest way to get involved in the Cypher community. There is quite a wide range for the level of detail a feature request contains. A simple sentence asking for a way to solve a particular problem is just as welcome as an outline for how some concrete proposed feature would help solve problems more efficiently.

An important point is that feature requests is a starting point for the design work of improving Cypher. Providing constructive comments to feature requests is an extremely valuable contribution.

2. Cypher Improvement Proposals

A Cypher Improvement Proposal, or CIP for short, is a document that describes a feature of Cypher. Submitting a CIP is done in the form of a pull request to this repository. The pull request should create a new CIP document in the cip directory of this repository. The CIP document should be written using the asciidoc markup language. The name of the file containing the CIP should have the form CIP{year}-{month}-{day}-{title}.adoc. The date part of the CIP file name should typically correspond to the date the CIP pull request is issued. The title part of the CIP file name should be the name of the feature the CIP introduced. Words in the title should be all lower case, and separated by a single dash (-). A good example for the title would be the name of the function or keyword the CIP proposes to introduce. Please refer to existing CIPs for examples that illustrate the naming.

CIP pull requests should have a title that match the name in the CIP file name. That means that it should follow the pattern CIP{year}-{month}-{day} {Title}. Here the Title is the same as in the file name, but using sensible title casing and separating words with spaces.

After a CIP is submitted, it follows the review process described in The Cypher Improvement Process.

Some proposals are quite simple, and can be written and championed by a single contributor. In other cases, when the proposal is more involved, it will be beneficial to form an experts group around the proposed change. A good way to form an experts group is by starting from a feature request and propose that an experts group be formed either to discuss ideas for solutions, or the details of a particular proposed solution. The experts group meet one or more times to work on the Cypher Improvement Proposal before submitting the CIP pull request to this repository.

Please refer to the The Cypher Improvement Process for more details.

2.1. Experts Groups

Experts groups are welcome to, and encouraged to, publish notes from their meetings. The natural place to do so is under the meeting minutes repository, since minutes published there will show up in the regular news feed for Cypher under https://opencypher.github.com/meeting-minutes/. Please refer to the readme in the meeting minutes repository for details on how to structure and submit meeting minutes.

2.2. Requests for Implementation

3. Contributing Code

Just Do It!