You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

Scap/Release: Difference between revisions

From Wikitech-static
Jump to navigation Jump to search
imported>Giuseppe Lavagetto
imported>JMeybohm
Line 19: Line 19:
   V=4.1.1 # Change as appropriate
   V=4.1.1 # Change as appropriate
   rsync -vaz deneb.codfw.wmnet::pbuilder-result/$DIST-amd64/*scap*$V* deb/
   rsync -vaz deneb.codfw.wmnet::pbuilder-result/$DIST-amd64/*scap*$V* deb/
   sudo -i reprepro --ignore=wrongdistribution include $DIST-wikimedia $(pwd)/deb/scap_<VERSION>_amd64.changes
   sudo -i reprepro --ignore=wrongdistribution include $DIST-wikimedia $(pwd)/deb/scap_${V}-1_amd64.changes
   # scap is compatible as-is with stretch and buster, just copy the package there
   # scap is compatible as-is with stretch and bullseye, just copy the package there
   sudo -i reprepro copy stretch-wikimedia $DIST-wikimedia scap
   sudo -i reprepro copy stretch-wikimedia $DIST-wikimedia scap
  sudo -i reprepro copy bullseye-wikimedia $DIST-wikimedia scap


If you get errors about a missing GPG key and therefore not exporting indices you need to import the right key like described on [[Reprepro#Adding_a_new_external_repository]].
If you get errors about a missing GPG key and therefore not exporting indices you need to import the right key like described on [[Reprepro#Adding_a_new_external_repository]].
Line 35: Line 36:


* If you just uploaded the package, use cumin to run <code>apt-get update</code> on the hosts or wait until puppet will do it automatically
* If you just uploaded the package, use cumin to run <code>apt-get update</code> on the hosts or wait until puppet will do it automatically
*Start by deploying to <code>mw-canary</code>, <code>mw-jobrunner-canary</code>, <code>parsoid-canary</code> (cumin aliases), then login to '''<code>mwdebug*</code>''' servers and check there if a '''<code>scap pull</code>''' still works.
*Start by deploying to <code>mw-canary</code>, <code>mw-jobrunner-canary</code>, <code>parsoid-canary</code> (cumin aliases), then login to '''<code>mwdebug*</code>''' servers and check there if a '''<code>scap pull</code>''' still works:<syntaxhighlight lang="bash">
* Also deploy to <code>restbase-canary</code> so someone can check that scap still works for the scap3 code path, and on stretch. You will need someone to run a null deployment on restbase.
sudo debdeploy deploy -Q 'A:mw-canary or A:parsoid-canary or A:mw-jobrunner-canary' -u $(date '+%Y-%m-%d-scap.yaml')
* Later or the next day you can rollout to <code>all</code>.
</syntaxhighlight>  


=== Resources ===
*Also deploy to <code>restbase-canary</code> so someone can check that scap still works for the scap3 code path, and on stretch. You will need someone to run a null deployment on restbase.<syntaxhighlight lang="bash">
cd /srv/deployment/restbase/deploy; scap deploy -l restbase-canary-host "scap testing"
</syntaxhighlight>
*Later or the next day you can rollout to <code>all</code>.
 
 
===Resources===
There are Debian [https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Standards-Version Versioning guidelines]
There are Debian [https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Standards-Version Versioning guidelines]

Revision as of 10:39, 26 January 2022

This page is documentation for releasing a new version of Scap to Wikimedia Production.

Building

To prepare a new release of the Debian package for Scap, the Release Engineering Team needs to follow the steps in RELEASE.md (in the Scap git repository), and then the SRE team needs to build and deploy the package, which are listed below.

The Debian package for scap can be built with git-buildpackage. More specifically: for production the standard procedure is to have a Debian source package built on the package_builder machine.

 git clone https://gerrit.wikimedia.org/r/mediawiki/tools/scap 
 cd scap
 V=4.0.0 # Change value as appropriate
 git checkout -b $V $V
 WIKIMEDIA=yes gbp buildpackage -sa -us -uc --git-pbuilder --git-no-pbuilder-autoconf --git-dist=buster --git-debian-branch=$V

Uploading to apt repos

The resulting package will be in /var/cache/pbuilder/result/buster-amd64/ and needs to be uploaded to the apt repo (e.g. from apt1001.wikimedia.org)

 export DIST="buster"
 V=4.1.1 # Change as appropriate
 rsync -vaz deneb.codfw.wmnet::pbuilder-result/$DIST-amd64/*scap*$V* deb/
 sudo -i reprepro --ignore=wrongdistribution include $DIST-wikimedia $(pwd)/deb/scap_${V}-1_amd64.changes
 # scap is compatible as-is with stretch and bullseye, just copy the package there
 sudo -i reprepro copy stretch-wikimedia $DIST-wikimedia scap
 sudo -i reprepro copy bullseye-wikimedia $DIST-wikimedia scap

If you get errors about a missing GPG key and therefore not exporting indices you need to import the right key like described on Reprepro#Adding_a_new_external_repository.

If signing still fails after you imported the key you need to ensure it looks for them in the right home dir, see Reprepro#If_signing_fails.

If this already happened and you can't get it to export indices by repeating the "include" command you can work around it by copying it back from another distro (reprepro copy stretch-wikimedia buster-wikimedia scap).

Not having exported indices will manifest as "reprepro ls shows the right version but it is not found on a client even after running apt-get update".

Roll out to production

You will then need to use Debdeploy to deploy the new package in production.

  • If you just uploaded the package, use cumin to run apt-get update on the hosts or wait until puppet will do it automatically
  • Start by deploying to mw-canary, mw-jobrunner-canary, parsoid-canary (cumin aliases), then login to mwdebug* servers and check there if a scap pull still works:
    sudo debdeploy deploy -Q 'A:mw-canary or A:parsoid-canary or A:mw-jobrunner-canary' -u $(date '+%Y-%m-%d-scap.yaml')
    
  • Also deploy to restbase-canary so someone can check that scap still works for the scap3 code path, and on stretch. You will need someone to run a null deployment on restbase.
    cd /srv/deployment/restbase/deploy; scap deploy -l restbase-canary-host "scap testing"
    
  • Later or the next day you can rollout to all.


Resources

There are Debian Versioning guidelines