The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


Test process

From Mer Wiki
(Difference between revisions)
Jump to: navigation, search
Line 15: Line 15:
 
1. Create unique OBS repository, REPO
 
1. Create unique OBS repository, REPO
  
2. Create package (basename of project/packagename) in REPO
+
2. Create package (basename of project/packagename) in REPO, by linkpacing fakeobs:Core:ARCH packagename
  
 
3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.
 
3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.
Line 41: Line 41:
 
1. Create unique OBS repository, REPO
 
1. Create unique OBS repository, REPO
  
2. Create package (basename of project/packagename) in REPO
+
2. Create package (basename of project/packagename) in REPO by linkpacing fakeobs:Core:ARCH packagename
  
 
3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.
 
3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.
  
4. Upload sources to OBS package in REPO
+
4. Upload updated sources to OBS package in REPO, ignoring _meta and _attribute
  
 
5. Set up localdep:
 
5. Set up localdep:
Line 59: Line 59:
 
6. Wait for it to finish building. If there is 'failed' packages, review to gerrit -1 "I would prefer that you didn't submit this", along with which packages it broke and URLs to their build logs, else +1 "Looks good to me, but someone else must approve"
 
6. Wait for it to finish building. If there is 'failed' packages, review to gerrit -1 "I would prefer that you didn't submit this", along with which packages it broke and URLs to their build logs, else +1 "Looks good to me, but someone else must approve"
  
7. If successful, pass on (method unknown so far) repository to vendors in community for them to test as part of images, else delete repository
+
7. If successful, pass on (method unknown so far) repository+changeset id to Core vendors for them to test as part of images, else delete repository

Revision as of 08:21, 16 October 2011

Contents

Process

We center Mer contribution around our Gerrit instance and git, http://monster.tspre.org:8080 . Every single package is in git and the Core (+ ports) is described in xml files inside a git repository.

Terms

QA build server: OBS that does builds to verify if sources work okay

Code review: ssh -p 29418 username@monster.tspre.org gerrit review PATCHSET -m "Message" --code-review SCORE

When a change to a package is proposed

Step X: Checking if it builds on it's own

1. Create unique OBS repository, REPO

2. Create package (basename of project/packagename) in REPO, by linkpacing fakeobs:Core:ARCH packagename

3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.

4. Upload sources to OBS package in REPO

5. Point to repositories in REPO:

for each ARCH, ARCHSCHEDULER, add in

<repository name="Core_ARCH">
 <path repository="Core_ARCH" project="fakeobs:Core:ARCH" />
 <arch>ARCHSCHEDULER</arch>
</repository>

6. Wait for build to finish of package for each architecture. For 'succeeded' build, code review with +1 "Looks good to me, but someone else must approve", for failed, code review with -1 "I would prefer that you didn't submit this" along with URL to build log,. For 'excluded', report which architecture in comment with 0, no score.

Step X+1: Integration testing

This will check the package does not break other packages.

For each ARCH, ARCHSCHEDULER:

1. Create unique OBS repository, REPO

2. Create package (basename of project/packagename) in REPO by linkpacing fakeobs:Core:ARCH packagename

3. Locally, check out git (GERRIT/project/packagename) and merge proposed change from branch. Change ref can be found with 'ssh -p 29418 username@monster.tspre.org gerrit query status:merged --patch-sets --format JSON' (status:merged can be any kind of query) and it will give you patchsets + refs.

4. Upload updated sources to OBS package in REPO, ignoring _meta and _attribute

5. Set up localdep:

<link project="fakeobs:Core:ARCH" />
<repository name="Core_ARCH" linkedbuild="localdep">
 <path repository="Core_ARCH" project="fakeobs:CORE:ARCH" />
 <arch>ARCHSCHEDULER</arch>
</repository>

6. Wait for it to finish building. If there is 'failed' packages, review to gerrit -1 "I would prefer that you didn't submit this", along with which packages it broke and URLs to their build logs, else +1 "Looks good to me, but someone else must approve"

7. If successful, pass on (method unknown so far) repository+changeset id to Core vendors for them to test as part of images, else delete repository

Personal tools