Skip to content
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

Testbed failure in textual-linux #3051

Open
proneon267 opened this issue Dec 20, 2024 · 5 comments
Open

Testbed failure in textual-linux #3051

proneon267 opened this issue Dec 20, 2024 · 5 comments
Labels
bug A crash or error in behavior.

Comments

@proneon267
Copy link
Contributor

proneon267 commented Dec 20, 2024

Describe the bug

The textual-linux testbed CI is failing to set up requirements and start the testbed. This is happening on the textual-linux CI for the last 3 CI runs:
https://github.com/beeware/toga/actions/runs/12427830421/job/34698452652
https://github.com/beeware/toga/actions/runs/12430817079/job/34707115530
https://github.com/beeware/toga/actions/runs/12431290185/job/34708559995
https://github.com/beeware/toga/actions/runs/12431722393/job/34709843187

Expected behavior

The textual-linux CI should be able to setup requirements and run the testbed.

Environment

  • Operating System: textual-linux CI
  • Python version:
  • Software versions:
    • Briefcase:
    • Toga: latest main branch
    • ...
@proneon267 proneon267 added the bug A crash or error in behavior. label Dec 20, 2024
@rmartin16
Copy link
Member

Interesting....GitHub apparently decided not to install the meta-package build-essential since all its constituent packages are installed...

sidenote: Logs for CI runs are ephemeral; so, I recommend copying out the important bits.

[testbed] Finalizing application configuration...
Targeting ubuntu:noble (Vendor base debian)
Determining glibc version... started
Determining glibc version... done
Targeting glibc 2.39
Targeting Python3.12

[testbed] Generating application template...
Using app template: https://github.com/beeware/briefcase-linux-system-template.git, branch v0.3.21
Cloning template 'https://github.com/beeware/briefcase-linux-system-template.git'...
Template branch v0.3.21 not found; falling back to development template
Using existing template (sha ae694c2a78c580c81b1c26537d14d2e8f4d94667, updated Sun Oct 27 10:38:13 2024)

[testbed] Installing support package...
No support package required.

Unable to build testbed due to missing system dependencies. Run:

    sudo apt install build-essential

to install the missing dependencies, and re-run Briefcase.

@rmartin16
Copy link
Member

Quick fix is to run the test on ubuntu-22.04 instead of ubuntu-latest (which is in the process of switching to ubuntu-24.04).

@freakboy3742
Copy link
Member

@rmartin16 If I'm understanding this right:

  • the immediate workaround is to explicitly install build-essential in the textual CI environment; and
  • the long term fix is to modify briefcase to look for the constituent packages of build-essential (or, at least, the ones we care about) rather than looking for build-essential

Is that correct?

@rmartin16
Copy link
Member

the immediate workaround is to explicitly install build-essential in the textual CI environment; and

yeah; this is the best quick fix.

the long term fix is to modify briefcase to look for the constituent packages of build-essential (or, at least, the ones we care about) rather than looking for build-essential

hmm...this is an option; although, we provide direct feedback to users to just install the meta-package. So, it might just be best to leave it this way and manage automation environments ourselves.

@freakboy3742
Copy link
Member

the long term fix is to modify briefcase to look for the constituent packages of build-essential (or, at least, the ones we care about) rather than looking for build-essential

hmm...this is an option; although, we provide direct feedback to users to just install the meta-package. So, it might just be best to leave it this way and manage automation environments ourselves.

I mean - our advice can be to just install the meta-package, but that doesn't have to mean that's the thing we literally inspect for as an installed package. gcc will be installed either way; if inspecting for gcc instead of build-essential is more reliable, why not look for that, and then tell the user to install build-essential if it isn't there? (ok, it's more than just gcc, but hopefully you get my point)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A crash or error in behavior.
Projects
None yet
Development

No branches or pull requests

3 participants