How to Contribute to OpenNebula Development

There are several ways to contribute to OpenNebula. All of them are very welcome, without the contribution and comments from our user community there is no reason for OpenNebula!. If you want to contribute new functional components, please visit the OpenNebula ecosystem section.

How do I report a bug?

You can report bugs in the user mailing list or using OpenNebula dev.

How do I make a feature request?

You may use the development portal to make feature requests, just open a new issue and label it as Request. The issue will be used to track the discussions about the new feature. When accepted, the issue will be come a “Feature” an a target version will be assigned.

When we update the roadmap of the project and plan the features for the next release, we prioritize:

How can I contribute bug and feature patches?

Bug and feature patches should be submitted through the OpenNebula development portal to better track them (please avoid submitting them to the mailing list). You will need to create an account in dev.opennebula.org if you do not already have one.

Preparing the patch

We prefer that patches be submitted in unified diff format:

diff -u original_file.cc new_file.cc

If you have checked out the sources from git, then use:

git format-patch origin/master

Submitting the patch

Submit the patch by first entering a new issue. Be sure to specify the version of OpenNebula you are using, and also if the patch is a bug or a feature (tracker field in the issue form). When the patch addresses an open issue, just update that issue by uploading your patch. Significant patches providing major enhancements require the completion of a Contributor License Agreement, see below.

How can I contribute new components?

New components can be client tools that add new functionality or drivers that extend platform support. As project aimed at building and maintaining a production-ready enterprise-class cloud management tool, stability and robustness are key design and development principles. New components should go through an incubation phase and the quality assurance processes of the project before they can be part of the OpenNebula distribution.

The first step is to create a new project in our ecosystem. This community instrument provides potential contributors with an environment to introduce and give visibility to the new components, and to reach early adopters that can help shape and test the new components. Prior to escalation to the OpenNebula distribution, the new component needs to show that:

  • It perfectly fits within the OpenNebula toolkit
  • Its features are demanded by the community
  • It has been developed to be thoroughly tested with the quality assurance processes of the project
  • The developers allocate resources for the maintenance and support of the new component to ensure long term stability to its development
  • The developers complete a Contributor License Agreement, see below

Licensing and Copyright

Small patches which fix a bug or provide a minor enhancement might be accepted without a Contributor License Agreement being completed. These contributions do not add functionality or new intellectual property in its generally accepted sense, and so are too insubstantial to be protected by copyright. These patches must not have any copyright or license attached to them.

Significant patches which provide a major enhancement, and Ecosystem components incorporated into the OpenNebula distribution require the completion of a Contributor License Agreement. These contributions add functionality or new intellectual property in its generally accepted sense, and so have to be protected by copyright. These contributions must have a copyright attached to them. Before we can merge these contributions, you will need to read and agree to our Individual Contributor License Agreement. If you are contributing on behalf of a company, an authorized representative of your company should sign a Corporate Contributor License Agreement. You can send us a PDF version of the completed and signed agreement, or contact us to send you simple electronic forms through Echosign. All accepted contributions will be released as part of OpenNebula under the Apache v2.0 license.

How can I download the latest code?

Public Git repository is located at git://opennebula.org/one.git. To download the latest code you can issue this command in your computer:

git clone git://opennebula.org/one.git