-
-
Notifications
You must be signed in to change notification settings - Fork 674
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
Run testbed on fixed Ubuntu version and corresponding system Python version #1813
Conversation
@rmartin16 @freakboy3742: Any idea what's going on with this CI failure? I can't reproduce it within Docker on my Linux machine, either on debian:bullseye or ubuntu:jammy.
|
@mhsmith Mechanically, it looks like it's not finding the Python standard library - except that it is finding some of the standard library ( |
Out of curiosity, I used
If I unset
Trying to understand now why the |
Ohh...user error 🤦🏼♂️. I was calling Anyway, using |
Also, since you're in CI...I discovered this little snippet to help make CI a little more efficient:
If you add that to the top level, it'll automatically cancel any current CI runs for a PR if a new run is triggered. Useful for quick successive pushes to a branch. |
If you ran the app previously in non-test mode, it won't notice that dependencies have been "updated". A |
Thanks very much. I don't know why LD_LIBRARY_PATH would be causing a problem with the |
I've also changed the system package list slightly, and made it identical in both the CI and the tutorial. I had to add python3-cairo-dev to deal with this error:
And I removed the following redundant requirements:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of notes inline, but mostly makes sense.
The only change that strikes me as weird is the python-cairo-dev dependency - CI is installing pycairo from a wheel, which I thought would mean that we wouldn't need a system package for Cairo, just the runtime one.
.github/workflows/ci.yml
Outdated
runs-on: ubuntu-latest | ||
pre-command: "sudo apt-get update -y && sudo apt-get install -y python3-gi python3-gi-cairo gir1.2-gtk-3.0 python3-dev libgirepository1.0-dev libcairo2-dev pkg-config libfuse2" | ||
runs-on: ubuntu-22.04 | ||
# The package list should be the same as in tutorial-0.rst. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This list also exists in Toga README, and the BeeWare tutorial (docs.beeware.org) step 0. AFAICT, all three should be in sync.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I've made the README reference the Toga tutorial, and created beeware/beeware#196 for the BeeWare tutorial.
.github/workflows/ci.yml
Outdated
pre-command: "sudo apt-get update -y && sudo apt-get install -y python3-gi python3-gi-cairo gir1.2-gtk-3.0 python3-dev libgirepository1.0-dev libcairo2-dev pkg-config libfuse2" | ||
runs-on: ubuntu-22.04 | ||
# The package list should be the same as in tutorial-0.rst. | ||
pre-command: "sudo apt-get update -y && sudo apt-get install -y python3-dev python3-cairo-dev python3-gi-cairo libgirepository1.0-dev libcairo2-dev libpango1.0-dev gir1.2-webkit2-4.0 pkg-config libfuse2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fairly certain libfuse2 was only needed because we were building AppImages - It should be possible to drop it now that we're testing system packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, done.
docs/tutorial/tutorial-0.rst
Outdated
@@ -74,7 +77,7 @@ Next, install Toga into your virtual environment: | |||
|
|||
# Ubuntu 18.04+ / Debian 10+ | |||
(venv) $ sudo apt-get update | |||
(venv) $ sudo apt-get install python3-dev python3-gi python3-gi-cairo libgirepository1.0-dev libcairo2-dev libpango1.0-dev libwebkit2gtk-4.0-37 gir1.2-webkit2-4.0 | |||
(venv) $ sudo apt-get install python3-dev python3-cairo-dev python3-gi-cairo libgirepository1.0-dev libcairo2-dev libpango1.0-dev gir1.2-webkit2-4.0 pkg-config libfuse2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As above, syncing with other sources, without libfuse2.
The failure (full log) was actually when building pygobject. I'm not sure why it failed here when it was working on the last merge to the main branch): maybe because we moved from Python 3.11 to 3.10, or from |
FWIW, I tracked this down. The However, when you're using the System Python, then Furthermore, I was able to run the testbed CI as well as run the testbed app locally without installing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've made a small tweak to the README markup adding a link, rather than a raw path; but otherwise 👍
Closing this loop....when The |
Similar to beeware/briefcase#1130.
PR Checklist: