Crowbar is maintained by Dell (http://dell.com/crowbar) under the Apache 2 license.
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!).
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.
- Individual: https://github.com/dellcloudedge/crowbar/blob/master/license/Corporate%20Contributor%20License%20Agreement.pdf
- Corporate: https://github.com/dellcloudedge/crowbar/blob/master/license/Individual%20License%20Agreement.pdf
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
- 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
- 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
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.
|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.