This page describes how to set up [[ProposedMigration|proposed-migration]] on a clean system. == Installability checks and autopkgtests == In the simplest case you just want to reproduce the "first stage" of [[https://code.launchpad.net/~ubuntu-release/+git/britney2-ubuntu|britney2-ubuntu]], which checks that `-proposed` packages were built on all expected architectures, are installable by themselves, issue autopkgtests, collect their test results, and produce a production-like [[http://people.canonical.com/~ubuntu-archive/proposed-migration/update_excuses.html|excuses.html]] and [[people.canonical.com/~ubuntu-archive/proposed-migration/update_excuses.yaml|excuses.yaml]]. * Check out the code: {{{ git clone https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu britney2-ubuntu git clone https://git.launchpad.net/bileto cd britney2-ubuntu }}} The [[https://git.launchpad.net/bileto/tree/britney/fetch-indexes|fetch-indexes]] script inside the bileto repository downloads the source and binary package indexes to `data/` and `data/-proposed`. * The default [[https://git.launchpad.net/~ubuntu-release/+git/britney2-ubuntu/tree/britney.conf|./britney.conf]] contains the production values for the architecture list, autopkgtest AMQP server (but without the actual password) and swift. For a purely local run you need to install the `rabbitmq-server` package, either locally or into a container, and adjust `ADT_AMQP` accordingly; use `amqp://guest:guest@localhost` or `amqp://guest:guest@10.0.3.XXX` respectively (this will use the default `guest` user of RabbitMQ). * If you care about inspecting the issued autopkgtest requests in the AMQP queues, you need to declare them for a particular Ubuntu series: {{{ sudo apt install -y amqp-tools for arch in i386 amd64 armhf ppc64el; do amqp-declare-queue -u amqp:// -d -q debci-mantic-$arch done }}} You can skip this step, then the test requests will simply go into the void. * Download archive indexes for the desired Ubuntu series: {{{ ../bileto/britney/fetch-indexes mantic }}} * Run britney for the same series: {{{ ./britney.py -c britney.conf --series=mantic -v }}} You will then have the `excuses.*` and some other files in `output/mantic/`. * The list of issued test requests can be found in `data/mantic-proposed/autopkgtest/pending.txt`. If you declared AMQP queues above, you can also read/flush them, e. g. {{{ while amqp-get -u amqp:// -q debci-mantic-armhf; do echo; done }}} == Installability checks and autopkgtests against a PPA == This works similarly to the above, except that the PPA is now playing the role of ''series''`-proposed`. Download and use the [[http://people.canonical.com/~pitti/scripts/britney-indexes-ppa|britney-indexes-ppa]] scripts instead and run it with the PPA's archive URL: {{{ wget http://people.canonical.com/~pitti/scripts/britney-indexes-ppa ./britney-indexes-ppa vivid http://ppa.launchpad.net/ci-train-ppa-service/stable-phone-overlay/ubuntu ./britney.py -c britney.conf --series=vivid -v }}} If you have a PPA which only builds packages for i386 and amd64, you need to run britney's build/installability checks against this reduced list: {{{ ./britney-indexes-ppa xenial http://ppa.launchpad.net/pitti/systemd/ubuntu/ ./britney.py -c britney.conf --series=xenial -v --architectures='i386 amd64' }}} == Full Ubuntu production setup == The full Ubuntu production setup is done by [[https://code.launchpad.net/~ubuntu-release/britney/britney1-ubuntu|britney1-ubuntu]]. This creates the archive index lists, per-series configuration files, calls the first and second stages of `britney2-ubuntu`, and issues the actual copying of packages from `-proposed` to `-release`. It assumes having a local mirror and a helper script `promote-to-release` which does the actual copying. '''TODO:''' Fully document and/or provide charm for this.