How to do Samba: Nicely
DRAFT !!!: How to be a Samba developer and community member: Nicely
Samba strives to be a welcoming community, for users, developers and all who seek to use or improve Samba.
Samba is a Free Software project, and the quality of Samba is in both community we build just as much as the software we produce.
To aid this goal, the following are some hints of how we do community, collaboration and development togeather.
The Samba project is mailing list oriented. Make sure you are subscribed to either or both of the samba-technical and samba mailing lists, and be active on those lists, remembering to help fellow users and developers as much as you ask for assistance.
Remember that these mailing lists are archived, so please be professional.
Your posts will be read by current and future employers, across multiple cultures.
Making things even harder, much context and nuance is lost in e-mail and other text-based communication.
If an email wouldn't be considered appropriate in your home, work, or college setting, it isn't appropriate on the Samba mail lists either, so please take care before pressing 'send'.
Collaboration and Contribution
When proposing changes to Samba, first check the changes are tested, and will pass our full testsuite via GitLab CI, or clearly mention that the change is still a work in progress with a subject tag like WIP:
Patches should be proposed as git-am patches sent as attachments with the mime type of text/plain to the samba-technical mailing list. The more associated explanation of what the patch does or is intended to fix the better. If it's designed to fix a specific bug, please add a reference to the Samba bugzilla URL containing the bug in the form BUG: https://url. There are more details on to Contribute to Samba at a technical level.
Actively seek feedback for your changes, ideally when still a work in progress. Others may have considered this area of Samba previously, or have an interest, their input can make your changes better.
Be practical with feedback. If possible, feedback should be concrete, a revised patch is even better (as it leaves less room for confusion).
Give your feedback early if possible. The earlier the feedback is given the easier it is to incorporate your thoughts. Likewise, if changes have already been proposed a number of times, please help finish the patches off rather than suggest a total re-work.
Always play the ball, not the player. All of us are invested deeply in the work we do, so be respectful of the effort put in to make the changes. A few words of thanks and appriciation go a long way, especially when a concern needs to be raised.
Finally, do avoid the every-tempting risk of bikeshedding.
Be honoured that a fellow member of the community has taken the time to look at your changes, and be humble when accepting the feedback. Try not to take feedback on the changes personally, but do seek to improve both personally and professionally in response to concerns or suggestions.
Take the time to work though the feedback given. While it will sometimes seem to be out of all proportion to the change involved, respect those giving their time to comment on your work.
Requesting a change be reverted or withdrawn
If possible, we prefer not to revert changes that have already gone into master, and to avoid withdrawing patches already proposed. If there is a practical technical reason such a change should not be accepted or reviewed, please make this case on the appropriate list. If it's a case of an "oops, mistake" in the patch we'll be happy to pretend it never got posted.
Upholding this ideal
We, as members of the Samba Team and Samba community are responsible for upholding this ideal by example in our own behaviour.
However there will be times when we fail to live to these ideals, or there may be new members of our community who are unware of how we do Samba.
In these cases, please gently remind your fellow community members that this is how we behave, in and around the Samba community.
Feel free to link to this wiki page for clarification.