QA on Soyuz
(See also the Effective QA section in BuildFarm - you must visit this if you made changes in the publisher because builders need to access the archives)
There are three places you can do QA for Soyuz:
QA on qastaging
qastaging only runs the UI side of Soyuz services, so you can only test code that runs in the webapp:
- PPA copying operations
- API operations
- template/browser code changes
- (add more here)
QA on staging
staging does not currently run any builders (references to 'clementine' are outdated). Similar QA to qastaging can be performed here. If building QA is absolutely required here, it could theoretically have scalingstack access, but that is not set up.
QA on dogfood
Dogfood is the original QA platform for Soyuz and some developers have shell access which is necessary to run the scripts and work with production-like data. Since this machine is not open for general access to developers, anyone wishing to QA changes to the following things will need to contact a member of Canonical launchpad team.
- The Publisher (PPA or Ubuntu), which includes
- cron.germinate (this one is owned by the Ubuntu team but we test it for them)
- The upload processor (process-upload.py)
- Ubuntu archive management tools (everything in scripts/ftpmaster-tools/)
- Any package build types that require a buildd.
Dogfood has limited resources and is starting to get close to disk space limitations when restoring the production database. The database is restored very irregularly, and on no fixed schedule. Dogfood is very, very slow.
Getting more QA facilities on [qa]staging
It should be easy to run the txpkgupload daemon, and the upload processor and process-accepted script cron jobs on staging. It should also be possible to ask a LOSA to run one of the archive-admin scripts manually, when required, with no issues.
The publisher is a very different matter, because of the nature of the staging database getting restored every week, it will get out of sync with the published repositories. This can cause OOPSes in the scripts, some of which will be false alarms but will still look odd to the uninitiated. At best it will be transient, at worst it will block the publisher and hence QA. There are also some problems with librarian files getting expired in production that are not expired in staging which will also make the publisher fall over.
The PPA signing private keys are also not available outside of production - we remove the references in the dogfood DB to avoid the publisher problems in that area but if they need to be tested then it presents some manual work.
So, some more thought needs to be put into how best to handle publishing on staging.