Repository: apple/swift-testing (swift)

Issue:
Lower the platform requirement
### Description

The current platform requirement makes it hard for other existing package to adopt swift-testing.
Consider lowering the requirement and mark related API with `@avaiable` mark.

### Expected behavior

A package with iOS 13 support can have a dependency on this package. 

### Actual behavior

A package with iOS 13 support can not have a dependency on this package. 

### Steps to reproduce

_No response_

### swift-testing version/commit hash

_No response_

### Swift & OS version (output of `swift --version && uname -a`)

_No response_

Pull request description:
Lower Apple Platform requirement in Package.swift

### Motivation:

Close #101 

### Modifications:

Lower Apple Platform requirement in Package.swift

### Result:

A Package with iOS 13 support can at least have a dependency on it.

### Checklist:

- [x] Code and documentation should follow the style of the [Style Guide](https://github.com/apple/swift-testing/blob/main/Documentation/StyleGuide.md).
- [x] If public symbols are renamed or modified, DocC references should be updated.

Patch:
diff --git a/Package.swift b/Package.swift
index 8d3b4ca7a..3687913d8 100644
--- a/Package.swift
+++ b/Package.swift
@@ -17,10 +17,11 @@ let package = Package(
   name: "swift-testing",
 
   platforms: [
-    .macOS(.v13),
-    .iOS(.v16),
-    .watchOS(.v9),
-    .tvOS(.v16),
+    .macOS(.v10_15),
+    .iOS(.v13),
+    .watchOS(.v6),
+    .tvOS(.v13),
+    .macCatalyst(.v13),
     .visionOS(.v1),
   ],
 
diff --git a/Sources/GitStatus/main.swift b/Sources/GitStatus/main.swift
index ad9b9ccc3..aac34e0ca 100644
--- a/Sources/GitStatus/main.swift
+++ b/Sources/GitStatus/main.swift
@@ -56,10 +56,17 @@ func _runGit(passing arguments: String..., readingUpToCount maxOutputCount: Int)
   defer {
     process.terminate()
   }
-  guard let output = try? stdoutPipe.fileHandleForReading.read(upToCount: maxOutputCount) else {
-    return nil
+  if #available(macOS 10.15.4, *) {
+    guard let output = try? stdoutPipe.fileHandleForReading.read(upToCount: maxOutputCount) else {
+      return nil
+    }
+    return String(data: output, encoding: .utf8)
+  } else {
+    guard let output = try? stdoutPipe.fileHandleForReading.readData(ofLength: maxOutputCount) else {
+      return nil
+    }
+    return String(data: output, encoding: .utf8)
   }
-  return String(data: output, encoding: .utf8)
 #else
   return nil
 #endif


Test patch:
diff --git a/Sources/Testing/Testing.docc/TemporaryGettingStarted.md b/Sources/Testing/Testing.docc/TemporaryGettingStarted.md
index 84b55c3af..d6e53b675 100644
--- a/Sources/Testing/Testing.docc/TemporaryGettingStarted.md
+++ b/Sources/Testing/Testing.docc/TemporaryGettingStarted.md
@@ -65,7 +65,7 @@ can be used with):
 
 ```swift
 platforms: [
-  .macOS(.v13), .iOS(.v16), .watchOS(.v9), .tvOS(.v16), .visionOS(.v1)
+  .macOS(.v10_15), .iOS(.v13), .watchOS(.v6), .tvOS(.v13), .macCatalyst(.v13), .visionOS(.v1)
 ],
 ```
 
diff --git a/Tests/TestingTests/ClockTests.swift b/Tests/TestingTests/ClockTests.swift
index 54b878753..a317a74d2 100644
--- a/Tests/TestingTests/ClockTests.swift
+++ b/Tests/TestingTests/ClockTests.swift
@@ -121,6 +121,7 @@ struct ClockTests {
     #expect(duration == .nanoseconds(offsetNanoseconds))
   }
 
+  @available(_clockAPI, *)
   @Test("Codable")
   func codable() async throws {
     let now = Test.Clock.Instant()