• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence / 018d3424-fd0e-4e77-9c17-3444e51d7d38 / 1
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 23 Jan 2024 02:48AM UTC
Files 658
Run time 12s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jan 2024 02:27AM UTC coverage: 62.609% (-0.05%) from 62.662%
018d3424-fd0e-4e77-9c17-3444e51d7d38.1

push

buildkite

web-flow
Submodules step 2/2: draw the rest of the owl (#5609)

# What

Step 1 was in PR #5597

This second commit essentially:
1. splits the gcloud-only dependencies into a submodule which imports the main `github.com/uber/cadence` module, and not the reverse
2. also splits the "main" server build (`cmd/server`) into a submodule which imports the gcloud plugin and the main module (so that binary is unchanged)
3. removes `cloud.google.com/*` dependencies from the main `go.mod` (requires both 1 and 2)
4. adjusts things to work like they did before

Ultimately reducing our "main" (truly required) dependencies, while not making major changes to using or developing Cadence.

# Why

Part on principle, and part due to internal version conflicts.

In principle, "plugins" are "optional" and we should not be forcing _all_ optional dependencies on _all_ users of _any_ of Cadence.  
Splitting dependencies into choose-your-own-adventure submodules is simply good library design for the ecosystem, and it's something we should be doing more of.

In practice, this is essentially being forced because the gcloud archiver plugin pulls in some `cloud.google.com/*` stuff, which we upgraded, which forces breaking `google.golang.org/genproto` upgrades, which conflicts with other things in our internal monorepo.  
Removing this requirement (we do not use the gcloud archiver internally) allows us to continue using these incompatible libraries elsewhere, unblocking us while we wait for them to upgrade.  
This may also be true for [waves in the direction of The Internet] all of You, so rejoice!  Our pain is your gain.  We now no longer force you to use these libraries.

We will likely be doing this with more submodules in the future, this is just the first proof-of-concept and establishes a pattern to follow for the others.  
The client library will very likely also be doing this (or possibly in other repos) to separate out some of its more problematic dependenci... (continued)

91759 of 146558 relevant lines covered (62.61%)

2337.57 hits per line

Source Files on job 018d3424-fd0e-4e77-9c17-3444e51d7d38.1
  • Tree
  • List 658
  • Changed 275
  • Source Changed 0
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 18
  • 08d5994a on github
  • Prev Job for on master (#018d32c6-7925-4250-8c00-aa4275f02b20.1)
  • Next Job for on master (#018d3831-6b71-4931-8510-a3ec8e5e446e.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc