I want to start contributing to the Citadel project as a developer, but I want to understand the developer process for submitting changes and testing.
I have been using Citadel as a small business server for a few years now and have fixed bugs and limitations and also added a few features for my own use over time. I don't want to start committing code and find out that I should have been doing it a different way or break anyone's development. Is there any document covering how-to and best practices? If not, here are my initial questions: Git I have never used git before, but have cloned down the source and did a little reading. I think all I need to do is git add my changes and then commit. What is the best practice? Create branches? Doesn't matter? Do you have an example commit command so I know all the options that I should be using. Any standards? Testing Is there any test suite for Citadel? I do my own testing, but I mainly support Outlook and IMAP, so I am not sure how to test for regression in other protocols and clients. How are committed changes tested before release? New Features If I have an idea for a new feature, how do I find out if you want it implemented and the best way to integrate? Example: I implemented Flagging in IMAP by expanding on the Visit structure. Example: I expanded aliasing to allow users to use email addresses appended by anything to go to their account without explicitly adding an alias (e.g. User is myacct. Email like myaccts...@example.com, myacctb...@example.com, etc will be redirected to myacct). Has been very useful for anti-spamming and identifying who gave away/lost and email address. Supported sending using the alias also.