From owner-freebsd-python@freebsd.org Mon Oct 17 10:04:29 2016 Return-Path: Delivered-To: freebsd-python@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0AD21C15864 for ; Mon, 17 Oct 2016 10:04:29 +0000 (UTC) (envelope-from vlad-fbsd@acheronmedia.com) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id E8A7FEC5 for ; Mon, 17 Oct 2016 10:04:28 +0000 (UTC) (envelope-from vlad-fbsd@acheronmedia.com) Received: by mailman.ysv.freebsd.org (Postfix) id E7F9EC15863; Mon, 17 Oct 2016 10:04:28 +0000 (UTC) Delivered-To: python@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E79DEC15862 for ; Mon, 17 Oct 2016 10:04:28 +0000 (UTC) (envelope-from vlad-fbsd@acheronmedia.com) Received: from mail.irealone.com (fawn.irealone.com [IPv6:2001:1af8:4010:a07b:10::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B1F9BEC3; Mon, 17 Oct 2016 10:04:28 +0000 (UTC) (envelope-from vlad-fbsd@acheronmedia.com) Received: by mail.irealone.com (Postfix, from userid 1002) id 6228260E05; Mon, 17 Oct 2016 12:04:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=acheronmedia.com; s=mail; t=1476698667; bh=FVy8AnRfqRtjUEkJPeCqwePfjRLSOWJ+/fVUY57O+4Q=; h=To:Subject:Date:From:Cc:In-Reply-To:References:From; b=I/GWi6nTPBuRXecHdiifRoO5CA504wRip+bqbLeadMnPoSX/RwtlQ/0G6ahtc8Un3 PHBnatHM3d215yyVqQd8dSaEpUTlertbraNeuGmaN2BXVyyLA8QTDOU6gQND0KRUds hFCb3pxDchzKSW8wXd+qmJWLE+QXMTQHyiA9NoBQ= To: koobs@freebsd.org Subject: Re: Introducing python3 into user system X-PHP-Originating-Script: 0:rcube.php MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 17 Oct 2016 12:04:27 +0200 From: "Vlad K." Cc: Ruslan Makhmatkhanov , python , Kubilay Kocak Organization: Acheron Media In-Reply-To: <883cfb37-3946-aa2c-21d2-73a21ea3e365@FreeBSD.org> References: <883cfb37-3946-aa2c-21d2-73a21ea3e365@FreeBSD.org> Message-ID: X-Sender: vlad-fbsd@acheronmedia.com User-Agent: Roundcube Webmail/1.1.6 X-BeenThere: freebsd-python@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: FreeBSD-specific Python issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2016 10:04:29 -0000 Hi all! On 2016-10-17 09:47, Kubilay Kocak wrote: > On 17/10/2016 6:22 AM, Ruslan Makhmatkhanov wrote: > >> - if port has a build dependency upon python and it can be built >> both with python2 and python3, force it to build with python3 - if >> some standalone application can be running both with python2 and >> python3 and it have equivalent python3 dependencies, force it to be >> run with python3 This can be achieved now by setting DEFAULT_VERSIONS= python=3 python3=3.5. See https://wiki.freebsd.org/DEFAULT_VERSIONS And if I misunderstood you correctly and you meant force it via port itself, I don't think we have a mechanism for that and even if we did, that'd be very bad. One such problem I've noticed is with shared dependencies. If port X can work with 3, and port Y can only work with 2, and both have a common dependency Z which can run both 2 and 3, Z won't be built for both, it'll be built for DEFAULT_VERSION version, and if that's 3, it spells trouble for Y. It'll build fine, but Y will fail at runtime. Case in point was building py-sphinx and saltstack with Py3.5 set as default. They both have a dependency that broke sphinx, iirc. To fix this we desperately need variants. https://reviews.freebsd.org/D5563 >> We also need to explicitly mark python2-only ports to simplify >> switching to python3 as default at some point of time. Definitely. I've started doing that, and caught some. weechat was one of them which has been fixed now. But, because of my build server reorganization I had to stop with that for some time and will pick it up again with a permanent, bi-weekly (twice a week) poudriere build of ALL ports that USE= python, with a public poudriere status page so we can track how it goes. >> What you guys think about? If there is general consensus, we may >> enforce this via Porters Handbook. I'm not sure the PHB is the right place. When I get the continuous poudriere build going, I'll post to the mailing lists announcing it, with an intention to pretty please let's switch to py3 as soon as possible. Also see next: > I suggest we document something like a 'Road to Python 3 as Default' > page in the Python/ wiki outlining the goal (with timelines), > motivation, potential problems and possible alternative methods. Kind > of > like a Python PEP. Definitely. I was thinking about that, inspired by Bernard's LibreSSL list of ports that fail, to have a list of ports that: a) Have USE= python but fail on 3 b) Have USE= python:2 but are actually supported on 3 But I need to get that poudriere running with a public status page for that. -- Vlad K.