doc/developer-guide/options-to-contribute.md
While you have gone through 'how to contribute' guides, if you are not sure what to work on, but really want to help the project, you have now landed on the right document :-)
Instead of planning to fix all the below issues in one patch,
we recommend you to have a a constant, continuous flow of improvements
for the project. We recommend you to pick 1 file (or just few files) at
a time to address below issues.
Pick any .c (or .h) file, and you can send a patch which fixes any
of the below themes. Ideally, fix all such occurrences in the file, even
though, the reviewers would review even a single line change patch
from you.
Most of the time, some of these arrays may be used for 'error' handling, and it is possible to use them only in that scope.
Reference: https://review.gluster.org/20846/
Example:
char new_path_name[PATH_MAX] = {0}; to char new_path_name[PATH_MAX];
calloc() to malloc() wherever it makes sense.In a case of allocating a structures, where you expect certain (or most of)
variables to be 0 (or NULL), it makes sense to use calloc(). But otherwise,
there is an extra cost to memset() the whole object after allocating it.
While it is not a significant improvement in performance, code which gets
hit 1000s of times in a second, it would add some value.
Reference: https://review.gluster.org/20878/
snprintf(), instead of strncpy() while dealing
with strings.strncpy() won't null terminate if the dest buffer isn't big enough; snprintf()
does. While most of the string operations in the code is on array, and larger
size than required, strncpy() does an extra copy of 0s at the end of
string till the size of the array. It makes sense to use snprintf(),
which doesn't suffer from that behavior.
Also check the return value from snprintf() for buffer overflow and handle accordingly
Reference: https://review.gluster.org/20925/
.h file, and see if a structure is very large, and see
if re-aligning them as per coding-standard gives any size benefit,
if yes, go ahead and change it. Make sure you check all the structures
in the file for similar pattern.Reference: [Check this section](https://github.com/gluster/glusterfs/blob/master/doc/developer-guide/coding-standard.md#structure-members-should-be-aligned-based-on-the-padding-requirements
Good progress! Glad you are interested to know more. We are surely interested in next level of contributions from you!
Visit Coverity Dashboard.
Now, if the number of defect is not 0, you have an opportunity to contribute.
You get all the detail on why the particular defect is mentioned there, and most probable hint on how to fix it. Do it!
Reference: https://review.gluster.org/21394/
Use the same reference Id (789278) as the patch, so we can capture it is in single bugzilla.
Clang-Scan is a tool which scans the .c files and reports the possible issues, similar to coverity, but a different tool. Over the years we have seen, they both report very different set of issues, and hence there is a value in fixing it.
GlusterFS project gets tested with clang-scan job every night, and the report is posted in the job details page. As long as the number is not 0 in the report here, you have an opportunity to contribute! Similar to coverity dashboard, click on 'Details' to find out the reason behind that report, and send a patch.
Reference: https://review.gluster.org/21025
Again, you can use reference Id (1622665) for these patches!
In the file you open, see if the lock is taken only to increment or decrement a flag, counter etc. If yes, then recommend you to convert it to ATOMIC locks. It is simple activity, but, if you know programing, you would know the benefit here.
NOTE: There may not always a possibility to do this! You may have to check with developers first before going ahead.
Reference: https://review.gluster.org/21221/
The job runs regression with asan builds, and you can also run glusterfs with asan on your workload to identify the leaks. If there are any leaks reported, feel free to check it, and send us patch.
You can also run valgrind and let us know what it reports.
Reference: https://review.gluster.org/21397
This is something which we are not focusing right now, happy to collaborate!
Reference: https://review.gluster.org/21276
There are few cases of pending features, or pending validations, which are pending from sometime. You can pick them in the given file, and choose to fix it.
You are most welcome! Our community is open for your contribution! First thing which comes to our mind is documentation. Next is, testing or validation.
If you have some hardware, and want to run some performance comparisons with different version, or options, and help us to tune better is also a great help.
We have some documentation in glusterfs repo, go through these, and see if you can help us to keep up-to-date.
The https://docs.gluster.org is powered by https://github.com/gluster/glusterdocs repo. You can check out the repo, and help in keeping that up-to-date.
Our website is maintained by https://github.com/gluster/glusterweb repo. Help us to keep this up-to-date, and add content there.
Write blogs about Gluster, and your experience, and make world know little more about Gluster, and your use-case, and how it helped to solve the problem.
./run-tests.sh from the root of the project repo.You can add more test case to match your use-case, and send it as a patch, so you can make sure all future patches in glusterfs would keep your usecase intact.
Gluster Organization has rich set of ansible roles, which are actively maintained. Feel free to check them out here - https://github.com/gluster/gluster-ansible
We have prometheus repo, and are actively working on adding more metrics. Add what you need @ https://github.com/gluster/gluster-prometheus
This is a project, where at any given point in time, you want to run some set of commands locally, and get an output to analyze the status, it can be added. Contribute @ https://github.com/gluster/gluster-health-report
We have something for you too :-)
Please visit our https://github.com/gluster/gcs repo for checking how you can help, and how gluster can help you in container world.
For any queries, best way is to contact us through mailing-list, mailto:[email protected]