|
Treat everyone as you would
like yourselves to be treated.
Keep your head up and ego down and all will be well.
If you want to check-in to the vtiger CRM CVS
repository
- Talk to the owner of the module. Be friendly with the module
owner but understand that he is also human. Coordinate your work with
them. You will be giving the patches/fixes/features/testcases to the
module owner who in turn will check it in. The module owner will decide
whom to allocate as a Peer depending on his view of the contributors.
In case you have submitted your patches to the owner and have not got
their feedback in reasonable amount of time, approach the Peer for
escalation. Do not contact both the Peer and the Owner at the
same time.
- If your patches are not integrated, do not take it on your ego.
There could be a multitude of reasons for it not being checked-in. We
will try to tell you why it was not checked in but no commitments on
that!
- If your patches span multiple modules, please send it to a
single Owner mentioning that it spans a,b,c modules for example.
- Make sure that your code compiles cleanly on all platforms
(minimally, Win32 and Linux).
Modules
Ownership Document
Kindly refer to the above diagram, which states
pictorially the repository access.
The Leads and Accounts modules will have an
Owner and the d1,d2,d3 will get in touch with their respective Owners
with their contributions. The Owners in turn will review the code
and decide to check them in or not into the core vtiger repository.
Tips for Contributing New Features to vtiger CRM
- Learn the vtiger CRM codebase
- Design in the open. Post your plans to the appropriate
forum/mailinglist.
- Try hard to design your feature so that it can be implemented and
reviewed in manageable size patches. If you can implement and submit
core elements first and build on them in subsequent patches, so much
the better. If you think your feature can only be implemented and
reviewed in one enormous chunk, ask for design help in the appropriate
forum/mailinglist from the developers with whom you have
established relationships.
Miscellaneous Tips
- Work on the most important bugs first.
- Take extra time to do it right the first time
- It's also better to come up with one really solid, well tested,
well commented, clean, easy to maintain piece of code than a bunch of
quick fixes. You (or someone else) will be back in that code
someday. It's easier to do it right once, when your mind is in
the problem, then to do it once quickly and once again when you have to
fix it The only thing worse that not understanding someone else's
code is not understanding your own.
- Test your code
- Work on multiple bugs in parallel
- You should be working on the most important bugs first. But
those might be difficult bugs (hard to reproduce crashers, big rewrites
for performance, etc.) which can take several days or weeks to
complete, plus the time for reviews. Do not just spend time on
the big bugs, try some small ones too so that it will boost your
confidence levels. State in the forums that you are working on it so
that we do not have multiple guys working on the same bug.
- Smaller patches get reviewed faster
- Get advice before working on a patch or feature before you start
working on it, instead of after
- Avoid debating the reviewer in forums or mailinglist. Ask for a
call to discuss the issue if required.
- Do thorough code reviews
- When you review someone else's code, review thoroughly. If
another engineer checks in code that causes regressions or introduces
bugs, you might be the one who has to fix it later. Save yourself
(and others) time later by doing a solid code review.
- Review your own code before you ask for reviews
- If you're working on something massive, start a branch
Taking up bugs for fixing
- Refer to the online hosted vtiger crm helpdesk to see who is
working on which bug.
- Contact the person who is working on the bug if need be.
- If it is an untouched bug, volunteer to take it up and someone
will assign it to you.
- Do be nice and fill up the expected date of delivery. The product
is a team effort hence if you are being too-hardpressed for time,
intimate the forum of the status and ask if someone else
can take it up. This will keep everyone on the same page and your
concern will be appreciated
Please note, we believe growth is symbiotic.
We do not claim to be the reference. So, in case you feel there
are scope for improvements, feel free to mail to info@vtiger.com
|