<div dir="ltr">I'm hoping to be no more than a week or two to be ready to send this to the list.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 11, 2016 at 12:53 PM, Brian Paul <span dir="ltr"><<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For getting to Python3, are you thinking a few weeks, a month, longer?<br>
<br>
Thanks.<br>
<br>
-Brian<span class=""><br>
<br>
On 01/11/2016 01:36 PM, Dylan Baker wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Sure.<br>
<br>
I've been working on a hybrid approach, using the six library (the<br>
generators currently already work this way). Once my subprocess32<br>
timeout stuff lands, the code I have will be based on upstream, and I<br>
just need to finish sorting out the str/byte/unicode changes between<br>
python 2 and 3.<br>
<br>
My thought is that we can use a hybrid approach while there are still<br>
users needing python 2 support, (I know you guys still have some systems<br>
using python 2.7 exclusively, as does Red Hat). We can just start<br>
removing six and have a python 3 exclusive code base when there are no<br>
consumers left for python 2.<br>
<br>
Dylan<br>
<br>
On Mon, Jan 11, 2016 at 12:30 PM, Brian Paul <<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a><br></span><div><div class="h5">
<mailto:<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>>> wrote:<br>
<br>
    Hi Dylan,<br>
<br>
    We're actually interested in getting Piglit running on Python3.  Can<br>
    you give an update on the status of this?<br>
<br>
    Thanks!<br>
<br>
    -Brian<br>
<br>
<br>
    On 03/13/2015 04:30 PM, Dylan Baker wrote:<br>
<br>
        bump<br>
<br>
        On Thu, Mar 05, 2015 at 02:04:00PM -0800, Dylan Baker wrote:<br>
<br>
            This is a proposal for another go at moving to python3 for the<br>
            framework. Due to the amount of work that's gone into piglit<br>
            over the<br>
            last few months and years the codebase is very modern, and the<br>
            transition is pretty straightforward, the only major change<br>
            is the<br>
            bytes/unicode/str conversion, which isn't that hard for us<br>
            since we've<br>
            already relied on the unicode class for a number of our string<br>
            interfaces.<br>
<br>
            So why python3, and why now?<br>
<br>
            The first argument for python3 is features. Feature work is<br>
            ongoing in<br>
            python3, while python2 is in long term maintenance mode, and<br>
            there are<br>
            features landing in python3 that will either allow us to<br>
            simplify the<br>
            piglit code, or to enable useful features with minimal<br>
            effort. Patch 2<br>
            provides a sane, portable timeout implementation for piglit to<br>
            demonstrate this.<br>
<br>
            The second argument I can offer is that linux distributions<br>
            are starting<br>
            to make the transition to python3 as their default python<br>
            version. Arch<br>
            and Fedora have already made this jump. For windows and OSX<br>
            the python<br>
            foundation provides pre compiled binaries.<br>
<br>
            But what about platforms that don't have python3.3+ available?<br>
<br>
            Well, the goal of recently landed changes to the generators<br>
            was to<br>
            hybridize the generators to work under either python2.7 or<br>
            python 3.3+,<br>
            with the same code base, and this series doesn't change<br>
            that, nor do I<br>
            have any plans to do so while there are still python2<br>
            consumers. The<br>
            goal being that tests (including generated tests) should be<br>
            backportable<br>
            to the python2 branch without any changes being necessary.<br>
<br>
            The idea then is that directly before landing this code a<br>
            python2 branch<br>
            of piglit would be forked and pushed to the upstream<br>
            repository.  Those<br>
            that need python2 would be able to use the python2 branch<br>
            for testing,<br>
            while upstream development would continue on master, which<br>
            used python3.<br>
<br>
            Any changes that were strictly necessary to keep the python2<br>
            branch<br>
            working with the python3 branch would be backported,<br>
            presumably by<br>
            myself, but the goal would be to minimize the number of<br>
            python changes<br>
            backported. The one drawback here would be that if the<br>
            summary format of<br>
            master (python3) changed it's unlikely that would be<br>
            backported to<br>
            python2. Master would still be able to understand python2<br>
            generated<br>
            results, but not vice versa.<br>
<br>
            So, to sum up:<br>
<br>
            1) branch a python2 branch, tests should be able to<br>
            cherry-picked/merged<br>
                 cleanly<br>
            2) python changes necessary to keep the python2 branch<br>
            running would be<br>
                 backported<br>
            3) When python2 is no longer necessary for anyone the branch<br>
            could be<br>
                 dropped.<br>
<br>
<br>
<br>
            _______________________________________________<br>
            Piglit mailing list<br>
            <a href="mailto:Piglit@lists.freedesktop.org" target="_blank">Piglit@lists.freedesktop.org</a><br></div></div>
            <mailto:<a href="mailto:Piglit@lists.freedesktop.org" target="_blank">Piglit@lists.freedesktop.org</a>><br>
            <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_piglit&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=MlidIFJmNNAteLKJpWaTUweYaX0WsNQnZPUH_cagzoQ&s=YOGp-y6wLqMoZ-jZGT7tJ6mGcO1mHBYKdl6wicO8aHs&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_piglit&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=MlidIFJmNNAteLKJpWaTUweYaX0WsNQnZPUH_cagzoQ&s=YOGp-y6wLqMoZ-jZGT7tJ6mGcO1mHBYKdl6wicO8aHs&e=</a><br>
<br>
<br>
<br>
</blockquote>
<br>
</blockquote></div><br></div>