Difference between revisions of "How to submit patches"
(Static code analysis) |
(Link to article about infrastructure) |
||
Line 6: | Line 6: | ||
=== Obtaining the source code === | === Obtaining the source code === | ||
− | The OpenVZ | + | The sources of OpenVZ components are tracked by Git SCM and placed on [[OpenVZ infrastructure|repositories]]. |
− | + | You either could download packed sources or use git tool itself. | |
For example to clone vzctl one need to type | For example to clone vzctl one need to type |
Revision as of 05:59, 11 April 2015
Contents
Setting up working environment
Obtaining the source code
The sources of OpenVZ components are tracked by Git SCM and placed on repositories. You either could download packed sources or use git tool itself.
For example to clone vzctl one need to type
git clone git://git.openvz.org/vzctl.git
Compiling the source code
FIXME describe how to compile OpenVZ components
Changing the source code
Kernel
When you change the source code keep in mind - we prefer tabs and indentations to be 8 characters width. Consider reading Linux kernel coding style.
Other "rules" could be learned from the source code - just make your code to look similar.
Userspace
FIXME describe code style
Producing a patch
Kernel
There are at least two ways to make it right.
1) git format-patch
You might need to read documentation on Git SCM how to prepare patch for mail submission. Take a look on http://book.git-scm.com/ and/or http://git-scm.com/documentation for details. It should not be hard at all.
2) Use "diff -up"
Use diff -up
or diff -uprN
to create patches.
Userspace
FIXME describe preparing patch
Checking patches for errors
Kernel
Basic style error checking is provided by scripts/checkpatch.pl script from linux kernel source tree. You might have headers or complete sources of linux kernel at /usr/src/. Run
checkpatch.pl my_patch.patch (consider --no-tree option for headers-only)
It will produce detailed report on style problems in your patch. Make sure to fix all _errors_(some warnings may be ignored).
Userspace
Several of our components contains tests. To check whether your patches don't harm anything run:
make test
It will launch tests. Check for error messages produced by it. Beside to functional and unit tests it would be good to check new code with static analysis tools.
Sending patches
Kernel
Patches related to kernel should be sent to development mailing list devel@openvz.org which is located at https://openvz.org/mailman/listinfo/devel. Pay attention that mails from emails not subscribed to list must pass moderation (i.e. not so fast).
Please make sure the email client you're using doesn't screw your patch (line wrapping and so on).
Userspace
Patches related to userspace tools should be submitted to code review system (FIXME).
Wait for response
Be patient. Most OpenVZ developers are pretty busy people so if
there is no immediate response on your patch - don't be surprised,
sometimes a patch may fly around a week(s) before it get reviewed.
But definitely the patches will not go to /dev/null
.