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:
0 commit comments