HOWTO » History » Version 5
Loïc Dachary, 03/22/2015 10:50 AM
1 | 2 | Loïc Dachary | h3. HOWTO backport |
---|---|---|---|
2 | 1 | Loïc Dachary | |
3 | Based on what would be done for the Giant branch |
||
4 | |||
5 | h3. Update the inventory |
||
6 | |||
7 | * ssh -p2222 backports@workbench.dachary.org |
||
8 | * screen -x |
||
9 | * ( cd .. ; github2gitlab --github-token $github_token --github-repo ceph/ceph --gitlab-url http://workbench.dachary.org --gitlab-token $gitlab_token --gitlab-repo ceph/ceph-backports --branches master,dumpling,emperor,firefly,giant,hammer,firefly-backports,giant-backports,dumpling-backports --verbose ) |
||
10 | * ( python ../sanity.py ; cd ../ceph-backports.wiki ; git commit -a -m 'update' ; git push ) |
||
11 | * firefox http://workbench.dachary.org/ceph/ceph-backports/wikis/giant |
||
12 | |||
13 | h3. Backport issues |
||
14 | |||
15 | The helper snippet at http://workbench.dachary.org/dachary/ceph-workbench/issues/3 can be used to semi automate the process below |
||
16 | |||
17 | * For each entry at http://workbench.dachary.org/ceph/ceph-backports/wikis/giant#issues-that-need-backporting |
||
18 | * git cherry-pick -x the commits from the pull request that was targettig master (not from the pull requests targeting stable branches) |
||
19 | * create a pull request with the backport with a reference to the issue and set the milestone to giant |
||
20 | * add a reference to the pull request in the issue |
||
21 | * if the make check bot finds a problem, fix it |
||
22 | |||
23 | 2 | Loïc Dachary | h3. Collect pending pull requests into an integration branch |
24 | 1 | Loïc Dachary | |
25 | The snippet at http://workbench.dachary.org/dachary/ceph-workbench/issues/4 can help |
||
26 | |||
27 | * create a giant-backport branch |
||
28 | * fetch all pull requests from github |
||
29 | * git merge all pull requests |
||
30 | * modify the pull requests individually to fix merge conflicts (i.e. they must merge cleanly, which may involving aggregating two pull requests into a single one designed to properly resolve the conflict) |
||
31 | * compile with ./autogen.sh ; ./configure ; make -j4 |
||
32 | * modify the pull requests individually to fix compilation errors |
||
33 | 3 | Loïc Dachary | |
34 | h3. Format of teuthology analysis entries |
||
35 | |||
36 | For instance http://tracker.ceph.com/issues/11153#rgw is structured like so: |
||
37 | |||
38 | * In chronological order |
||
39 | * The command line (that can be copy/pasted) used to run the suite |
||
40 | * A bullet point with the URL to the suite run in pulpito prefixed by |
||
41 | ** *running* if the run is not complete |
||
42 | ** *red* if the run has at least one error |
||
43 | ** *green* if the run has no error |
||
44 | 4 | Loïc Dachary | * If the run has at least one error, the output of the fail formatter snippet (found at http://workbench.dachary.org/dachary/ceph-workbench/issues/2 is appened to it) is added and edited when the errors are analyzed |
45 | 5 | Loïc Dachary | |
46 | h3. Synchronized repositories |
||
47 | |||
48 | When running teuthology tests for a given branch (say giant), the "ceph-qa-suite":https://github.com/ceph/ceph-qa-suite branch must match. In the simplest case it is enough to write: |
||
49 | <pre> |
||
50 | teuthology-suite --suite-branch giant ... --ceph giant ... |
||
51 | </pre> |
||
52 | When a Ceph pull request (for instance "rgw acl response should start with <?xml version=1.0 ?>":https://github.com/ceph/ceph/pull/4082) needs to be synchronized with a ceph-qa-suite pull request (for instance "create a new get_acl helper to ensure proper xml is compared":https://github.com/ceph/ceph-qa-suite/pull/370), dedicated branches must be created in the Ceph and ceph-qa-suite repositories. For instance: |
||
53 | <pre> |
||
54 | teuthology-suite --suite-branch wip-rgw-acl-giant ... --ceph giant-backports ... |
||
55 | </pre> |
||
56 | Note that it is not possible to specify a branch that is outside of the Ceph or ceph-qa-suite repositories: write access to these repositories is necessary. |
||
57 | |||
58 | For S3 tests an additional repository must be synchronized in a similar way https://github.com/ceph/s3-tests: there must exist a branch with the same name as the branch specified with **--suite-branch**. For instance the "ceph-qa-suite wip-rgw-acl-giant":https://github.com/ceph/ceph-qa-suite/tree/wip-rgw-acl-giant branch must have a "s3-test wip-rgw-acl-giant":https://github.com/ceph/s3-tests/tree/wip-rgw-acl-giant counterpart. |