Skip to content

exorcist user-facing docs - #2076

Draft
atravitz wants to merge 8 commits into
epic/execution_improvementsfrom
exorcist-docs
Draft

exorcist user-facing docs#2076
atravitz wants to merge 8 commits into
epic/execution_improvementsfrom
exorcist-docs

Conversation

@atravitz

@atravitz atravitz commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

resolves #2075

LLM / AI generated code disclosure

LLMs or other AI-powered tools (beyond simple IDE use cases) were used in this contribution: no

Checklist

  • All new code is appropriately documented (user-facing code must have complete docstrings).
  • Added a news entry, or the changes are not user-facing.
  • Ran pre-commit: you can run pre-commit locally or comment on this PR with pre-commit.ci autofix.
  • Filled in the AI generated code disclosure.

Manual Tests: these are slow so don't need to be run every commit, only before merging and when relevant changes are made (generally at reviewer-discretion).

Developers certificate of origin

@github-actions

Copy link
Copy Markdown

🚨 API breaking changes detected! 🚨

View workflow run

Griffe output
$ griffe check "openfe" -s src --no-inspection --no-color --verbose -a origin/main
src/openfe/storage/metadatastore.py:0: <module>:
Public object was removed

src/openfe/storage/resultserver.py:0: <module>:
Public object was removed

src/openfe/storage/resultclient.py:0: <module>:
Public object was removed

src/openfe/tests/storage/test_metadatastore.py:0: <module>:
Public object was removed

src/openfe/tests/storage/test_resultclient.py:0: <module>:
Public object was removed

src/openfe/tests/storage/test_resultserver.py:0: <module>:
Public object was removed


$ griffe check "openfecli" -s src --no-inspection --no-color --verbose -a origin/main
src/openfecli/commands/plan_rbfe_network.py:121: plan_rbfe_network(warehouse):
Parameter was added as required


@atravitz
atravitz changed the base branch from main to feat/warehouse July 14, 2026 20:54
@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.57%. Comparing base (cc8edd5) to head (66f27cd).

Additional details and impacted files
@@                     Coverage Diff                      @@
##           epic/execution_improvements    #2076   +/-   ##
============================================================
  Coverage                        90.57%   90.57%           
============================================================
  Files                              217      217           
  Lines                            21522    21522           
============================================================
  Hits                             19494    19494           
  Misses                            2028     2028           
Flag Coverage Δ
fast-tests 90.57% <100.00%> (ø)

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

☔ View full report in Codecov by Harness.
📢 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.

@atravitz
atravitz requested a review from ethanholz July 23, 2026 19:30

@ethanholz ethanholz 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.

Just a few comments but nothing blocking merge.


The following is an example script that runs up to 4 workers at a time, with each automatically picking up the next valid unit to be executed.

.. code:: bash

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.

I wonder if it might be worth adapting this to Python because it is not pleasant to read (even though it is my code lol)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think that makes sense given our target audience!


db.mark_task_completed(taskid, success=result.ok())
# 4. output result to warehouse
# TODO: we may need to end up handling namespacing on the warehouse side for tokenizables

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.

Are there any questions on this piece?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, but we should probably move that to the warehouse PR

@atravitz atravitz self-assigned this Jul 27, 2026
@atravitz atravitz changed the title [WIP] exorcist docs exorcist user-facing docs Jul 27, 2026
@atravitz atravitz linked an issue Jul 27, 2026 that may be closed by this pull request
Comment thread docs/guide/execution/exorcist_execution.rst Outdated
Comment thread docs/guide/execution/exorcist_execution.rst Outdated
Comment thread docs/guide/execution/exorcist_execution.rst Outdated

.. code:: bash

openfe plan-rbfe-network ... --warehouse

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As a user, it's not immediately clear to me what --warehouse would do, would I not want to call plan-rbfe-network to get the AlchemicalNetwork and then use that as the input to my execution?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I.e. this section needs a "what arre we doing in each of these calls" explanation.

import click
from plugcli.params import Option

WAREHOUSE = Option("--warehouse", type=click.BOOL, help="Use a warehouse", default=False)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This needs more detail in the help field.

@@ -0,0 +1,105 @@
.. userguide_exorcist:

Execution with Exorcist Workers

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is missing user centric information on the why of Exorcist. I.e. what is the advantage of using this over the old quickrun, etc...

You can execute the network of simulation units defined by an ``AlchemicalNetwork`` (see `create_alchemical_network`) using ``openfe.orchestration``:


First, we build a graph of tasks to be executed from the ``AlchemicalNetwork``:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Might be good to define tasks here - is that each individual unit that needs to be executed?


openfe worker warehouse/

To run a single task to completion.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What if it doesn't complete? What should users be doing in that instance?

Base automatically changed from feat/warehouse to epic/execution_improvements July 30, 2026 21:58
@atravitz atravitz mentioned this pull request Jul 30, 2026
7 tasks
@atravitz
atravitz force-pushed the epic/execution_improvements branch 2 times, most recently from 6fc30c6 to a07f1c8 Compare August 7, 2026 19:51
@atravitz
atravitz force-pushed the epic/execution_improvements branch 2 times, most recently from a6fd672 to cc8edd5 Compare August 14, 2026 16:01
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.

exorcist user-facing docs

3 participants