[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH OSSTEST] Switch to merged qemu-xen{, -traditional}.git trees
On Tue, 2015-10-20 at 11:34 +0100, Ian Campbell wrote: > On Mon, 2015-10-19 at 12:44 +0100, Ian Jackson wrote: > > Ian Campbell writes ("Re: [PATCH OSSTEST] Switch to merged qemu-xen{, > > -traditional}.git trees"): > > > We discussed on IRC with you and Stefano and are going to aim to push > > > this > > > in the w/c 19 October. > > > > We have decided under the circumstances to postpone this to next week. > > > > It would probably have been possible for me to pick things up from > > the deployment plan in your mail > > [PATCH OSSTEST+XEN 0/1+1] Switching to one qemu tree per qemu > > version > > (trad vs upstream) > > But it seems better to wait for you to be back. > > That was probably wise, although I'm on vacation next week. > > I thought maybe I'd be able to manage it today given the existence of the > checklist, but I think actually I'm too fuzzy headed even for that. > > I made some updates to the plan last week, see below. > > Ian. > > > * Today we can already just remove the old staging/qemu-xen-* trees, they > are unused (apart from being manually pushed to along with the staging > trees, I think). I have interpreted remove here (and everywhere else) as "move to ~xen/git.single-qemu.deleteme". I did however delete the corresponding symlinks from /var/xenbits -www/html/git-http/ > * Move the two new trees out of people/ianc into the correct places. > Ensure git-http etc all works and that Stefano + IanJ have appropriate > permissions. Appropriate permissions == owned by xen:xenmaint and g+s set for the directories. Also, in *.git/config: [receive] denyNonFastForwards = true unpackLimit = 10000 [gc] autopacklimit = 25 Copied from xen.git/config. I also copied xen.git/hooks/pre-receive which prevents pushes to non-staging branches (except by osstest) and prevents pushes of unannottated tags. I also in both cases moved hooks/post-update.sample to hooks/post-update, which runs update-server-info. I then ran this by hand in both repos. I also updated config/description of new and old trees. I also edited ~xen/HG/patchbot/versions to add the appropriate lines for all the new branches. That is I removed them and added: /home/xen/git qemu-xen.git#master xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen.git#stable-4.6 xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx [...] /home/xen/git qemu-xen.git#stable-4.2 xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen-traditional.git#master xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen-traditional.git#stable-4.6 xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx [...] /home/xen/git qemu-xen-traditional.git#stable-3.3 xen-changelog@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx and /home/xen/git qemu-xen.git#staging xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen.git#staging-4.6 xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx [...] /home/xen/git qemu-xen.git#staging-4.2 xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen-traditional.git#staging xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx /home/xen/git qemu-xen-traditional.git#staging-4.6 xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx [...] /home/xen/git qemu-xen-traditional.git#staging-3.3 xen-staging@xxxxxxxxxxxxxxxxxxx xen-devel@xxxxxxxxxxxxxxxxxxx This follows the pattern for the existing xen.git and old qemu ones, which I've removed. I also did moved ~xen/HG/patchbot/qemu-* to ~xen/git.single-qemu.deleteme/ _after_ having made a botched attempt to rename them appropriately for the new scheme. To unbotch it I regenerated from scratch for qemu-xen-traditional: $ for i in master stable-3.{3,4} stable-4.{0,1,2,3,4,5,6} ; do r=$(git rev-parse $i); echo "echo $r > qemu-xen-traditional--$i.patchbot-reported-heads" ; done echo bc00cad75d8bcc3ba696992bec219c21db8406aa > qemu-xen-traditional--master.patchbot-reported-heads echo f3115dc6719e4d21c426b9395b2b30e7062b97cf > qemu-xen-traditional--stable-3.3.patchbot-reported-heads echo 62539a7d5974cdc0a448d469cda458761940cd33 > qemu-xen-traditional--stable-3.4.patchbot-reported-heads echo eaa1bd612f50d2f253738ed19e14981e4ede98a5 > qemu-xen-traditional--stable-4.0.patchbot-reported-heads echo 77d9bdb27c4237a007ba93a6f159791eed317abc > qemu-xen-traditional--stable-4.1.patchbot-reported-heads echo 112599882987da1afbbe4c16f6b049065a64f065 > qemu-xen-traditional--stable-4.2.patchbot-reported-heads echo 1e5099d596b6f7a977d4bc040a54edc2a6a3c6a4 > qemu-xen-traditional--stable-4.3.patchbot-reported-heads echo 5ae0569d964ad1a6d8dc781e5566d39210a5d063 > qemu-xen-traditional--stable-4.4.patchbot-reported-heads echo dfe880e8d5fdc863ce6bbcdcaebaf918f8689cc0 > qemu-xen-traditional--stable-4.5.patchbot-reported-heads echo 1c8d43cbdf0fc01a8f05acfbf55b805a83da34bb > qemu-xen-traditional--stable-4.6.patchbot-reported-heads And for qemu-xen: $ for i in master staging {staging,stable}-4.{2,3,4,5,6} ; do r=$(git rev-parse $i); echo "echo $r > qemu-xen--$i.patchbot-reported-heads" ; done echo 816609b2841297925a223ec377c336360e044ee5 > qemu-xen--master.patchbot-reported-heads echo 816609b2841297925a223ec377c336360e044ee5 > qemu-xen--staging.patchbot-reported-heads echo c17e602ae64fb24405ebd256679ba9a6f5819086 > qemu-xen--staging-4.2.patchbot-reported-heads echo b188780861662e8cf1847ec562799b32bb44f05e > qemu-xen--staging-4.3.patchbot-reported-heads echo 5fe74249f5ab528fe84a26fa60438a6de4c787f0 > qemu-xen--staging-4.4.patchbot-reported-heads echo e5a1bb22cfb307db909dbd3404c48e5bbeb9e66d > qemu-xen--staging-4.5.patchbot-reported-heads echo 980dfcf5b8d8161871f81d1987b2f8ea5d7d4db9 > qemu-xen--staging-4.6.patchbot-reported-heads echo c17e602ae64fb24405ebd256679ba9a6f5819086 > qemu-xen--stable-4.2.patchbot-reported-heads echo b188780861662e8cf1847ec562799b32bb44f05e > qemu-xen--stable-4.3.patchbot-reported-heads echo 5fe74249f5ab528fe84a26fa60438a6de4c787f0 > qemu-xen--stable-4.4.patchbot-reported-heads echo e5a1bb22cfb307db909dbd3404c48e5bbeb9e66d > qemu-xen--stable-4.5.patchbot-reported-heads echo 980dfcf5b8d8161871f81d1987b2f8ea5d7d4db9 > qemu-xen--stable-4.6.patchbot-reported-heads The above was run in the relevant git repo and then the resulting commands were then run in ~xen/HG/patchbot/. Previously for qemu-xen it looks like only qemu-upstream-unstable.git (staging and master) generated these mails, I have deliberately changed that here so all branches should have mails. http://lists.xen.org/archives/html/xen-devel/2015-02/msg03547.html and the various followups were quite useful here. I manually ran: git clone git://xenbits.xen.org/qemu-xen.git git clone git://xenbits.xen.org/qemu-xen-traditional.git git clone http://xenbits.xen.org/git-http/qemu-xen.git qemu-xen.http git clone http://xenbits.xen.org/git-http/qemu-xen-traditional.git qemu-xen-traditional.http and observed that they seemed to be fetching stuff. > * See if there is a way to prevent pushes to the old trees (e.g. a > setting in their .git/config file). I deployed the snippet in <1445424646.9563.86.camel@xxxxxxxxxx> into all the old trees. I didn't actually try anything until later during ap-push testing, when I realised that these would stop osstest's ap-push too. Furthermore the old qemu-xen-trad trees would not be updated to do anything at all. After discussion with IanJ I remove the hook from the old trad trees (qemu-xen-unstable.git and qemu-xen-X.Y-testing.git) and replaced the one in qemu-upstream-* with: #!/bin/sh set -e whoami=`whoami` reject () { echo >&2 " *** push rejected: $1 *** " exit 1 } if [ "x$whoami" != xosstest ]; then reject 'only osstest may push here' fi staging/qemu-upstream-*.git retain the original hook which rejects everything. > * Test osstest patch <1443793989.11707.121.camel@xxxxxxxxxx>. Quoth iwj: > > * explicitly ap-push and ap-fetch the relevant trees. Perhaps do > the ap-push as a user without the appropriate permissions to get > a dry run. > > * Update patch as necessary. This highlighted a missing } on: +: ${PUSH_TREE_QEMU_UPSTREAM=$XENBITS:/home/xen/git/qemu-xen.git With that fixed I ran ap-fetch-version, ap-fetch-version-baseline and ap -fetch-version-old on a representative set of branches qemu-upstream-unstable qemu-upstream-4.6-testing qemu-upstream-4.2-testing I skipped ap-fetch-version-baseline-late since that only does anything for linux-next. There is nothing to test for qemu-xen-traditional since there is no gate. Since everything is quiescent at the moment all of the above got the same answer for a given branch. I repeated with qemu-mainline and as expected ap-fetch-version returned something different to the other two (which were the same as each other). I then for each branch above list above I ran, as osstest on the production vm: ./ap-fetch-version-baseline $branch ./ap-push $branch <result of fetch> For qemu-upstream-unstable this did: + git push osstest@xxxxxxxxxxxxxxx:/home/xen/git/qemu-xen.git 816609b2841297925a223ec377c336360e044ee5:refs/heads/master For qemu-upstream-4.6-testing it did: + git push osstest@xxxxxxxxxxxxxxx:/home/xen/git/qemu-xen.git 980dfcf5b8d8161871f81d1987b2f8ea5d7d4db9:refs/heads/stable-4.6 + git push osstest@xxxxxxxxxxxxxxx:/home/xen/git/qemu-upstream-4.6-testing.git 980dfcf5b8d8161871f81d1987b2f8ea5d7d4db9:refs/heads/master qemu-upstream-4.2-testing similarly. For qemu-mainline this did: + git push osstest@xxxxxxxxxxxxxxx:/home/xen/git/qemu-xen.git 26c7be842637ee65a79cd77f96a99c23ddcd90ad:refs/heads/upstream-tested In all cases the push was "Everything up-to-date" and the paths and branches were as expected. > * Push resulting tested osstest patch. Probably force push Done, by force push. > * Once that change is in osstest.git#production Stefano and Ian would > switch to pushing to the appropriate staging* branches new trees. > > osstest will ignore the old staging trees and osstest will update both > the new master/stable branches and the old stable trees (but not the > old > qemu-upstream-unstable#master branch). > > * ASAP after the osstest patch reaches production push the patch > <1442486509.18856.166.camel@xxxxxxxxxx> to xen.git#staging. > > NOTE: s/qemu-xen-traditional\.h/qemu-xen-traditional.git./ on the > commit > message and add Ian J's ack. > > This will cause the xen-unstable builds to use the new output gate. > > Until this is done unstable builds will continue using the old > master push gate, which is not updated after the osstest update > (only stable branches are). Patch pushed to staging. > * Remove the old staging/qemu-upstream-* trees, they are not > referenced by anything. Done (by move aside a discussed above). The remainder are things which should not happen immediately. Including a new step: * Remove non-stagingÂqemu-upstream-unstable.git andÂqemu-xen-unstable.git which can occur once any flights which might use them have been and gone (including possible bisect attempts) > > * At our leisure backport the xen.git change to stable branches, > probably > back as far as 4.2 (when qemu-xen was introduced). > > * Do stable releases of each of the above. > > * Drop (one by one or all at once) the push to the legacy stable > branches > from osstest as stable releases are made referencing the new trees. > > * Consider hiding (or removing) the old output trees from xenbits as > well. > => Not possible with current gitweb setup. > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |