New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scons: Switch to Python 3 #75877
scons: Switch to Python 3 #75877
Conversation
Not sure why I was pinged here? |
@leahneukirchen Oh, sorry, I probably added you on accident due to the GH auto-completion without noticing it... :o (IMO that feature can be quite a bit annoying as the suggestions only disappear via escape or de-focusing) |
the other PR got merged, do you mind rebasing? |
957d9d0
to
c527f5d
Compare
@jonringer did a rebase but unfortunately this is far from being ready to merge anyway :o @FRidh @jonringer: What do you think of my proposal to resolve this? Currently the switch to Python 3 causes ~22 builds to fail (there could be more failures in transient dependencies later). IMO it would be best to notify the maintainers of these packages as they're the most familiar with it (e.g. also with testing if it still works correctly with Python 3 at runtime). Do you have any suggestions, changes, etc. regarding this proposal (before I ping the maintainers)? |
I'll have to look more into this later, will be pretty busy the next week |
@primeos I think that's a good approach. Otherwise, maybe adding a Python2 version of scons as well. E.g. in its |
Dear maintainers, If you're still actively using/maintaining your package it would be nice if you
Please also reply here if you're not maintaining your package anymore or if Thanks in advance ❤️ :) List of packages that don't build with Python 3
|
MyPaint 2 is scheduled to release soon #54677 |
nsis seems to still be using Python 2: https://github.com/kichik/nsis/blob/master/INSTALL#L8 If this is a blocker, I suggest removing the NSIS expression from all-packages. |
@pedropombeiro I've had a look and it seems like a patch already exists: kichik/nsis@9ee3275 By looking at the dates this patch should already be in version 3.05: https://sourceforge.net/projects/nsis/files/NSIS%203/ Could you try updating to version 3.05? |
Sent #78943 for fceux. |
That's what I tried with but I got some weird error. |
Hello, and thank you for the clear message and instructions. I'm no longer actively maintaining the |
@pedropombeiro what does "weird error" mean? It didn't build or there where errors at run-time? And what would you recommend to do regarding this PR? (fix the build, mark it as broken, use Python 2 for now, etc.) @hakuch ok, thanks for the information :) I'll collect all information in the PR description (current status). Thanks |
@primeos I've fixed this permissions error:
I've created a PR to upgrade to 3.05 and it works in
I'd say we either use Python 2 for this package for now or mark it as broken. |
A commit to fix bombono: 431094f |
diff LGTM, let me know when you feel comfortable enough for me to test |
Reasons: Python 2.7 will EOL very soon [0]: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support SCons 4.0.0 will drop Python 2.7 Support [1]: https://raw.githubusercontent.com/SConsProject/scons/rel_3.1.2/src/CHANGES.txt [0]: From the SCons build output previous to this commit (i.e. with Python 2.7). [1]: https://raw.githubusercontent.com/SConsProject/scons/rel_3.1.2/src/CHANGES.txt
Not all packages build with Python 3, see NixOS#75877. The goal is to get rid of Python 2 but this approach ensures a smoother transition.
Unfortunately this didn't work as well as I hoped. My new approach is to switch SCons to Python 3 but continue to build all failing packages with Python 2 for now. Then we can use subsequent PRs to either mark deprecated/unmaintained packages as broken or fix the build with Python 3 if the package is still relevant. I used the suggestion of @FRidh:
Though my implementation is a bit hacky :o @jonringer @FRidh: Is the current approach still ok? If so I could run @jonringer if your testing offer still stands that'd be welcome :) |
I don't have enough context to know what ramifications moving to python3 will do. However, I think it's a good idea to move away from python2 anyway. |
I'm okay with this |
Those packages are broken for >4 months, which is why it seems best to mark them as broken for now. I noticed these while testing #75877.
This should be merged after #75875 andmany build failures have to be resolved first.Build logs
Results from
nix-review
: Gist (incomplete).Old logs:
Current status
Done (:heavy_check_mark:):
@symphorien
(a33e63b)@scubed2
(fceux: 2.2.3 -> 2020-01-29 #78943no meta.maintainers)@cillianderoiste @jtojnar
(mypaint: 1.2.1 → 2.0.0-beta.0 #54677)@peterhoeg
WIP (:hourglass_flowing_sand:):
@hakuch
(no longer required foropam
-> probably safe to mark it as broken and remove it if no-one want's to maintain it)@pedropombeiro
(nsis: 3.04 -> 3.05 #79083, version 3.05 should support Python 3 but additional changes are required (debug))Unresolved (:negative_squared_cross_mark:):
@viric
(no meta.maintainers)@7c6f434c
@bjornfor @rasendubi
@kampfschlaefer
@marcweber
@bluescreen303 @offlinehacker @cstrahan
@berce
@orivej @7c6f434c
@orivej
@cizra
@viric
@fuuzetsu
(no meta)@cillianderoiste
(AttributeError: module 'posixpath' has no attribute 'walk'
)@vrthra
(AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'
)Marked as broken:
@cstrahan @offlinehacker
@7c6f434c
@twey
Unrelated:
Proposed resolution
CC the maintainers of all packages that fail due to Python 3.x and ask them if they could have a look. I.e.:
TODO: If it's not possible to support Python 3 the packages should override scons to use Python 2.7.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers