Skip to content

Contributing to BDE

Alexander Beels edited this page Feb 22, 2016 · 7 revisions

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 simple 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 open-tech@bloomberg.net and we'll get your questions answered as quickly as we can.

Contribution Licensing

Since BDE is distributed under the terms of the Apache License, Version 2.0, contributions that you make to BDE are licensed under the same terms. In order for us to be able to accept your contributions, we will need explicit confirmation from you that you are able and willing to provide them under these terms, and the mechanism we use to do this is called a Developer's Certificate of Origin DCO. This is very similar to the process used by the Linux(R) kernel, Samba, and many other major open source projects.

To participate under these terms, all that you must do is include a line like the following as the last line of the commit message for each commit in your contribution:

Signed-Off-By: Random J. Developer <random@developer.example.org>

You must use your real name (sorry, no pseudonyms, and no anonymous contributions).

Producing changes (patches) for BDE

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.

Sending code contributions

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 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), use git config user.email <address> in that repository clone to set the address for that single clone.
  • Each commit in your branch must include a Signed-Off-By line indicating your acceptance of the contribution terms outlined above. This can be added by Git itself, by including the -s command line argument when you run git commit.
  • Use git rebase to ensure that your contribution applies cleanly to the current HEAD of the master 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, targeted at master.

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.

Code-Review

Code review is typically conducted on github.com. For very complex changesets, we may make other arrangements for conducting a code review.

Final comments

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.

Questions, Comments, and Feedback

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.


Creative Commons License  BDE Wiki by Bloomberg Finance L.P. is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.