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