Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@
// MD051: Link fragments should be valid
"MD051": true,

// MD060: Table column style - disabled. Purely cosmetic pipe padding, added in
// markdownlint v0.41, that no existing table in the repository follows.
"MD060": false,

// proper-names: Enforce proper capitalization of names
"proper-names": {
"code_blocks": false,
Expand Down
2 changes: 1 addition & 1 deletion docs/RFCs/016-JUnit-Report.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ Writing the stack trace alone would **not** be equivalent to Java's output: .NET

The `message` and `type` attributes are still written, so consumers that read them directly are unaffected. The resulting duplication between the `message` attribute and the body is exactly what every Maven/Surefire report already exhibits, so consumers that render both have long handled it.

Each part degrades gracefully: a missing exception type drops the header prefix, a missing message drops the `: ` separator, and a missing stack trace yields a header-only body.
Each part degrades gracefully: a missing exception type drops the header prefix, a missing message drops the colon-space separator, and a missing stack trace yields a header-only body.

### The `type` attribute

Expand Down
1 change: 1 addition & 0 deletions docs/RFCs/017-TestHost-Launcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ Loopback exemptions (`CheckNetIsolation LoopbackExempt`) are explicitly *not* pa
apply to network loopback sockets, not to named-pipe DACLs, and would not help here.

### Contract requirements on the launcher

- The launched host **must** end up with the values in `context.EnvironmentVariables` (so it connects
back on the controller pipe) and **must** receive `context.Arguments`. *How* those values reach the
host is left to the launcher — they can be inherited from the environment, passed as activation
Expand Down
2 changes: 1 addition & 1 deletion docs/RFCs/020-Resource-Lock-Attribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ it. With `Workers = 4`, four dequeued chunks contending on one exclusive key lea
parked and the rest of the queue stalled — even though those queued chunks declare no locks and
could otherwise run. So `[ResourceLock]` guarantees *correct mutual exclusion*, not that unrelated
tests always keep running; heavy contention still reduces effective parallelism. Keep locked tests a
small fraction of the suite (see the speedup math under [Granularity guidance](#granularity-guidance)).
small fraction of the suite (see the speedup math under [Granularity guidance](#guidance-granularity)).
Lock-aware dispatch — skipping over a chunk whose locks are unavailable and taking the next one — is
[Future work](#future-work); it is deliberately not attempted in v1 because a naive version can
livelock without a bounded retry policy.
Expand Down
8 changes: 4 additions & 4 deletions docs/RFCs/021-Per-Test-Temporary-Directory.md
Original file line number Diff line number Diff line change
Expand Up @@ -283,10 +283,10 @@ contain characters illegal in paths and can be very long. Scheme:
are cryptographically negligible — a full 128-bit GUID makes two contexts choosing the same
suffix effectively impossible even at very large scales (millions of contexts).
5. **Create with collision retry**: attempt `Directory.CreateDirectory` for the candidate; if the
directory already exists, regenerate the suffix and retry a bounded number of times. `Directory.Exists`
+ `CreateDirectory` is not an atomic exclusive create, so the retry is only a belt-and-braces
guard — the actual uniqueness guarantee comes from the 128-bit suffix, whose birthday-collision
probability is negligible, not from the pre-check.
directory already exists, regenerate the suffix and retry a bounded number of times.
`Directory.Exists` + `CreateDirectory` is not an atomic exclusive create, so the retry is only a
belt-and-braces guard — the actual uniqueness guarantee comes from the 128-bit suffix, whose
birthday-collision probability is negligible, not from the pre-check.

If the test name is empty, whitespace-only, made up entirely of invalid characters, or the adaptive
budget has collapsed to zero, the sanitized prefix is empty and the directory name is **just the
Expand Down