Skip to content

Create extra-envs with pinned dependencies (infra)#1954

Merged
Hook25 merged 1 commit intomainfrom
pin_dependencies_sad
Jun 16, 2025
Merged

Create extra-envs with pinned dependencies (infra)#1954
Hook25 merged 1 commit intomainfrom
pin_dependencies_sad

Conversation

@Hook25
Copy link
Copy Markdown
Collaborator

@Hook25 Hook25 commented Jun 12, 2025

Description

Given the recent urwid debacle taking down our infra, its about time we take seriously source installs of Checkbox. Checkbox source IS part of our infra, it is not a development tool anymore. As such, the distribution of it must be fixed.

This is not the principled solution to the issue, this is, but I'm completely unable to make it work. For some reason, if dependencies are precisely (or loosely for that matter) pinned, snap builds for core18 and core20 stop working, I've tried and failed multiple iterations.

This introduces two new optional environments to install checkbox-ng and checkbox-support so that one can install them on demand with the pinned dependencies.

Resolved issues

Fixes: https://warthogs.atlassian.net/browse/CHECKBOX-1921

Documentation

Documented each pinning block what it is referring to.

Tests

Tox
Metabox run: link
snaps native: link
snaps cross: link

To test this locally

$ lxc launch ubuntu:(noble|jammy) tmp
# assuming we are in checkbox/
$ lxc file push -r . tmp/root/
$ lxc shell tmp
(lxc) $ apt update && apt install -qq -y python3 python3-venv
(lxc) $ python3 -m venv venv
(lxc) $ . venv/bin/activate
(lxc) (venv) $ cd checkbox/checkbox-ng
(lxc) (venv) $ pip install .[jammy_prod] # or noble_prod if you are on noble
(lxc) (venv) $ cd ../checkbox-support
(lxc) (venv) $ pip install .[jammy_prod] # or noble_prod if you are on noble

You should now have a full venv with all the dependencies as pinned in the pyproject.toml

@Hook25 Hook25 changed the title Create extra-envs with pinned dependencies Create extra-envs with pinned dependencies (infra) Jun 12, 2025
@codecov
Copy link
Copy Markdown

codecov bot commented Jun 12, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 50.54%. Comparing base (d1b0f88) to head (e461b9b).
⚠️ Report is 109 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1954      +/-   ##
==========================================
+ Coverage   50.52%   50.54%   +0.02%     
==========================================
  Files         384      384              
  Lines       41111    41112       +1     
  Branches     7531     7629      +98     
==========================================
+ Hits        20770    20782      +12     
+ Misses      19599    19586      -13     
- Partials      742      744       +2     
Flag Coverage Δ
checkbox-ng 70.26% <ø> (ø)
checkbox-support 63.91% <ø> (+0.16%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Hook25 Hook25 force-pushed the pin_dependencies_sad branch from 04b2daf to e461b9b Compare June 12, 2025 13:31
@Hook25 Hook25 marked this pull request as ready for review June 16, 2025 08:40
Copy link
Copy Markdown
Collaborator

@fernando79513 fernando79513 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM +1!
It seems that all the pipelines are passing and I was able to run checkbox locally on the container.

@Hook25 Hook25 merged commit ada9397 into main Jun 16, 2025
125 of 131 checks passed
@Hook25 Hook25 deleted the pin_dependencies_sad branch June 16, 2025 12:25
mreed8855 pushed a commit that referenced this pull request Jul 30, 2025
Create extra-envs with pinned dependencies
mreed8855 pushed a commit that referenced this pull request Jul 31, 2025
Create extra-envs with pinned dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants