[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.