Skip to content

Modify execute_DAG with unitresult caching#738

Open
IAlibay wants to merge 16 commits intomainfrom
restart_execute
Open

Modify execute_DAG with unitresult caching#738
IAlibay wants to merge 16 commits intomainfrom
restart_execute

Conversation

@IAlibay
Copy link
Member

@IAlibay IAlibay commented Feb 16, 2026

Cache a JSON of each successful ProtocolUnitResult, allowing for execute_DAG to resume when called over a DAG that hasn't been fully executed.

Checklist

  • Added a news entry

Developers certificate of origin

@IAlibay
Copy link
Member Author

IAlibay commented Feb 16, 2026

pre-commit.ci autofix

@codecov
Copy link

codecov bot commented Feb 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.88%. Comparing base (dae1bc6) to head (e925018).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #738      +/-   ##
==========================================
+ Coverage   98.87%   98.88%   +0.01%     
==========================================
  Files          42       42              
  Lines        2669     2697      +28     
==========================================
+ Hits         2639     2667      +28     
  Misses         30       30              

☔ 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.

else:
# Is source key stable enough?
# We probably don't want to resume if gufe stability has changed
results[unit_result.source_key] = unit_result
Copy link
Member Author

Choose a reason for hiding this comment

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

Do we need to check that the unit_results are continuous?

Copy link
Contributor

Choose a reason for hiding this comment

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

we now make sure that any units downstream of a node to be re-run are also re-run.

@atravitz atravitz self-assigned this Feb 16, 2026
@IAlibay IAlibay added this to the Release 1.9 milestone Feb 16, 2026
@atravitz
Copy link
Contributor

note: I'm taking this PR over from @IAlibay. In gufe devs meeting, we discussed needing to handle the case where a DAG A -> B -> C has a failure in B, such that both B and C are re-run.

@atravitz atravitz marked this pull request as draft March 11, 2026 01:52
@atravitz atravitz marked this pull request as ready for review March 11, 2026 18:17
@atravitz atravitz changed the title [WIP] Modify execute_DAG with unitresult caching Modify execute_DAG with unitresult caching Mar 11, 2026
@github-actions
Copy link

No API break detected ✅

@@ -0,0 +1,23 @@
**Added:**

* ``gufe.protocol.protocoldag.execute_DAG`` now has the ability to resume DAG execution by passing in a path for results cacheing into ``unitresults_basedir`` and setting ``keep_unitresults=True``.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm open to additions and edits here, I just want to make sure it's captured in our changelog.

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