Implement AiiDA control page - #156
Conversation
|
User-Friendly AiiDAlab App for Managing Main Workflows (MWs) This AiiDAlab app aims to enhance the user experience when working with Main Workflows (MWs) in AiiDA. Currently, the default "verdi process list -a" command provides an overview of all workflows, but it lacks user-centric features and can be cumbersome to navigate, especially when dealing with numerous MWs. MW is a workflow submitted by a user, usually with a description, that will typically have child workflows Key Features: 1. Intuitive MW List: The app will present a user-friendly MW list, displaying the descriptions of each workflow along with their statuses. Users can quickly identify MWs, such as "PDOS DBBR on Au," "STM goblet," etc., based on the provided descriptions rather than the AiiDA workchain names. 2. Workflow Progress Visualization: Users can easily track the progress of a specific MW by clicking on it. The app will visually highlight completed steps and indicate which step is currently running, queued, or paused. This provides users with a clear understanding of where their MW stands in terms of execution. 3. Process Control: The app will empower users to interact with their MWs efficiently. Users can pause and resume processes as needed, allowing better control over long-running or resource-intensive calculations. Additionally, the app will provide a "kill" option to terminate unwanted or problematic MWs. 4. Efficient Workflow Retrieval: Searching for past MWs will be a breeze with the app's convenient filtering and sorting options. Users can effortlessly find a specific MW, like "DBBR Br removed on Au" from two months ago, and access its individual steps with ease. The app will allow searching based on date ranges and provide a smooth scrolling experience, avoiding disruptive automatic page refreshes. 5. Optimized Performance: Ensuring the app's responsiveness and speed is a priority. By optimizing database queries and utilizing efficient data retrieval techniques, we aim to create a seamless experience for users, even when dealing with a significant number of MWs. The goal of this app is to make MW management in AiiDA more intuitive, efficient, and enjoyable for users who frequently submit and monitor complex workflows. Your feedback and contributions are highly appreciated as we strive to create a powerful tool that complements AiiDA's capabilities. |
|
The control page dependent on the We can also make AWB the core package as defined in The ultimate solution could be for every app has its own Python environment created when using |
|
@yakutovicha thanks for this. 🗜️ I like the overall approach and design. I would suggest two things so we can move with an initial version of the control page:
Couple minor things / ideas...
|
|
It would be great to re-enable the tests in CI before this PR is merged, per #161, and add basic tests for the new functionality. |
7a648fd to
885537f
Compare
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
| "output = ipw.Output()\n", | ||
| "\n", | ||
| "\n", | ||
| "def update_output(value={\"new\": \"Group\"}):\n", |
There was a problem hiding this comment.
I've merged in main with updated ruff that now checks jupyter notebooks. It reports a lint violation here:
control.ipynb:cell 3:19:25: B006 Do not use mutable data structures for argument defaults
|
19 | def update_output(value={"new": "Group"}):
| ^^^^^^^^^^^^^^^^ B006
20 | if value["new"] in correspondance:
21 | with output:
|
= help: Replace with `None`; initialize within function
|
@yakutovicha btw: I am going to be on the coding retreat next month and I've heard you'll be there as well? Perhaps this PR is a good candidate to work on, WDYT? |
Just to continue this discussion, I think If there are components that are currently needed in AWB and needed here, I think the simplest thing is to copy them. I think in general we don't want to expand the home app too much, so the number of such components should not be high. @edan-bainglass @superstar54 FYI about the status of this PR, please have a look at my earlier comment. #156 (comment) I don't think it would be too much work to finish this PR in some minimal form and keep iterating on it in subsequent PRs. |
Thanks @danielhollas. @yakutovicha can we set up a meeting soon (maybe before the break) to discuss the current status and define a roadmap to a minimal release? All are welcome to join. |
I'm happy to meet, but frankly, the only time that might work for me is this Wed between 16 and 17. All the remaining days are booked. |
for more information, see https://pre-commit.ci
Query AiiDA's Python API directly instead of shelling out to `verdi status`, cutting a refresh from ~5-8 s to under a second. - Render the result as an HTML table with per-service indicators. - Add a Refresh button using the same threaded mechanism as the other daemon actions.
…ction fails to open
|
@yakutovicha this is great! I've tested a few things here and there. Looks good to me. I made a few minor updates in a PR to this PR (#231). Other than that, my only concern is the obvious duplication of the process list:
Ideally, I would lean toward using the richer process table, though in its current state, there are some QE-specific parts. Perhaps this can be left for a later PR if we come to an agreement. As for the one at the top of the app and the new one in the control panel, I would lean toward only the control panel one, making sure that it covers all the features the other provides. If we agree to remove the top process list link in favor of the control panel one, I would recommend to elevate the remaining code setup link to a tile button (icon TBD). This of course can be done in a separate PR. Let's get all of this done on our upcoming coding day 🙂 |
|
A few other comments that I see now:
|
|
@edan-bainglass, thanks a lot for the feedback. To simplify the review process, I will split this PR into smaller ones and will implement each feature one by one. This Particular PR I won't merge. This was really a vibe-coded prototype. What concerns the process, I agree to keep only the one in the process table. @cpignedoli is eager to fix some functionality of the process list, so we can do that as well. If you have time, feel free to open the PR to migrate the QE process list here - I checked it, and I like it a lot 👍 |
fixes #155