Skip to content

feat(orchestrator): Wire the Tango conflict analyzer into the reference server - #913

Open
manjari25 wants to merge 1 commit into
manjari/tango-clientfrom
manjari/tango-wiring
Open

manjari25 wants to merge 1 commit into
manjari/tango-clientfrom
manjari/tango-wiring

Conversation

@manjari25

Copy link
Copy Markdown
Contributor

Why?

The tango analyzer and its client adapter have no way to run in the reference orchestrator. This wires them in so a queue can select analyzer: tango.

What?

  • tangoclient: Dial opens a lazy gRPC connection to Tango. Connection.ChangedTargetsClient builds the adapter for a remote and strategy (unset, shell, native).
  • Config: a top-level tango block (address, signatureCacheBytes) and a per-queue analyzer.tango block (remote, strategy).
  • Validation: a tango queue must use the git change provider, and the address and a positive cache size are required whenever any queue uses tango.
  • Builder: one shared signature cache, a per-queue MySQL signature store, and the base revision read from the queue's own clone. Base-revision fetches take the same gitrepo.Repo lock as the git change provider.
  • README: the new config keys and two limits. Tango needs a git-provider queue until the GitHub base revision exists, and native needs github:// URIs that the git provider doesn't emit.

Test Plan

  • Unit tests added
  • CI

Issue

@manjari25
manjari25 marked this pull request as ready for review October 22, 2026 05:48
@manjari25
manjari25 requested review from a team, behinddwalls and sbalabanov as code owners October 22, 2026 05:48
@manjari25
manjari25 added this pull request to stack #912 October 22, 2026 05:48

"github.com/uber/tango/tangopb"
"go.uber.org/yarpc"
yarpcgrpc "go.uber.org/yarpc/transport/grpc"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

does this work with what we import internally? as these could be different?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Do you mean version of go.uber.org/yarpc internally? If so, it should work. Internally we use at least what is pinned in the oss repo here.

This branch has not been deployed

No deployments
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