Skip to content

Conversation

@skrawcz
Copy link
Contributor

@skrawcz skrawcz commented Oct 5, 2025

Changes

Removes elkjs and adds dagre

Need to test this more -- but basic graphs work.

Updates backend to use UV and updates to use 3.9

So python 3.8 is gone. Updates to use python 3.9
Updates deps and to use uv for reproducible builds.

How I tested this

  • locally

Notes

Checklist

  • PR has an informative and human-readable title (this will be pulled into the release notes)
  • Changes are limited to a single goal (no scope creep)
  • Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future TODOs are captured in comments
  • Project documentation has been updated if adding/changing functionality.

Need to test this more -- but basic graphs work.
So python 3.8 is gone. Updates to use python 3.9
Updates deps and to use uv for reproducible builds.
@skrawcz skrawcz requested a review from elijahbenizzy October 5, 2025 17:25
@skrawcz skrawcz changed the base branch from main to stefan/fix_some_headers_license October 5, 2025 17:25
@skrawcz skrawcz changed the base branch from stefan/fix_some_headers_license to main October 5, 2025 17:26
@skrawcz skrawcz requested a review from zilto October 5, 2025 17:26
Copy link
Contributor

Choose a reason for hiding this comment

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

For reference, there are ways to optimize the Docker build process such that it uses the host's local uv cache when building Python dependencies inside the container. This can lead to significant speed improvement in dev

example: https://github.com/astral-sh/uv-docker-example/blob/main/multistage.Dockerfile

COPY server/requirements-locked.txt /code/

RUN pip install -r /code/requirements.txt
RUN uv pip install --system -r /code/requirements-locked.txt
Copy link
Contributor

Choose a reason for hiding this comment

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

I see that Dockerfile.backend and Dockerfile.backend-prod already existed, but it seems they were identical except the additional line 15 (origin) in backend-prod?

I have a few questions:

  • why are two files needed?
  • why use the frozen requirements-locked.txt in backend-prod? This just seems like a weaker uv.lock. Are there any particular trade-offs?
  • In backend-prod, the line COPY . /code/ appears twice (line 15 and line 20 in origin). Is this intended?

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.

2 participants