(→Release engineering) |
(→Developers: Branch a package and submit changes to DE) |
||
| Line 37: | Line 37: | ||
Both sanity & acceptance tests are very brief run-throughs of the functionality of the entire MeeGo distribution, to assure that the basic health of the distribution and report major regressions at the earliest time. All the checkpoints in sanity & acceptance test reflect the most important and basic functionality of the distribution. | Both sanity & acceptance tests are very brief run-throughs of the functionality of the entire MeeGo distribution, to assure that the basic health of the distribution and report major regressions at the earliest time. All the checkpoints in sanity & acceptance test reflect the most important and basic functionality of the distribution. | ||
| - | == Developers: Branch | + | == Developers == |
| + | |||
| + | === Submit a new package === | ||
| + | |||
| + | Submitting new package from for example home project, i.e., home:username to CE can be done with osc: | ||
| + | |||
| + | osc -A <nowiki>https://api.pub.meego.com</nowiki> sr home:username <my_new_package> Project:DE:Trunk:Testing | ||
| + | |||
| + | === Branch an existing package and submit changes to CE === | ||
Choose your origin (in the following, ORIGIN) of the package: | Choose your origin (in the following, ORIGIN) of the package: | ||
* MeeGo.com:MeeGo:1.2:oss (currently 1.2) | * MeeGo.com:MeeGo:1.2:oss (currently 1.2) | ||
| - | * Project:DE:Trunk:Testing (fix a package already contained in | + | * Project:DE:Trunk:Testing (fix a package already contained in CE) |
| - | osc -A <nowiki>https://api.pub.meego.com</nowiki> branch -cm "To work on MeeGo | + | osc -A <nowiki>https://api.pub.meego.com</nowiki> branch -cm "To work on MeeGo CE" ORIGIN packagename |
This creates home:yourusername:branches:ORIGIN. | This creates home:yourusername:branches:ORIGIN. | ||
This page describes the N900 Developer edition release process.
Contents |
We have two OBS projects on the Community OBS:
Currently, each of them builds against MeeGo 1.2 release, via the Project:DE:MeeGo:1.2/standard . The project in MeeGo OBS is MeeGo:1.2:oss which is referred as MeeGo.com:MeeGo:1.2:oss in Community OBS.
The CE development is done against "a moving target" instead of a published release, which is called as 'standard' repository in the Community OBS CE projects. This standard is live link against the MeeGo:1.2:oss project mentioned earlier.
Four different Community Edition images are build daily.
Images are prefixed with mg instead of MeeGo to distinguish those more from the official MeeGo builds.
The stable images on Friday of each week are considered as the weekly releases.
QA performs sanity checks for the stable images and acceptance tests for the testing images.
Both sanity & acceptance tests are very brief run-throughs of the functionality of the entire MeeGo distribution, to assure that the basic health of the distribution and report major regressions at the earliest time. All the checkpoints in sanity & acceptance test reflect the most important and basic functionality of the distribution.
Submitting new package from for example home project, i.e., home:username to CE can be done with osc:
osc -A https://api.pub.meego.com sr home:username <my_new_package> Project:DE:Trunk:Testing
Choose your origin (in the following, ORIGIN) of the package:
osc -A https://api.pub.meego.com branch -cm "To work on MeeGo CE" ORIGIN packagename
This creates home:yourusername:branches:ORIGIN.
Go to https://build.pub.meego.com/home/list_my and find your project.
If there is no repositories listed in Repositories tab, go and click "add repository" and "advanced interface" and choose Project:DE:Trunk:Testing as project, "standard" as repository, new name "standard" and architecturesi armv8el and i586.
.. do your work
NOTE: Remember to add entry to .changes file and describe what your submit fixes. "- Fixes for BMC#1234" isn't enough, but "- photo-index.patch: Fixed segmentation fault when indexing photos (BMC#1234)" would do.
After your work is done, i.e., doing the changes to the package and after you have committed the changes to your branch, it is time to check that everything is like it should be. So, lets verify the diff between your branch and the target. NOTE: If you are submitting new package to Project:DE:Trunk:Testing the diff is most probably empty.
osc -A https://api.pub.meego.com submitreq -dm "." home:yourusername:branches:ORIGIN packagename Project:DE:Trunk:Testing
After you have confirmed that the diff is ok. It is time to submit the changes:
osc -A https://api.pub.meego.com submitreq -m "What you changed" home:yourusername:branches:ORIGIN packagename Project:DE:Trunk:Testing
As a result of this command you will get request id that corresponds the request. You can check your request from the OBS webui https://build.pub.meego.com/request/show/REQUEST_ID
If you'd like to help out with release engineering, poke Stskeeps / Carsten Munk on IRC.
General procedure for reviewing requests towards Project:DE:Trunk:Testing:
Conditions and procedure for accepting a package change into Project:DE:Trunk from Project:DE:Trunk:Testing:
When new package is submitted to Project:DE:Trunk:Testing there is two different ways to handle the SR.
A) First you should check if the package is already in MeeGo.com:MeeGo:1.2:oss project, if not see section B). If the packages was in MeeGo 1.2 oss repo then you need to create a link to that project with following commands:
osc -A https://api.pub.meego.com linkpac -c MeeGo.com:MeeGo:1.2:oss <PACKAGE> Project:DE:Trunk osc -A https://api.pub.meego.com linkpac Project:DE:Trunk <PACKAGE> Project:DE:Trunk:Testing
B) In case the package is not in the MeeGo.com:MeeGo:1.2:oss you need to do SR manually from the Project:DE:Trunk:Testing to Project:DE:Trunk
osc -A https://api.pub.meego.com sr -m "Forwarding. Remember the link." Project:DE:Trunk:Testing <PACKAGE> Project:DE:Trunk
Also what should be noted that when new package goes to the Project:DE:Trunk also a link needs to be added from Project:DE:Trunk to Project:DE:Trunk:Testing
osc -A https://api.pub.meego.com linkpac Project:DE:Trunk <PACKAGE> Project:DE:Trunk:Testing
At times when the there is fix in CE that can't be pushed to the MeeGo upstream for some reason, e.g., too large change for the specified MeeGo release and we still need to get that fix to the package to get some functionality working, there might be a situation where the change needs to be rebased on top of the newer upstream version. For this check there is a upstreamchecker tool that can be used to check if package is much behind of the upstream. After verifying with this tool and maybe from the webui you might need to rebase the package, e.g.,
First check that there are not any pending submit requests to Project:DE:Trunk.
osc -A https://api.pub.meego.com request list Project:DE:Trunk <PACKAGE>
Then force the new link
osc -A https://api.pub.meego.com linkpac -c -f MeeGo.com:MeeGo:1.2:oss <PACKAGE> Project:DE:Trunk
Then checkout the copy of the package and update it.
osc -A https://api.pub.meego.com co Project:DE:Trunk <PACKAGE> cd <package_checkout> osc -A https://api.pub.meego.com up
Next we need to apply the diff, which might be possible to do with patch, or just applying manually. Remember to solve the conflicts if you used patch.
patch -p0 < project.diff
Remeber to remove the old diff from the project.
osc rm project.diff
And in the end just submit the changes.
osc ci -m "Rebased link."
Multiple options, we are currently looking at having the images physically built in internal Nokia IMG service and transferred to a public download site.
N900 CE image configurations (kickstart files) are located at https://gitorious.org/meego-developer-edition-for-n900/image-configurations gitorious tree under the kickstarts directory.
From the git tree above the images are created by daily-image-builder, which is available at https://gitorious.org/image-building-tools/daily-image-builder
daily-image-builder script is executed every morning on computer X from where the images are uploaded to http://repository.maemo.org/meego/n900-de/daily/ around 04:00 UTC.
The directories in n900-de repository look following 1.1.99.2.20110412.6.DE.2011-04-19.2 where the start is the MeeGo version and the end after DE is the DE build version in following format YYYY-MM-DD.<build_count>
The MeeGo version is taken from http://repo.meego.com/MeeGo/snapshots/stable/1.2.0.90/
Currently we have couple of different images types:
mg-handset-armv7nhl-n900-ce-stable mg-handset-armv7nhl-n900-ce-testing mg-tablet-armv7nhl-n900-ce-stable mg-tablet-armv7nhl-n900-ce-testing
All the images use MeeGo 1.2 stable snapshot repository as a base. In CE case the stable and testing in image name means which CE repository is used in addition to the MeeGo snapshot repository, i.e., in stable images we use Project:DE:Trunk repository and in testing Project:DE:Trunk:Testing repository.
Please send mail to carsten@maemo.org to get activated on community OBS