Ensure reproducible beamline deployments by pinning dependencies from uv.lock

Open
#1,678 0 comments 0 reactions 0 assignees View on GitHub

@Relm-Arrowny is already working on this.

Since Sep 18, 2026.

  • #1679 by @Relm-Arrowny — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
python

Research direction

Start by locating the scratch beamline deployment path and the dependency installation entry point, then inspect how pyproject.toml and uv.lock are currently used. Done means a release deployment can install the locked dependency versions and be reproduced identically later; the issue does not name a file or test to run.

Written by the indexing model from the issue text.

Description

Currently, deploying bluesky module in scratch on a beamline resolves dependencies directly from pyproject.toml. Because dependency can pull in newer updates,, this can lead to unexpected environment between release tags.

To ensure production releases remain stable and fully reproducible, an option should be available to install locked dependency versions derived from uv.lock rather than resolving dependencies dynamically at deploy time.

Acceptance Criteria

  • A release deployment can be reproduced identically at any point in the future.
Dominant language
Python
Stars
13
Forks
13
Avg merge
1d 5h
Merged PRs (30d)
18

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DiamondLightSource/blueapi

All issues in DiamondLightSource/blueapi

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.