[Scons-dev] SCons 3.0, sconsign files and Py2 vs Py3.. how to handle sconsign imcompatabilities

Russel Winder russel at winder.org.uk
Sun Sep 10 03:09:45 EDT 2017


How many projects will switch back and forth between Python 2 and
Python 3. I cannot imagine many. People with either stick or move. I
would argue making work to cater for a very small number of people is
not cost effective.

I would therefore stick with what I think is the status quo. A build is
either Python 2 or Python 3 but you cannot actually tell per se, and
the highest available version of pickling is used.

This seems to be working well: I have moved all my SCons builds to
Python 3 and have no intention of going back to Python 2.

On Sat, 2017-09-09 at 22:13 -0400, Bill Deegan wrote:
> Greetings,
> 
> This is (I hope) the last issue gating 3.0 release.
> 
> *If we set the default pickle version to 2. (Currently set to
> HIGHEST_AVAILABLE, which means 4 for py3.5+ and 2 for py2.7)*
> 
> If you run scons with py2.7 and then run again with py3.x, you'll get
> the
> following:
> ...
> scons: *** [$DISTDIR/scons-local-3.0.0.alpha.20170821.tar.gz]
> UnicodeDecodeError : 'ascii' codec can't decode byte 0x80 in position
> 0:
> ordinal not in range(128)
> 
> If you run scons with py3 and then rerun with py2.7, you'll get the
> following:
>  * It will rebuild everything you just built with py3
> 
> *If we set the default pickle version  to HIGHEST_AVAILABLE, which
> means 4
> for py3.5+ and 2 for py2.7*
> 
> 
> Here's the options I see to deal with this:
> 1. Always append .py3 to PY3 scons runs' sconsign files
> 2. Always append .py# to sconsign files based on what version of
> python was
> used, ignore pre-existing .sconsigns from older versions
> 3. Do something complicated:
>    a. Leave pickle version as HIGHEST_AVAILABLE, detect version of
> pickle
> by reading first two bytes. If incompatible version detected, change
> file
> name to .py# and try reading that one.  Always write to .sconsign? Or
> write
> to file read.
>    b. ?
> 
> Thoughts?
> 
> -Bill
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20170910/25711066/attachment.pgp>


More information about the Scons-dev mailing list