You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+14-22Lines changed: 14 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,40 +1,36 @@
1
-
Contributing to Apache CloudStack (ACS)
2
-
=======================================
1
+
# Contributing to Apache CloudStack (ACS)
2
+
3
+
## Summary
3
4
4
-
Summary
5
-
-------
6
5
This document covers how to contribute to the ACS project. ACS uses GitHub PRs to manage code contributions.
7
6
These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one. Your proposed code changes will be published to your own fork of the ACS project, and you will submit a Pull Request for your changes to be added.
8
7
9
8
_Let's get started!!!_
10
9
11
-
Bug fixes
12
-
---------
10
+
## Bug fixes
13
11
14
12
It's very important that we can easily track bug fix commits, so their hashes should remain the same in all branches.
15
13
Therefore, a pull request (PR) that fixes a bug, should be sent against a release branch.
16
14
This can be either the "current release" or the "previous release", depending on which ones are maintained.
17
15
Since the goal is a stable main, bug fixes should be "merged forward" to the next branch in order: "previous release" -> "current release" -> main (in other words: old to new)
18
16
19
-
Developing new features
20
-
-----------------------
17
+
## Developing new features
21
18
22
19
Development should be done in a feature branch, branched off of main.
23
20
Send a PR(steps below) to get it into main (2x LGTM applies).
24
21
PR will only be merged when main is open, will be held otherwise until main is open again.
25
22
No back porting / cherry-picking features to existing branches!
26
23
27
-
PendingReleaseNotes file
28
-
------------------------
24
+
## PendingReleaseNotes file
25
+
29
26
When developing a new feature or making a (major) change to an existing feature you are encouraged to append this to the PendingReleaseNotes file so that the Release Manager can
30
27
use this file as a source of information when compiling the Release Notes for a new release.
31
28
32
29
When adding information to the PendingReleaseNotes file make sure that you write a good and understandable description of the new feature or change which you have developed.
33
30
34
31
Updating the PendingReleaseNotes file is preferably a part of the original Pull Request, but that is up to the developers' discretion.
35
32
36
-
Fork the code
37
-
-------------
33
+
## Fork the code
38
34
39
35
In your browser, navigate to: [https://github.com/apache/cloudstack](https://github.com/apache/cloudstack)
40
36
@@ -51,8 +47,7 @@ $ git fetch upstream
51
47
$ git rebase upstream/main
52
48
```
53
49
54
-
Making changes
55
-
--------------
50
+
## Making changes
56
51
57
52
It is important that you create a new branch to make changes on and that you do not change the `main` branch (other than to rebase in changes from `upstream/main`). In this example I will assume you will be making your changes to a branch called `feature_x`. This `feature_x` branch will be created on your local repository and will be pushed to your forked repository on GitHub. Once this branch is on your fork you will create a Pull Request for the changes to be added to the ACS project.
58
53
@@ -68,8 +63,7 @@ $ git commit -a -m "descriptive commit message for your changes"
68
63
69
64
> The `-b` specifies that you want to create a new branch called `feature_x`. You only specify `-b` the first time you checkout because you are creating a new branch. Once the `feature_x` branch exists, you can later switch to it with only `git checkout feature_x`.
70
65
71
-
Rebase `feature_x` to include updates from `upstream/main`
## Rebase `feature_x` to include updates from `upstream/main`
73
67
74
68
It is important that you maintain an up-to-date `main` branch in your local repository. This is done by rebasing in the code changes from `upstream/main` (the official ACS project repository) into your local repository. You will want to do this before you start working on a feature as well as right before you submit your changes as a pull request. I recommend you do this process periodically while you work to make sure you are working off the most recent project code.
75
69
@@ -89,8 +83,7 @@ $ git rebase main
89
83
90
84
> Now your `feature_x` branch is up-to-date with all the code in `upstream/main`.
91
85
92
-
Make a GitHub Pull Request to contribute your changes
## Make a GitHub Pull Request to contribute your changes
94
87
95
88
When you are happy with your changes, and you are ready to contribute them, you will create a Pull Request on GitHub to do so. This is done by pushing your local changes to your forked repository (default remote name is `origin`) and then initiating a pull request on GitHub.
96
89
@@ -114,8 +107,7 @@ To initiate the pull request, do the following:
114
107
115
108
If you are requested to make modifications to your proposed changes, make the changes locally on your `feature_x` branch, re-push the `feature_x` branch to your fork. The existing pull request should automatically pick up the change and update accordingly.
116
109
117
-
Cleaning up after a successful pull request
118
-
-------------------------------------------
110
+
## Cleaning up after a successful pull request
119
111
120
112
Once the `feature_x` branch has been committed into the `upstream/main` branch, your local `feature_x` branch and the `origin/feature_x` branch are no longer needed. If you want to make additional changes, restart the process with a new branch.
121
113
@@ -129,6 +121,6 @@ $ git branch -D feature_x
129
121
$ git push origin :feature_x
130
122
```
131
123
132
-
Release Principles
133
-
------------------
124
+
## Release Principles
125
+
134
126
Detailed information about ACS release principles is available at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+principles+for+Apache+CloudStack+4.6+and+up
StorPool provides the ‘storpool_qos’ service ([QoS user guide](https://kb.storpool.com/storpool_misc/qos.html#storpool-qos-user-guide)) that tracks and configures the storage tier for all volumes based on a specifically provided `qc` tag specifying the storage tier for each volume.
347
345
348
346
To manage the QoS limits with a `qc` tag, you have to add a `qc` tag resource detail to each disk offering to which a tier should be applied, with a key `SP_QOSCLASS` and the value from the configuration file for the `storpool_qos` service:
Copy file name to clipboardExpand all lines: tools/marvin/marvin/misc/build/CI.md
+11-18Lines changed: 11 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,8 +17,7 @@ specific language governing permissions and limitations
17
17
under the License.
18
18
-->
19
19
20
-
about
21
-
=====
20
+
# about
22
21
23
22
This document talks about the *evolving* continuous test infrastructure used to setup, deploy, configure and test Apache CloudStack. Information here is useful for anyone involved in build, test, continuous integration even operators of CloudStack.
24
23
@@ -96,22 +95,19 @@ b. multiple cluster
96
95
c. inter-zone tests
97
96
d. multi-pod tests
98
97
99
-
marvin integration
100
-
==================
98
+
## marvin integration
101
99
102
100
once cloudstack has been installed and the hypervisors prepared we are ready to use marvin to stitch together zones, pods, clusters and compute and storage to put together a 'cloud'. once configured - we perform a cursory health check to see if we have all systemVMs running in all zones and that built-in templates are downloaded in all zones. Subsequently, we are able to launch tests on this environment
103
101
104
102
Only the latest tests from git are run on the setup. This allows us to test in a pseudo-continuous fashion with a nightly build deployed on the environment. Each test run takes a few hours to finish.
105
103
106
-
control via github
107
-
==================
104
+
## control via github
108
105
109
106
there are two GitHub repositories controlling the test infrastructure.
110
107
a. The puppet recipes at gh:acs-infra-test
111
108
b. The gh:cloud-autodeploy repo that has the scripts to orchestrate the overall workflow
112
109
113
-
workflow
114
-
========
110
+
## workflow
115
111
116
112
When jenkins triggers the job following sequence of actions occur on the test infrastructure
117
113
@@ -149,11 +145,10 @@ The $distro argument chooses the hostOS of the mgmt server - this can be ubuntu
149
145
150
146
12. Tests are run using the nose test runner with the marvin plugin and reports are recorded by jenkins.
151
147
152
-
limitations
153
-
===========
148
+
## limitations
149
+
150
+
## enhancements
154
151
155
-
enhancements
156
-
============
157
152
- packaging tests
158
153
- puppetize the cobbler appliance
159
154
- dogfooding
@@ -164,14 +159,12 @@ enhancements
164
159
- external devices (LB, VPX, FW)
165
160
- mcollective?
166
161
167
-
future
168
-
======
162
+
## future
163
+
169
164
- not everyone deploys cloudstack the same
170
165
- multiple hv environments with multiple hv configurations
0 commit comments