License

cloudedge edited this page Aug 31, 2012 · 5 revisions
Clone this wiki locally

Apache 2

Crowbar is maintained by Dell (http://dell.com/crowbar) under the Apache 2 license.

Component Licenses

We are planning to move this into /crowbar_framework/doc/default/[barclamp]/license.md for each barclamp to create a consolidated list specific to your install. Until then, see Licenses for Components (please update!).

Contributors

Contributor licenses protect you and the project! They are designed to ensure that contributions to the project are open and not encumbered by licenses or other obligation. They are not designed to limit you (the Apache license is very open) - they are for your protection.

We will accept small pushes and bug fixes without a CLA; however, we ask that you sign a Contributor License Agreement (CLA) if you plan to make regular or substantial code contributions. The CLA is based upon the Apache 2 CLA.

CLAs:

Guidelines for Pull Requests

  • Must be Apache 2 license

  • For bugs & minor items (20ish lines), we can accept the request at our discretion

  • UI strings are localized (only EN file needs to be updated)

  • Does not inject vendor information (Name or Product) into Crowbar expect where relevant to explain utility of push (e.g.: help documentation & descriptions).

  • Passes code review by Dell Crowbar team reviewer

  • Does not degrade the security model of the product

  • Items requiring more scrutiny, including signing CLA

    • Major changes
    • New barclamps
    • New technology

Timing

  • Accept no non-bug fix push requests within 2 weeks of a release fork
  • No SLA - code accepted at Dell's discretion. No commitment to accept changes.

Coding Expectations [PRELIMINARY / PROPOSED 8/31]

  • Copyright & License header will be included in files that can tolerate headers
  • At least 1 line comments as header for all methods
  • Unit tests for all models concurrent with pull request
  • BDD tests for all API calls and web pages concurrent with pull request
  • Documentation for API calls concurrent with pull request

Testing/ Validation

  • For core functions, push will be validated to NOT break build or deploy or our commercial products
  • For product suites (OpenStack, Hadoop, etc), push will be validated to NOT break build or deploy our commercial products
  • For operating systems that are non-core, we will not validate on the target OS for the push (e.g.: not testing Suse install at this point)
  • For non-DellCloudEdge barclamps – no rules!
  • Eventually, we would expect that a pull request would be built and tested in our CI system before the push can be accepted

Feature Progression

The following table shows the progression of new feature additions to Crowbar. The purpose of this list is to help articulate how new features appear in Crowbar and when they are considered core.

Phase Comments Roadmap Support On Trunk
Proposed Conceptual ideas and suggestions for Crowbar functionality that have not been implemented as code May be shown None N/A
Proof of Concept Initial code showing partial functionality for feature Optionally Identified Negative Test (Does not impact core) No (on branch)
Incubated Base functional code allowing use of feature to demonstrate value Identified Negative Test (Does not impact core) No (on branch)
Stable Base functional code is available for use in select builds Included Validated by QA, No Support Yes
Core Feature code integrated into operations of Crowbar in fundamental way Central Validated by QA, Current Version Support Yes
Supported Same as core, but available with commercial support Central Backwards Support via Patches Yes & Maintained on Branches

Note: Features are NOT required to progress through all these phases! Architectural changes may skip ahead based on their level of impact and disruption.