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
(Step X+1: Integration testing)
(Undo revision 271 by 153.96.46.161 (Talk))
Line 37: Line 37:
 
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.
 
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.
  
Home run! Great slugging with that anwesr!
+
=== 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:
 +
 
 +
<code>
 +
<link project="fakeobs:Core:ARCH" />
 +
<repository name="Core_ARCH" linkedbuild="localdep">
 +
  <path repository="Core_ARCH" project="fakeobs:CORE:ARCH" />
 +
  <arch>ARCHSCHEDULER</arch>
 +
</repository>
 +
</code>
 +
 
 +
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

Revision as of 06:34, 10 November 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. It is possible to monitor gerrit events with 'gerrit stream-events'

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 V: Validate packaging

. Validate proposed changes + packaging as being OK

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