Skip to content

Add more detail to DevPod instructions - #22

Merged
jacob-curley-fnal merged 3 commits into
mainfrom
enhance_devpod_instructions
Apr 29, 2026
Merged

Add more detail to DevPod instructions#22
jacob-curley-fnal merged 3 commits into
mainfrom
enhance_devpod_instructions

Conversation

@jacob-curley-fnal

@jacob-curley-fnal jacob-curley-fnal commented Apr 27, 2026

Copy link
Copy Markdown
Collaborator

Updated the documentation for installing the development tools (devpod.md) and added a guide for migrating an existing Python app to this new workflow (migration.md).

Feedback for clarity and accuracy is appreciated (and if anyone is willing to actually follow the guide to see if there are missing steps, that would be awesome!). I could also use some help from the Mac side, so feel free to make suggestions @mguzman04 (and @mgonzal1, if you're a Mac user). @beauremus, do you suppose there are any Linux users we'll need to make steps for?

@github-actions

This comment was marked as duplicate.

@github-actions

Copy link
Copy Markdown

Code Coverage Report - 46 of 117 lines covered ( ⛔ 39.32%)

src - 46 of 117 lines covered ( ⛔ 39.32%)

src/ap_python_starter_kit - 46 of 117 lines covered ( ⛔ 39.32%)

src/ap_python_starter_kit/init.py - 0 of 2 lines covered ( ⛔ 0.00%)

⛔ This file is missing coverage.

src/ap_python_starter_kit/acsys_client.py - 9 of 28 lines covered ( ⛔ 32.14%)

Uncovered lines: ⚠️ 18-19, 21-24, 26-28, 30, 34, 36-38, 40-41, 45-46, 48

src/ap_python_starter_kit/gui.py - 16 of 65 lines covered ( ⛔ 24.62%)

Uncovered lines: ⚠️ 12-13, 20-23, 25-26, 28-31, 33-34, 36, 39, 42, 45, 51, 58-59, 61-65, 67-68, 70-73, 75, 77-82, 84-85, 87-88, 90-91, 95-98

src/ap_python_starter_kit/main.py - 21 of 22 lines covered ( ✅ 95.45%)

Uncovered lines: ⚠️ 47

@jacob-curley-fnal
jacob-curley-fnal marked this pull request as ready for review April 28, 2026 16:57
Comment thread docs/migration.md Outdated

@chowington chowington left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks great! Very helpful

@beauremus

Copy link
Copy Markdown
Contributor

do you suppose there are any Linux users we'll need to make steps for?

Not that I'm aware of, so let's postpone until we know.

@mguzman04

Copy link
Copy Markdown

I'm following the devpod.md steps right now. One minor step to consider adding. When I opened devpod for the first time, I had to pick the provider first. After that, it seemed to know what to pick even if I deleted the workspace.

@mguzman04

Copy link
Copy Markdown

Once I start the workspace I get the following error.

Screenshot 2026-04-28 at 1 27 58 PM

@beauremus beauremus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Some polish comments, but great work! 🙌🏻 :shipit:

Comment thread docs/migration.md Outdated
Comment thread docs/migration.md
@jacob-curley-fnal

Copy link
Copy Markdown
Collaborator Author

Once I start the workspace I get the following error.

Sweet, looks like we have some more dev container investigation to do. Side note, are you using the auto quad centering project or something? Not sure why it's trying to pull pyqt5 otherwise

@mguzman04

Copy link
Copy Markdown

Once I start the workspace I get the following error.

Sweet, looks like we have some more dev container investigation to do. Side note, are you using the auto quad centering project or something? Not sure why it's trying to pull pyqt5 otherwise

Sorry, I should've specified that. Yup, I'm using the quad steering project. I passed the workspace the URL for the repo

@mguzman04

Copy link
Copy Markdown

@jacob-curley-fnal This seems to be an issue with pyQT5 specifically. astral-sh/uv#12277

Is there a different repo I can use to test the directions?

@jacob-curley-fnal

Copy link
Copy Markdown
Collaborator Author

You can try it with the template repo itself. Or create a new repo from the template just to mess around with. That's what I did, then deleted it when I was done

@jacob-curley-fnal

Copy link
Copy Markdown
Collaborator Author

@mguzman04 It looks like if we removed the postCreateCommand from the template's devcontainer.json, things might work with PyQt5. I mean, the app won't build, but at least the development environment would come up. Then they would have the chance to update to the latest PyQt. I think it would be good to ensure the dev environment only fails to come up if there's a problem with the image itself, rather than a misconfiguration of the application dependencies. I'll look into that a bit more, see if there's a way to have it run that command only after everything else has come up

@jacob-curley-fnal

Copy link
Copy Markdown
Collaborator Author

Further investigation makes me think it is a aarch64/arm64 issue, specifically. I just deleted the cached images from WSL and rebuilt the DevPod, this time targeting auto quad centering. Everything came up successfully, no issues. But did find a new issue where even though the dev user is in the sudo group, it still gets prompted for a password when trying to run sudo commands (there's a package missing that PyQt wants). As the user is not set up with a password, it's not possible to run sudo commands. We'll have to update the dev container so the dev user is also configured to not need a password when using sudo

@mguzman04

Copy link
Copy Markdown

@jacob-curley-fnal I tried this again with the template and had no issues. VS code opened up and I was able to run uv run ap-python-starter-kit.

I did notice the template has pyqt6 which seemed to install with no issues. Seems the issue is with pyqt5. That's a quad steering app problem in that case.

From a mac perspective I think this is working 🚀

@github-actions

Copy link
Copy Markdown

Code Coverage Report - 46 of 117 lines covered ( ⛔ 39.32%)

src - 46 of 117 lines covered ( ⛔ 39.32%)

src/ap_python_starter_kit - 46 of 117 lines covered ( ⛔ 39.32%)

src/ap_python_starter_kit/init.py - 0 of 2 lines covered ( ⛔ 0.00%)

⛔ This file is missing coverage.

src/ap_python_starter_kit/acsys_client.py - 9 of 28 lines covered ( ⛔ 32.14%)

Uncovered lines: ⚠️ 18-19, 21-24, 26-28, 30, 34, 36-38, 40-41, 45-46, 48

src/ap_python_starter_kit/gui.py - 16 of 65 lines covered ( ⛔ 24.62%)

Uncovered lines: ⚠️ 12-13, 20-23, 25-26, 28-31, 33-34, 36, 39, 42, 45, 51, 58-59, 61-65, 67-68, 70-73, 75, 77-82, 84-85, 87-88, 90-91, 95-98

src/ap_python_starter_kit/main.py - 21 of 22 lines covered ( ✅ 95.45%)

Uncovered lines: ⚠️ 47

@jacob-curley-fnal

Copy link
Copy Markdown
Collaborator Author

Noting here for completeness: The AP Python dev container has been updated so that
a. Users now have true sudo permissions
b. The X11 dependencies needed to run the PyQt GUI are brought in by default

The devcontainer.json was also updated to include a minimal "desktop", which users can port-forward and see from their local web browser. This will enable GUI development in the container before deployment. Extra instructions for how to set this up were added to devpod.md.

@jacob-curley-fnal
jacob-curley-fnal merged commit d399fbf into main Apr 29, 2026
4 checks passed
@jacob-curley-fnal
jacob-curley-fnal deleted the enhance_devpod_instructions branch April 29, 2026 21:06
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.

4 participants