-
Notifications
You must be signed in to change notification settings - Fork 42
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
Update client dev environment for bullseye #1496
Conversation
6924006
to
c0718e6
Compare
db5e98d
to
e418d5d
Compare
Mmmm, I'm not sure what could be causing it, and haven't looked much into it. Happy to troubleshoot together if you want! 🕵️ |
74592d3
to
04cc962
Compare
@gonzalo-bulnes, it looks like this works locally because we are both testing with python3.9. I tried switching from buster to bullseye images for CI, since there will be no more client releases targeted for buster, but now I'm realizing that there's still a period where we might need to make a hot fix for buster builds. So what I think we need here is two additional CI jobs for bullseye, and separate dependency files until we completely remove support for buster. |
6100819
to
bfe24cb
Compare
Seeing the following error for the new bullseye jobs, so I'll have to figure out why that's not working later (but at least the buster jobs are back to normal on this branch):
|
Just ssh-ing into the CI box and running each line one by one and I can see we need to use sudo to fix the error above, but onto the next error... |
fd7e808
to
0c33802
Compare
Okay we are looking much better now! |
Looks like we can only run one functional test at a time in bullseye with our current setup. I checked that each functional test can run by itself, and only that we only see this issue when we use our functional test runner script: https://github.com/freedomofpress/securedrop-client/blob/main/test-functional.sh |
@gonzalo-bulnes - since this is towards bullseye/4.1 support, and it looks like there might be a bit of work to get the functional tests working for bullseye, I was wondering if you could spend some of your client dev time helping me get this over the finish line? I'm not sure how much time I'll have to work on this this week, but would appreciate your help so that this doesn't end up blocking the next release! |
Yes, happy to jump in @creviera, this looks to me like more pressing for the next release than the "Export All Files" feature, isn't it? I think it would make sense to focus on unblocking dev on Bullseye by focusing on this issue fist, then we could apply some pair focus on "Export All Files". That would have the advantage of delivering the Bullseye work first, instead of more slowly working on both topics in parallel. |
80d5a54
to
0c33802
Compare
( |
@creviera @eloquence I left a detailed comment in #1512 with the current status. As far as I can tell from the progress made in #1512 (fixing the functional test suite), the hypothesis of segfaults due to thread management missing bits (#1510) seems to hold water. 🍉 With that in mind, I've outlined a way forward after #1512 in a comment, and left some work in progress linked there. 🙂 |
0c33802
to
08160ac
Compare
@gonzalo-bulnes - I rebased after merging #1515 and see |
Ah, looks like this is up next: #1512 (comment) |
@creviera You're correct, it's after #1512 that rebasing will fix this build 🙂 (original comment and proof of concept). |
08160ac
to
a506fa5
Compare
@gonzalo-bulnes - this now passes CI, but I'd like to do a bit more cleanup around our dev env and how we manage requirements as I fix up errors around |
@gonzalo-bulnes - this is on my radar, just haven't had time to finish up yet |
TODO: If I can't get this over the finish line tomorrow, then update this with a checklist for someone else |
Yes, all good @creviera. Please feel free to hand-ball it to me any time. 🏉 🙌 |
@gonzalo-bulnes - At this point, i updated the test plan to include both sd-app and non sd-app environments for both buster and bullseye. CI is still spinning so if there are any failures there or that you find while running through the test plan, feel free to either append a fix or just report it here. For the test plan, I ran out of time so I only confirmed that: 1) I could create the dev environments in all four scenarios, 2) I could start the client in all four scenarios, and 3) I am able to update requirements files in a bullseye dev env (let's not worry about doing this for buster because it'll mean more duplicate code) |
Test Plan🍏 GOOD In a Bullseye VM:
In a Buster VM:
In a Bullseye VM:
|
Hi @creviera! Te test plan is checking out so far. Tomorrow I'll be able to confirm that the client runs as expected in a Bullseye I don't have |
baaa6fb
to
d7cd4bb
Compare
5798cae
to
81e11a9
Compare
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.
@creviera And I have tested this over the last two days. It looks good both on Buster and Bullseye.
Description
Closes #1513
Since the next release of the client will be targeted for Bullseye, we can update our dev environment versions for pyqt5 and sip to match what gets installed in the prod env: https://github.com/freedomofpress/securedrop-debian-packaging/blob/5dad39315f76443f20121a1c01acfb3be584453b/securedrop-client/debian/control#L12
While I was at it, I updated all dev-only dependencies, keeping that commit separate.
Test Plan
In a Bullseye VM:
rm -r .venv && make venv && source .venv/bin/activate
creates a dev env without errorsd-app
where pyqt is installed, temporarily give it network access (this is on a dev machine), clone the client repo and checkout this PR branchmake venv-sdw && source .venv/bin/activate
creates a dev env using system site-packages without errorIn a Buster VM:
rm -r .venv && make venv-buster && source .venv/bin/activate
creates a dev env without errorsd-app
where pyqt is installed, temporarily give it network access (this is on a dev machine), clone the client repo and checkout this PR branchmake venv-sdw && source .venv/bin/activate
creates a dev env using system site-packages without errorIn a Bullseye VM:
make requirements
results in no local changesmake update-dev-dependencies
results in only updates to the dev-*requirements.txt files (you should see lots of newer versions of dev dependencies)Checklist
If these changes modify code paths involving cryptography, the opening of files in VMs or network (via the RPC service) traffic, Qubes testing in the staging environment is required. For fine tuning of the graphical user interface, testing in any environment in Qubes is required. Please check as applicable:
If these changes add or remove files other than client code, the AppArmor profile may need to be updated. Please check as applicable:
If these changes modify the database schema, you should include a database migration. Please check as applicable:
main
and confirmed that the migration applies cleanlymain
and would like the reviewer to do so