From db1fbd0fa2dfcd571f56a66b26faf89bb178a31f Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Wed, 8 Jan 2025 11:10:18 -0800 Subject: [PATCH 1/2] Use better broken link checker --- .github/workflows/ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54a475a0..f24ba991 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,8 +91,5 @@ jobs: steps: - name: Checkout Repo uses: actions/checkout@v4 - - name: Validate Markdown - uses: umbrelladocs/action-linkspector@v1 - with: - reporter: github-check - fail_on_error: true + - name: Link Checker + uses: AlexanderDokuchaev/md-dead-link-check@v1.0.1 From 337f4fa867d8aac376ca6293ac0be860cafe064e Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Wed, 8 Jan 2025 11:13:52 -0800 Subject: [PATCH 2/2] Fix links --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d8512cc6..b6d133be 100644 --- a/README.md +++ b/README.md @@ -233,7 +233,7 @@ Both guides below explain the changes required to upgrade to Valet 4. 1. `VALAccessControl` has been renamed to `SecureEnclaveAccessControl` (`VALSecureEnclaveAccessControl` in Objective-C). This enum no longer references `TouchID`; instead it refers to unlocking with `biometric` due to the introduction of Face ID. 1. `Valet`, `SecureEnclaveValet`, and `SinglePromptSecureEnclaveValet` are no longer in the same inheritance tree. All three now inherit directly from `NSObject` and use composition to share code. If you were relying on the subclass hierarchy before, 1) that might be a code smell 2) consider declaring a protocol for the shared behavior you were expecting to make your migration to Valet 3 easier. -You'll also need to continue reading through the [migration from Valet 3](#migration-from-valet-3) section below. +You'll also need to continue reading through the [migrating from Valet 3](#migrating-from-valet-3) section below. ### Migrating from Valet 3 @@ -241,6 +241,8 @@ You'll also need to continue reading through the [migration from Valet 3](#migra 1. Most APIs that returned optionals or `Bool` values have been migrated to returning a nonoptional and throwing if an error is encountered. Ignoring the error that can be thrown by each API will keep your code flow behaving the same as it did before. Walking through one example: in Swift, `let secret: String? = myValet.string(forKey: myKey)` becomes `let secret: String? = try? myValet.string(forKey: myKey)`. In Objective-C, `NSString *const secret = [myValet stringForKey:myKey];` becomes `NSString *const secret = [myValet stringForKey:myKey error:nil];`. If you're interested in the reason data wasn't returned, use a [do-catch](https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html#ID541) statement in Swift, or pass in an `NSError` to each API call and inspect the output in Objective-C. Each method clearly documents the `Error` type it can `throw`. [See examples above](#reading-and-writing). 1. The class method used to create a Valet that can share secrets between applications using keychain shared access groups has changed. In order to prevent the incorrect detection of the App ID prefix [in rare circumstances](https://github.com/square/Valet/pull/218), the App ID prefix must now be explicitly passed into these methods. To create a shared access groups Valet, you'll need to create a `SharedGroupIdentifier(appIDPrefix:nonEmptyGroup:)`. [See examples above](#sharing-secrets-among-multiple-applications-using-an-app-groups-entitlement). +You'll also need to continue reading through the [migrating from Valet 4](#migrating-from-valet-4) section below. + ### Migrating from Valet 4 1. Most `throw`ing methods now utilize [typed throws](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0413-typed-throws.md), which may render certain `catch` statements obsolete.