<div dir="ltr">Daniel, agreed that lp:mir is release, and will only ever be what's in archive and the touch images. But what kdub is saying, is that we do want lp:mir/devel to reflect proper versioning as it relates to coordinating builds of unity-mir, platform-api, unity-system-compositor, and xorg-server against it. Doing so in such a way that we can achieve 2 things, first a nice catch for accidental ABI breaks (or even API breaks), and second an always reliable tip build with all those components. <div>
Not only for our own debug but sometimes others will help verify something but they need a set of packages to do so (e.g. QA helped by testing some android screencasting, not yet in archive)</div><div><br></div><div>br,kg </div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 11, 2014 at 8:30 PM, Daniel van Vugt <span dir="ltr"><<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@canonical.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Aside from PPAs for experimentation and internal development testing, I don't think there should ever be "packages made from lp:mir/devel". Even a minor point release should be built from lp:mir. Anything that could hit archive will always do so via lp:mir.<div class="">
<br>
<br>
<br>
On 12/03/14 06:36, Kevin DuBois wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
I think this proposal is sensible, and its a good improvement to the way<br>
we have to build the stack from lp:mir/devel.<br>
<br>
If we get a bug that's filed against unity, but the bug is in mir<br>
libraries, I find most of the time in solving the bug is spent building<br>
the stack to verify that the bug is fixed. Hopefully being keeping track<br>
of when things break will ease some branch-chasing.<br>
<br>
We should figure out a way to auto-bump the debian/changelog when<br>
branches land so the packages made from lp:mir/devel have accurate<br>
versioning. This might take some tinkering with the jenkins scripts to<br>
designate each branch as a abi-breaking or not.<br>
<br>
Kevin<br>
<br>
<br>
<br>
On Mon, Mar 10, 2014 at 7:20 PM, Daniel van Vugt<br></div>
<<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@canonical.com</a> <mailto:<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@<u></u>canonical.com</a>>><div>
<div class="h5"><br>
wrote:<br>
<br>
    Yeah the removal of "configure_output" coming in Mir 0.1.7 is a good<br>
    example. As I did that, I will document it thoroughly in the release<br>
    notes of 0.1.7.<br>
<br>
    Accelerating the building of branches (as I hear racarr is working<br>
    on) is good. But it means you're still building code for multiple<br>
    projects. What I'm suggesting in this thread is how to remove the<br>
    variable of having to rebuild at all.<br>
<br>
    If unity-mir is built against Mir 1.2.3 today then it should have<br>
    the confidence that upgrading to Mir 1.2.7 will not require any<br>
    rebuild. Having an understanding in place as to what the Mir version<br>
    number /means/ will help us to avoid some (maybe most) rebuilds,<br>
    which of course would be dramatically more efficient.<br>
<br>
    - Daniel<br>
<br>
<br>
<br>
    On 10/03/14 23:52, Kevin Gunn wrote:<br>
<br>
        I'm +1 in general on the proposal.<br>
        The only thing I would correct is expectations. I think what we've<br>
        proven over the last several months is that we do actually<br>
        require ABI<br>
        update for the server more weekly than monthly.<br>
<br>
        Also, we have become fairly disciplined at bumping the server<br>
        .so name<br>
        on the dev branch at the point of breaking ABI or API. Which is<br>
        extremely helpful, speaking as the person designated to ride the "CI<br>
        train" at the moment. However, we had one sneak in recently...from<br>
        memory, configure_output removed.<br>
<br>
        I think the more important problem to solve for the team is to<br>
        have a<br>
        centralized/remote way of building the latest dev branch +<br>
        updated known<br>
        dependent components (unity-mir, platform-api,<br></div></div>
        unity-system-compositor...__<u></u>note, i'm leaving out xorg-server<div><div class="h5"><br>
        atm since<br>
        its only client api). Not only for folks to be able to easily test<br>
        cooperative features that might span say mir & unity-mir, but to<br>
        also<br>
        catch the accidental server break.<br>
<br>
        I've been wrestling with using launchpad ppa, which I just want<br>
        to share<br>
        has some idiosyncrasies not readily apparent. First, if you just<br>
        use the<br>
        launchpad ppa builders as is, you are built on a virtualized hardy<br>
        kernel - so you have to ask to be non-virtualized from webops.<br>
        Second,<br>
        if you run our Mir android integration tests they fail due to<br>
        lacking<br>
        access to the gl drivers. So the ppa builders aren't quite the<br>
        same as<br>
        the builders on our "dev branch ci runs" - however more similar<br>
        to our<br>
        "ci train" silo builds.<br>
<br>
        In parallel to me trying to get a ppa working for mir-dev,<br>
        unity-mir,<br>
        platform-api, & unity-system-compositor. I think Robert was going to<br>
        chase a solution to do this with our jenkins jobs used on our<br>
        dev-branch. And, I hope he beats me in that race :) as the<br>
        jenkins runs<br>
        have the android driver capability.<br>
<br>
        br,kg<br>
<br>
<br>
<br>
        On Sun, Mar 9, 2014 at 10:58 PM, Daniel van Vugt<br>
        <<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@canonical.com</a><br>
        <mailto:<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@<u></u>canonical.com</a>><br></div></div>
        <mailto:<a href="mailto:daniel.van.vugt@" target="_blank">daniel.van.vugt@</a>__<a href="http://canonical.com" target="_blank">cano<u></u>nical.com</a><div><div class="h5"><br>
        <mailto:<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@<u></u>canonical.com</a>>>><br>
<br>
        wrote:<br>
<br>
             A nice clean way to approach this is to designate Mir version<br>
             numbers like this (partly based on the current patterns):<br>
<br>
             0.1.7  Bug fixes<br>
             0.1.8  Bug fixes<br>
             0.2.0  Server ABI bump / bug fixes<br>
             0.2.1  Bug fixes<br>
             0.2.2  Bug fixes<br>
             0.2.3  Bug fixes<br>
             0.3.0  Server ABI bump / bug fixes<br>
             0.3.1  Bug fixes<br>
             1.0.0  Client ABI bump / server ABI bump / bug fixes<br>
<br>
             "Bug fixes" can also include any enhancements which don't<br>
        break the<br>
             ABIs. So effectively a Mir version number would become:<br>
<br>
             MIR_VERSION = CLIENT_ABI . SERVER_ABI_DECIMAL . FIX_REVISION<br>
             SERVER_ABI = CLIENT_ABI . SERVER_ABI_DECIMAL<br>
<br>
             This means the expected frequency (which I think is<br>
        realistic) would be:<br>
<br>
             Bug fixes: Very regularly (daily/weekly)<br>
             Server ABI change: Less regular (one or two per month, to limit<br>
             package rebuild pain).<br>
             Client ABI change: Very seldom, none planned.<br>
<br>
             This is actually quite a simple plan to implement. We don't<br>
        have any<br>
             client ABI changes on the horizon just yet, but when we do<br>
        that can<br>
             form the basis of choosing "1.0.0".<br>
<br>
             - Daniel<br>
<br>
<br>
             On 07/03/14 14:42, Daniel van Vugt wrote:<br>
<br>
                 I notice how non-trivial it is to update all the projects,<br>
                 rebuilds and<br>
                 packages every time we need to integrate a new Mir<br>
        release into<br>
                 touch.<br>
<br>
                 But we could make this much easier if the Mir team<br>
        consciously<br>
                 separated<br>
                 ABI-break releases from smaller (and more frequent) minor<br>
                 releases. This<br>
                 would allow us to install most smaller Mir releases without<br>
                 having to<br>
                 update any other projects/packages. It just requires a<br>
        little<br>
                 planning<br>
                 by the Mir team to somehow "save up" and separate<br>
        ABI-changing<br>
                 proposals. I think the trouble might be worthwhile for the<br>
                 benefit we'd<br>
                 get in being able to do instant system integration<br>
        testing on<br>
                 touch images.<br>
<br>
                 For example, given we roughly do a Mir release every<br>
        2-3 weeks<br>
                 now, we<br>
                 could instead do:<br>
<br>
                 A minor release more often, every week or so (no ABI<br>
        changes).<br>
                 A larger release (ABI break) with more intrusive<br>
        changes less often<br>
                 (like monthly?).<br>
<br>
                 - Daniel<br>
<br>
<br>
             --<br>
             Mir-devel mailing list<br>
        <a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.ubuntu.com</a> <mailto:<a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.<u></u>ubuntu.com</a>><br></div>
</div>
        <mailto:<a href="mailto:Mir-devel@lists." target="_blank">Mir-devel@lists.</a>__<a href="http://ubuntu.com" target="_blank">ubun<u></u>tu.com</a><div class=""><br>
        <mailto:<a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.<u></u>ubuntu.com</a>>><br>
<br>
             Modify settings or unsubscribe at:<br></div>
        <a href="https://lists.ubuntu.com/____mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/____<u></u>mailman/listinfo/mir-devel</a><br>
        <<a href="https://lists.ubuntu.com/__mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/__<u></u>mailman/listinfo/mir-devel</a>><div class=""><br>
             <<a href="https://lists.ubuntu.com/__mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/__<u></u>mailman/listinfo/mir-devel</a><br>
        <<a href="https://lists.ubuntu.com/mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/<u></u>mailman/listinfo/mir-devel</a>>><br>
<br>
<br>
<br>
    --<br>
    Mir-devel mailing list<br>
    <a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.ubuntu.com</a> <mailto:<a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.<u></u>ubuntu.com</a>><br>
    Modify settings or unsubscribe at:<br>
    <a href="https://lists.ubuntu.com/__mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/__<u></u>mailman/listinfo/mir-devel</a><br>
    <<a href="https://lists.ubuntu.com/mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/<u></u>mailman/listinfo/mir-devel</a>><br>
<br>
<br>
</div></blockquote><div class="HOEnZb"><div class="h5">
<br>
-- <br>
Mir-devel mailing list<br>
<a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/<u></u>mailman/listinfo/mir-devel</a><br>
</div></div></blockquote></div><br></div>