Skip to content

Place all versions of a single package into the same shard#1164

Merged
jakebailey merged 2 commits into
microsoft:mainfrom
jakebailey:sharding-versions
Apr 2, 2025
Merged

Place all versions of a single package into the same shard#1164
jakebailey merged 2 commits into
microsoft:mainfrom
jakebailey:sharding-versions

Conversation

@jakebailey
Copy link
Copy Markdown
Member

@jakebailey jakebailey commented Apr 2, 2025

This has bugged me for a while; when a package breaks (e.g. react right now), we're effectively guaranteed to place all of that package's versions into different shards, so CI will have failures spread across multiple logs. That's pretty annoying to gauge how broken something is.

This PR modifies our shading algorithm to group packages and then shard on those groups, placing react/react/v18, or node/node/v20/node/v18, etc, all in the same shard to fail together.

Probably it'd also be worth it to place something like react with react-dom, since those are also pretty much guaranteed to be in separate CI jobs.

Another fix would be to not round robin shard the packages, instead group them directly alphabetically, however I think that might have the negative effect of making CI run longer as we'd end up in a situation like "all react packages are located on the same few shards" and take more time to run than other jobs.

This grouping thing I think is the "least bad" to at least get the same package into the same log.

@jakebailey jakebailey merged commit ad9fccf into microsoft:main Apr 2, 2025
8 checks passed
@jakebailey jakebailey deleted the sharding-versions branch April 2, 2025 20:00
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