-
Notifications
You must be signed in to change notification settings - Fork 320
Contributing to BDE
If you'd like to help us improve and extend BDE and become a part of the BDE community, then we welcome your contributions! Below you will find some basic steps required to be able to contribute to BDE. If you have any questions about this process or any other aspect of contributing to a Bloomberg open source project, feel free to send an email to [email protected] and we'll get your questions answered as quickly as we can.
In order for us to be able to easily distribute BDE and defend any intellectual property claims against it, we need you to license your contributions to us through a Contributor License Agreement. This is a similar process to the one used by the Apache Software Foundation and many other major open source projects, and in fact our CLAs are modeled on the Apache CLAs.
If you are an individual contributor (the code you are contributing belongs to you, not to your employer or any other entity), then you need to complete and sign an Individual Contributor License Agreement. After you have signed this document, scan it (to a TIFF, PNG or black-and-white PDF, not a JPEG) and email the scanned image to [email protected]. We'll confirm the receipt of your ICLA and once we've accepted it, you'll get an email from us with confirmation that your ICLA has been approved.
If you are a corporate contributor (an employee of a company or other organization that retains intellectual property rights in the code you have written, or will write, for BDE), your employer will need to complete and sign a Corporate Contributor License Agreement. Please send a link to this document to the relevant person in your organization, and have them sign the document. Once it has been signed, they'll need to scan it (to a TIFF, PNG or black-and-white PDF, not a JPEG) and email the scanned image to [email protected]. We'll confirm the receipt of their CCLA and once we've accepted it, they'll get an email from us with confirmation that their CCLA has been approved. After that is done, they can email us at the same address to let us know that you (and anyone else in your organization that wishes to contribute) are authorized to contribute under this CCLA.
Note: We are aware that scanning and emailing documents is not the most efficient way to handle them, and we're working on an improved, web-browser based system for electronically executing CLAs. Stay tuned on that front.
We hope to enlist software developers who share our goals to extend the BDE libraries. One of the key goals of these libraries is to maintain a high level of quality and a high degree of uniformity in documentation, testing, and implementation, so contributors should read over the style conventions used in the libraries, and in addition should understand the rigorous testing required for all changes.
Like other projects hosted on GitHub, you are of course free to fork our BDE repository as many times as you wish, create branches and work on your contributions in your fork. To prepare a specific contribution for considering (and eventually merging), there are a few steps you need to follow:
- Ensure that your contribution is in its own branch in your fork of the BDE repository (no other changes should be in the branch).
- Each commit in your branch that you are submitting must have your email address as the 'author'. If you've signed a Contributor License Agreement, this must be the same email address as the one on the agreement. If you are contributing on behalf of your employer (for example, if you are a Bloomberg employee) your commits must have your corporate email address in the 'author' field. If you need to configure this specifically for your clone of the BDE repository (because you also work on other projects using
git
), usegit config user.email <address>
in that repository clone to set the address for that single clone. - Use
git rebase
to ensure that your contribution applies cleanly to the current HEAD of themaster
branch in the BDE repository. This also provides a good opportunity to 'squash' any commits in your branch that you'd rather not have live on in infamy! - Create a GitHub 'pull request' for your branch, and select the
submissions
branch in the BDE repository as the target branch. We use this branch as the target for pull requests to avoid mistaken merges into themaster
branch. If you submit a pull request targeted atmaster
, it will be closed and you'll have to resubmit it.
After your pull request has been created, one of the BDE team developers will review it, and may ask you questions and comment on your changes
in the GitHub issue associated with it. When they are satisfied that the code in the pull request is ready for further review and testing, it
will be pulled into the internal development systems at Bloomberg, where it will be thoroughly tested against a number of production platforms to
ensure it does not cause any regressions or unexpected behavior. When this process is complete, the contribution will be merged to master
and your pull request will be closed. (Note that it will be closed, not merged, because it is intentionally targeted at the submissions
branch).
Finally, note that the BDE libraries are in active use within Bloomberg, and we are still working out a workflow and process that will allow us to accept contributions without breaking internal software that depends on these libraries. We gratefully accept contributions, though integration into an official release may take some time as contributions move through our processes.
If you have questions, comments, suggestions for improvement or any other inquiries regarding BDE or this wiki, feel free to open an issue in the issue tracker.
BDE Wiki by Bloomberg Finance L.P. is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.