Skip to content

Centralize default deps versions in a single source-of-truth file #742

Closed

Description

@doringeman

Default versions for vLLM, SGLang, and llama-server are currently duplicated across multiple files (Dockerfile, Makefile .github/workflows/release.yml, scripts, README). This makes bumping a version error-prone as they easily drift out of sync (e.g. vLLM was 0.12.0 in CI but 0.17.0 in the Dockerfile).

Introduce a single source-of-truth file (e.g. .versions or .env) that defines the defaults, and have each consumer read from it:

  • Makefile: VLLM_VERSION ?= $(shell ...)
  • Dockerfile: remove ARG defaults; always pass via --build-arg
  • CI workflow: read from the file in a setup step, remove hardcoded input defaults
  • Shell scripts: source the file or read the relevant value

This ensures a version bump is a one-line change in one file.

Activity

  1. vb-hmn commented on Mar 9, 2026

    @vb-hmn

    I would like to take this issue up.

  2. doringeman commented on Mar 10, 2026

    @doringeman
    ContributorAuthor

    Take it away @vb-hmn! 😁

  3. ayushgharat234 commented on Mar 12, 2026

    @ayushgharat234

    Are you working on this @vb-hmn ? I was wanting to contribute

  4. vb-hmn commented on Mar 12, 2026

    @vb-hmn

    @ayushgharat234 Yes I have it almost ready

  5. ayushgharat234 commented on Mar 12, 2026

    @ayushgharat234

    @ayushgharat234 Yes I have it almost ready

    Good luck

  6. alimx07 commented on Mar 26, 2026

    @alimx07
    Contributor

    Hi @vb-hmn , are you still working on this? I noticed the repository hasn’t been forked yet.
    If not, @doringeman, I’d be happy to take on this issue.

  7. vb-hmn commented on Mar 26, 2026

    @vb-hmn

    I got caught up on work commitments, I wont be able to finish this. Feel free to assign to someone who can.

  8. ayushgharat234 commented on Mar 26, 2026

    @ayushgharat234

    Can someone assign this to me

  9. ayushgharat234 commented on Mar 26, 2026

    @ayushgharat234

    I got caught up on work commitments, I wont be able to finish this. Feel free to assign to someone who can.

    Can you tell someone to /assign it to me?

  10. doringeman commented on Mar 27, 2026

    @doringeman
    ContributorAuthor

    Hello, anyone can take it, just discuss beforehand. You can take a look at other issues, too, even if they're not marked as "good first issue", because they still might be good first issues! 😁

  11. alimx07 commented on Mar 28, 2026

    @alimx07
    Contributor

    Hello, anyone can take it, just discuss beforehand. You can take a look at other issues, too, even if they're not marked as "good first issue", because they still might be good first issues! 😁

    Happy to take this on. So, the plan is to introduce a .versions file at the repo root as the single source of truth for all top level backend versions (VLLM_VERSION, SGLANG_VERSION, LLAMA_SERVER_VERSION, VLLM_METAL_RELEASE, DIFFUSERS_RELEASE), and wire every consumer to read from it, preventing The drift already found (eg: SGLang is 0.5.6 in the Dockerfile but 0.4.0 in release.yml).

    Changes

    • Makefile : include .versions, remove duplicate ?= defaults
    • Dockerfile : drop hardcoded ARG defaults; Makefile already passes every version via --build-arg
    • release.yml : add a setup step that pipes .versions into $GITHUB_ENV, replace hardcoded input defaults
    • Shell scripts : source .versions at the top of build-vllm-metal-tarball.sh and build-diffusers-tarball.sh in case someone calls the script directly outside of Make
    • README : I will update the hardcoded version references here too, with a pointer to .versions as the source of truth, should anything else done ?

    Happy to discuss before opening the PR.

  12. alimx07 commented on Apr 1, 2026

    @alimx07
    Contributor

    @doringeman should I do it ?

  13. doringeman commented on Apr 1, 2026

    @doringeman
    ContributorAuthor

    Hey @alimx07, yes, go for it!

    One concern: Dockerfile ARG defaults can't be removed entirely. The Dockerfile needs to work standalone (docker build . without Make), for example in the inference-engine repo's CI which builds the image directly. Removing ARG defaults would break that. Instead, keep the ARG defaults in the Dockerfile but always pass --build-arg from Make/CI so the .versions values take precedence. The Dockerfile defaults become the fallback, not the source of truth.

    What I'd suggest adding

    • Also include GO_VERSION and BASE_IMAGE in .versions — these are duplicated between Makefile and Dockerfile too
    • Add a CI validation step that checks the .versions file is consistent (e.g., grep the values in Dockerfile ARG
      defaults and warn if they differ)
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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions