Skip to content

Update & Rework Dependencies - #321

Merged
thopkins32 merged 4 commits into
mainfrom
update-rework-deps
Jun 8, 2026
Merged

Update & Rework Dependencies#321
thopkins32 merged 4 commits into
mainfrom
update-rework-deps

Conversation

@thopkins32

@thopkins32 thopkins32 commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

With #318 , we will soon have two optimizer backends in Blop. Therefore, it is time to create a more modular dependency tree with optional extras for ax and qs.

The base dependencies of Blop now only refer to the essentials required for accessing the Bluesky plans and callbacks that nearly every Blop user would use.

If someone wants to use the Ax backend, they can install the blop[ax] extra.
If someone wants to use queueserver, they can install the blop[qs] extra.
Soon, they can choose to install blop[xopt] extra.

Changing these dependencies to be extras creates some breaking changes to import paths. Functionality-wise, nothing changes in this PR.

We also drop support for Python 3.10, since botorch does in their latest release.

Closes #320
Closes #319

@checkmarx-gh-ast-us-povs

checkmarx-gh-ast-us-povs Bot commented Jun 8, 2026

Copy link
Copy Markdown

Logo
Checkmarx One – Scan Summary & Details973684c4-480d-4240-8726-45c9ed700f8e

Great job! No new security vulnerabilities introduced in this pull request


Communicate with Checkmarx by submitting a PR comment with @Checkmarx followed by one of the supported commands. Learn about the supported commands here.

@MTakahashi-KWH MTakahashi-KWH 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.

Functionally the same. This also addresses the last dangling "_id" to ID_KEY concern.

would note it may be worth providing a blop[standalone], blop[aio], or blop[all] configuration, or perhaps a default packageless agent that randomly samples the configuration space. That would give users coming from Bluesky a single-import way to experiment with the library without immediately confronting them to choose and install a secondary package just to run Blop.

In general, i think any package configuration should support a standalone mode so its components can be explored and evaluated in isolation. (extremely helpful for new and less technical users, since most will first download blop or blop[all])

@josephhanrahan

Copy link
Copy Markdown
Collaborator

I agree with @MTakahashi-KWH. Given this arrangement, having something like [base] and [all] becomes important for installation. Otherwise looks good.

@thopkins32

Copy link
Copy Markdown
Collaborator Author

@josephhanrahan @MTakahashi-KWH Fair points. How about the following? This can go on the installation docs page.

Extra Installs Notes
blop[ax] ax-platform, botorch, gpytorch, torch GPU torch by default; pair with [cpu] for CPU-only
blop[xopt] xopt Coming soon
blop[scipy] scipy Coming soon
blop[queueserver] bluesky-queueserver-api Transport layer only; pair with [ax] for QueueserverAgent
blop[cpu] (uv index routing) Routes torch to the CPU-only PyTorch index; requires uv
blop[all] All backends + [queueserver] No dev tooling; will grow as new backends are added
blop[dev] blop[all] + dev tooling For contributors

@thopkins32
thopkins32 merged commit 697ca51 into main Jun 8, 2026
18 of 20 checks passed
@thopkins32
thopkins32 deleted the update-rework-deps branch June 8, 2026 19:40
jessica-moylan added a commit to jessica-moylan/blop that referenced this pull request Jul 28, 2026
commit 39b6afc
Merge: 2441457 9bcc903
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Thu Jul 23 12:37:56 2026 -0400

    Merge pull request bluesky#331 from bluesky/contributing

    Add CONTRIBUTING.md

commit 9bcc903
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Thu Jul 23 10:40:12 2026 -0400

    pre-commit

commit 2b68d8a
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Thu Jul 23 10:39:51 2026 -0400

    Updated Review and Merge Policy; Types of Changes section

commit 2441457
Author: josephhanrahan <79729091+josephhanrahan@users.noreply.github.com>
Date:   Wed Jul 22 14:36:00 2026 -0400

    move queueserver_agent testcases to new test module (bluesky#332)

commit 1fee80a
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Wed Jul 22 14:07:09 2026 -0400

    Add CONTRIBUTING.md

commit c2332cf
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Wed Jul 22 13:38:41 2026 -0400

    Set checkpoint path after init on Ax agent and optimizer (bluesky#327)

commit 0a75969
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Wed Jul 22 13:34:21 2026 -0400

    Add checkpointing to queueserver runner (bluesky#328)

    * Add checkpointing to queueserver runner

    * Add checkpoint_interval argument to QueueserverAgent.run

commit 70468ab
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Thu Jul 16 15:43:52 2026 -0400

    Final edits before v1.0 release (bluesky#324)

    * Cleaned up all docstrings and other misc items

    * Add release history for v1.0.0

    * Add deployments page

    * Add docs on callbacks

    * Update timepix3 description

commit 9e0f135
Author: Ryan Roussel <rroussel@slac.stanford.edu>
Date:   Thu Jul 9 11:36:34 2026 -0700

    Xopt integration (bluesky#318)

    * initial commit

    * add tests

    * Update test_optimizer.py

    * linting

    * linting

    * inline comments

    * refactor code to only define an XoptOptimizer class

    * linting

    * solving pre-commit issues

    * change code to native xopt vocs methods

    * remove python 3.10

    * linting

    * Update test_optimizer.py

    * add tests for coverage

    * Update pyproject.toml

    * linting

    * create RunEngine test and random initial point generation

    * remove fixed parameters in favor of VOCS constants

    * utilize pydantic serialization, fix ingest append/insert issues

    * code simplification /modernization

    * additional code simplification

    * linting

    * Update xrt-kb-mirrors.md

    * Update src/blop/__init__.py

    * Update src/blop/__init__.py

    ---------

    Co-authored-by: Thomas Hopkins <thomashopkins000@gmail.com>

commit 1406049
Merge: 697ca51 7e3d7c3
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 11:10:50 2026 -0400

    Merge pull request bluesky#323 from bluesky/Explanation_docs

    Explanation passages to go into depth about user responsible components

commit 7e3d7c3
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 10:31:25 2026 -0400

    Update docs/source/explanations/evaluation-function.rst

    dropping highly contextual sidenote

    Co-authored-by: Thomas Hopkins <thopkins1@bnl.gov>

commit aa83a24
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 10:23:14 2026 -0400

    Update docs/source/explanations/evaluation-function.rst

    Yeah, I had this in to personally disambiguate between bluesky document driven and run end uid event driven processing. But, given that i explicitly stated uid this is a bit of a muddying reference.

    Co-authored-by: Thomas Hopkins <thopkins1@bnl.gov>

commit 13d14e0
Author: Rhys Takahashi <19mt01@gmail.com>
Date:   Mon Jun 29 13:46:40 2026 -0400

    impl fixed suggested by J Moylan

commit 7b8db61
Author: Rhys Takahashi <19mt01@gmail.com>
Date:   Mon Jun 29 12:38:02 2026 -0400

    added explanation passages to go into more depth about user responsible components

commit 697ca51
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Mon Jun 8 15:40:36 2026 -0400

    Update & Rework Dependencies (bluesky#321)

    * Update & rework dependencies

    * Update docs with dependencies

    * Add 'all' extra; Rename 'qs' to 'queueserver'; Add extras table to installation docs

commit 90a01fa
Author: Will Smith <ecgatt.ws@gmail.com>
Date:   Mon Jun 8 20:26:02 2026 +0200

    Start queueserver listener in runner init (bluesky#316)

    * Start queueserver listener in runner init

    * Ignore unrelated Blop documents in queueserver listener

    * ruff formatting

    * removed redundant start_doc_filter

    * moved correlation id check bcack into _process_acquisition method

    * corrected pytest to match previous check on ignoring other blop runs

    * ruff linting for queueserver.py2

commit 7af7cc1
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Thu May 28 14:58:46 2026 -0400

    Replace ZMQ address argument with RemoteDispatcher for queueserver integration (bluesky#308)

commit df10ad6
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Thu May 28 12:04:02 2026 -0400

    version bump (bluesky#315)

commit 2ddab57
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Tue May 26 12:51:28 2026 -0400

    XRT KB mirror tutorial improvements (bluesky#311)

    * Fix z-coordinate of toroid

    * Minimize fwhm; track intensity and ensure > 10000

    * Removed checking optimization health section; Reduced BO iterations to 10 from 20

    * Fix best parameters returned by Ax

commit fb28042
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Mon May 25 09:00:52 2026 -0400

    Stop publishing docs on scheduled workflow (bluesky#310)

commit 69d1ff7
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Sun May 24 11:56:33 2026 -0400

    Document that queueserver integration is experimental (bluesky#309)
jessica-moylan added a commit to jessica-moylan/blop that referenced this pull request Jul 28, 2026
commit 0dfa3f2
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Tue Jul 28 13:10:14 2026 -0400

    Use proper autostart API for queueserver (bluesky#326)

    * Add temp raw prefix

    * Add sleeps

    * Autostart the queue properly

    * Fix merge issue

commit 39b6afc
Merge: 2441457 9bcc903
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Thu Jul 23 12:37:56 2026 -0400

    Merge pull request bluesky#331 from bluesky/contributing

    Add CONTRIBUTING.md

commit 9bcc903
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Thu Jul 23 10:40:12 2026 -0400

    pre-commit

commit 2b68d8a
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Thu Jul 23 10:39:51 2026 -0400

    Updated Review and Merge Policy; Types of Changes section

commit 2441457
Author: josephhanrahan <79729091+josephhanrahan@users.noreply.github.com>
Date:   Wed Jul 22 14:36:00 2026 -0400

    move queueserver_agent testcases to new test module (bluesky#332)

commit 1fee80a
Author: thomashopkins32 <thopkins1@bnl.gov>
Date:   Wed Jul 22 14:07:09 2026 -0400

    Add CONTRIBUTING.md

commit c2332cf
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Wed Jul 22 13:38:41 2026 -0400

    Set checkpoint path after init on Ax agent and optimizer (bluesky#327)

commit 0a75969
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Wed Jul 22 13:34:21 2026 -0400

    Add checkpointing to queueserver runner (bluesky#328)

    * Add checkpointing to queueserver runner

    * Add checkpoint_interval argument to QueueserverAgent.run

commit 70468ab
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Thu Jul 16 15:43:52 2026 -0400

    Final edits before v1.0 release (bluesky#324)

    * Cleaned up all docstrings and other misc items

    * Add release history for v1.0.0

    * Add deployments page

    * Add docs on callbacks

    * Update timepix3 description

commit 9e0f135
Author: Ryan Roussel <rroussel@slac.stanford.edu>
Date:   Thu Jul 9 11:36:34 2026 -0700

    Xopt integration (bluesky#318)

    * initial commit

    * add tests

    * Update test_optimizer.py

    * linting

    * linting

    * inline comments

    * refactor code to only define an XoptOptimizer class

    * linting

    * solving pre-commit issues

    * change code to native xopt vocs methods

    * remove python 3.10

    * linting

    * Update test_optimizer.py

    * add tests for coverage

    * Update pyproject.toml

    * linting

    * create RunEngine test and random initial point generation

    * remove fixed parameters in favor of VOCS constants

    * utilize pydantic serialization, fix ingest append/insert issues

    * code simplification /modernization

    * additional code simplification

    * linting

    * Update xrt-kb-mirrors.md

    * Update src/blop/__init__.py

    * Update src/blop/__init__.py

    ---------

    Co-authored-by: Thomas Hopkins <thomashopkins000@gmail.com>

commit 1406049
Merge: 697ca51 7e3d7c3
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 11:10:50 2026 -0400

    Merge pull request bluesky#323 from bluesky/Explanation_docs

    Explanation passages to go into depth about user responsible components

commit 7e3d7c3
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 10:31:25 2026 -0400

    Update docs/source/explanations/evaluation-function.rst

    dropping highly contextual sidenote

    Co-authored-by: Thomas Hopkins <thopkins1@bnl.gov>

commit aa83a24
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Mon Jul 6 10:23:14 2026 -0400

    Update docs/source/explanations/evaluation-function.rst

    Yeah, I had this in to personally disambiguate between bluesky document driven and run end uid event driven processing. But, given that i explicitly stated uid this is a bit of a muddying reference.

    Co-authored-by: Thomas Hopkins <thopkins1@bnl.gov>

commit 13d14e0
Author: Rhys Takahashi <19mt01@gmail.com>
Date:   Mon Jun 29 13:46:40 2026 -0400

    impl fixed suggested by J Moylan

commit 7b8db61
Author: Rhys Takahashi <19mt01@gmail.com>
Date:   Mon Jun 29 12:38:02 2026 -0400

    added explanation passages to go into more depth about user responsible components

commit 697ca51
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Mon Jun 8 15:40:36 2026 -0400

    Update & Rework Dependencies (bluesky#321)

    * Update & rework dependencies

    * Update docs with dependencies

    * Add 'all' extra; Rename 'qs' to 'queueserver'; Add extras table to installation docs

commit 90a01fa
Author: Will Smith <ecgatt.ws@gmail.com>
Date:   Mon Jun 8 20:26:02 2026 +0200

    Start queueserver listener in runner init (bluesky#316)

    * Start queueserver listener in runner init

    * Ignore unrelated Blop documents in queueserver listener

    * ruff formatting

    * removed redundant start_doc_filter

    * moved correlation id check bcack into _process_acquisition method

    * corrected pytest to match previous check on ignoring other blop runs

    * ruff linting for queueserver.py2

commit 7af7cc1
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Thu May 28 14:58:46 2026 -0400

    Replace ZMQ address argument with RemoteDispatcher for queueserver integration (bluesky#308)

commit df10ad6
Author: MTakahashi-KWH <60798296+MTakahashi-KWH@users.noreply.github.com>
Date:   Thu May 28 12:04:02 2026 -0400

    version bump (bluesky#315)

commit 2ddab57
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Tue May 26 12:51:28 2026 -0400

    XRT KB mirror tutorial improvements (bluesky#311)

    * Fix z-coordinate of toroid

    * Minimize fwhm; track intensity and ensure > 10000

    * Removed checking optimization health section; Reduced BO iterations to 10 from 20

    * Fix best parameters returned by Ax

commit fb28042
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Mon May 25 09:00:52 2026 -0400

    Stop publishing docs on scheduled workflow (bluesky#310)

commit 69d1ff7
Author: Thomas Hopkins <thopkins1@bnl.gov>
Date:   Sun May 24 11:56:33 2026 -0400

    Document that queueserver integration is experimental (bluesky#309)
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.

Drop Python 3.10 support Bump dependencies versions

3 participants