Pipe protocol: The design of InstanceId
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 1k
- Forks
- 312
- Avg merge
- 7h 46m
- Merged PRs (30d)
- 465
Description
Today, we recognize retries by receiving a different "instance id". A new "instance id" essentially means "this is a different test host".
This feels like an incomplete design to me. What if we want to support sharding. Are we going to have an env variable that takes precedence over Guid.NewGuid().ToString("N")?
Long-term, I think it's more wise to encode the information about "attempt number" inside the protocol. So, each test result is received with an "attempt number" in case of retries. But that might not be easy to change "now", probably.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs at line 29 and trace how instance IDs identify retries. Review the pipe protocol's handling of retries and sharding, then clarify and document the intended attempt identity model. Done requires an agreed protocol design and corresponding implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100