WebRocket is a collaborative project and we encourage contributions from anyone and everyone. If you want to contribute in the way that will help us most, we recommend fixing reported bugs and implementing the feature ideas in 'TODO'. However, if you think of new features to add, please suggest them too -- we might like your idea.
If you don't feel up to hacking WebRocket, there are many other ways to help. You can answer questions on the mailing lists, write documentation and examples, find and report bugs, contribute to the WebRocket web pages, or develop a package that works with WebRocket.
Formatting - Go is simple and straightforward enough to avoid code
mess. Although, you should always check your code formating with the
gofmt
tool.
Testing - If you are implementing a new feature, please write the
appropriate tests to prove its proper functionality. Remember to always
check that all the tests are passing before you submit your changes.
Use the make check
command to run our test suite.
Documentation - All new types and functions added to the code should be documented. Good documentation makes your life and ours much easier.
Every patch must have several pieces of information before we can properly evaluate it.
When you have all these pieces, bundle them up and send us a pull request. If your patch is not complete and you think it needs more discussion, don't hesitate to create an issue or discuss on existing one. If you revise your patch, send it as a followup to the initial topic.
Description - Bug fixes must include a description of the bug and how your patch fixes it. New features must include a description of the feature and your implementation.
ChangeLog - A ChangeLog entry as plaintext (separate from the patch).
See the various ChangeLog files for format and content. Note that, unlike
some other projects, we do require ChangeLogs also for documentation, i.e.
txt files in the docs
directory.
The patch itself - Please, reread your patch's diff before you submit
it. Use the git diff
command to review it.
Do not mix changes - If you send several unrelated changes together, we will ask you to separate them so we can consider each of the changes by itself.
Do not make formatting changes - Making cosmetic formatting changes (indentation, etc) makes it harder to see what you have really changed.