Hacking on Net::LDAP
We welcome your contributions to Net::LDAP. We accept most contributions, but there are ways to increase the chance of your patch being accepted quickly.
Net::LDAP 0.2 and later are be licensed under an MIT-style license; any contributions after 2010-04-20 must be under this license to be accepted.
Your patches should be formatted like the rest of Net::LDAP.
We use a text wrap of 76–78 characters, especially for documentation contents.
Operators should have spaces around them.
Method definitions should have parentheses around arguments (and no parentheses if there are no arguments).
Indentation should be kept as flat as possible; this may mean being more explicit with constants.
We welcome your contributions to Net::LDAP. To increase the chances of your patches being accepted, we recommend that you follow the guidelines below:
It is very important that, if you add new methods or objects, your code is well-documented. The purpose of the changes should be clearly described so that even if this is a feature we do not use, we can understand its purpose.
We also encourage documentation-only contributions that improve the documentation of Net::LDAP.
We encourage you to provide a good summary of your as a modification to History.rdoc, and if you're not yet named as a contributor, include a modification to Contributors.rdoc to add yourself.
The Net::LDAP team uses [Minitest](docs.seattlerb.org/minitest/) for unit testing; all changes must have tests for any new or changed features.
Your changes should have been tested against at least one real LDAP server; the current tests are not sufficient to find all possible bugs. It's unlikely that they will ever be sufficient given the variations in LDAP server behaviour.
If you're introducing a new feature, it would be preferred for you to provide us with a sample LDIF data file for importing into LDAP servers for testing.
Net::LDAP uses several libraries during development, all of which can be installed using RubyGems.