Skip to content

Ensure reproducible beamline deployments by pinning dependencies from uv.lock #1678

Open

Description

@Relm-Arrowny

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.

Activity

  1. Relm-Arrowny commented on Sep 22, 2026

    @Relm-Arrowny
    ContributorAuthor

    No longer requred #1679 (comment) and I was wrong so it is back.

  2. oliwenmandiamond commented on Oct 7, 2026

    @oliwenmandiamond
    Contributor

    As discussed in our standup today, this feels like a greater symptom of #1533. Our release is not a true release because the dependencies of blueapi and our plan repository release have their own dependencies and can drift and break because these two sets of dependencies are not tied together.

    If Blueapi was a library rather than the application, the plan repository would be the single source of dependencies as this would be the application and have blueapi as a dependency. Making a release of our plan repository which pins blueapi would be a true release and the environment in theory can be replicated every time

  3. added
    dev-environmentIssues for improving the developer environment/experience
    deploymentStuff related to running in production container
    on Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    deploymentStuff related to running in production containerdev-environmentIssues for improving the developer environment/experience

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions