Skip to content

Milvus

How Milvus Auto-Merges 1,700+ Pull Requests a Year Across an Open Source Vector Database Ecosystem

Milvus
Location Distributed (LF AI & Data Foundation)
Customer Since January 2021
Team Size 30 engineers
XW

Xiangyu Wang

Milvus Maintainer

Company

Milvus is the open source vector database that backs semantic search, recommendation systems, and the retrieval layer for modern AI applications. It started inside Zilliz and is now part of the LF AI & Data Foundation, with around 30 engineers contributing across a 12-repository ecosystem.

Challenges

  • Test results split between GitHub Actions and an internal Jenkins, leaving contributors unsure when a PR was actually ready to merge
  • Different PR types needed different test rules, label combinations, and gating before they could land on master
  • Five maintainers couldn't keep up with manual merge babysitting across a 12-repository ecosystem

Solutions

Milvus is the open source vector database that backs semantic search, recommendation systems, image search, and the retrieval layer for modern AI applications. The project sits inside the LF AI & Data Foundation and runs on contributions from around 30 people, mostly engineers at Zilliz. Five of them have full maintainer access.

The merge policy is non-trivial. Because Milvus is an LF AI & Data project, every PR has to pass a DCO check before it's allowed to merge. On top of that, the team runs two separate test layers: GitHub Actions for the lightweight checks, and an internal Jenkins for the heavier ones. The result is a PR with status updates landing from multiple places at different times, which historically left both contributors and maintainers having to chase down whether a PR was actually ready to merge.

When you finish the configuration of auto-merge, you will have an extra team member who will merge all the finished code for you.

XW

Xiangyu Wang

Milvus Maintainer

Mergify's job at Milvus is to turn that mess of status updates into a single decision. The team relies heavily on labels: a dco-passed label gets added when DCO clears, and a ci-passed label flips when the PR's relevant tests turn green. Combined with a maintainer's LGTM, those labels tell Mergify whether the PR is actually mergeable. When everything lines up, Mergify auto-merges to master without anyone touching a button.

Because the team has multiple PR types, with different test requirements for code versus docs, the labeling rules differ accordingly. Doc-only PRs skip the heavy Jenkins tests entirely, while code changes go through the full suite. Mergify handles the routing based on file paths and labels, which means contributors don't need to know the rules to file a correct PR.

It has allowed us to automate our development process! This was especially noticeable early on in the project because we spent all our time developing the core function at that time.

XW

Xiangyu Wang

Milvus Maintainer

Across the past 12 months, Mergify has handled 1,742 PRs across the milvus-io organization. The milvus core repo alone accounts for about 1,360 of those, with the rest spread across 11 other repositories like pymilvus and the language SDKs. Five maintainers couldn't review and merge that volume manually if they tried, and the 105 distinct contributors over the same period would lose patience fast if they had to wait for one of those five to be free.

For Xiangyu, the win is the asynchronous flow: contributors push a change, tests run automatically, maintainers leave reviews when they have time, and Mergify merges once everything is green. The "extra team member" framing is his, and after a year of 1,700+ merges that description holds up.

Other customer stories

Engineering teams we helped merge faster, safer, and cheaper

Move faster. Break less.

2k+ organizations use Mergify to merge 75k+ pull requests a month without breaking main.