A write error is now considered retryable if it has a RetryableWriteError label in the "errorLabels" field.
See the Determining Retryable Writes section for more information on how the driver should determine which write errors are retryable.
This change also involves implementing new spec tests that use the failCommand fail point to make sure that drivers are retrying writes based on the presence of the RetryableWriteError label, rather than error codes.
See this PR for complete changes.
POCs: Ruby - Emily, C#