The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Vexil, reference v3.0.0-beta.2 (c50af4), with Swift 6.3 for macOS (SPM) on 14 Apr 2026 19:49:23 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/unsignedapps/Vexil.git
Reference: v3.0.0-beta.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/unsignedapps/Vexil
 * tag               v3.0.0-beta.2 -> FETCH_HEAD
HEAD is now at c50af49 Merge pull request #150 from Brett-Best/chore/swift-syntax-603.0.0-support
Cloned https://github.com/unsignedapps/Vexil.git
Revision (git rev-parse @):
c50af494f6f0717b6b7ff082fcbc3ccdd359d524
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/unsignedapps/Vexil.git at v3.0.0-beta.2
Fetching https://github.com/apple/swift-async-algorithms.git
Fetching https://github.com/swiftlang/swift-syntax.git
Fetching https://github.com/nicklockwood/SwiftFormat.git
Fetching https://github.com/apple/swift-collections.git
[1/6235] Fetching swift-async-algorithms
[64/29772] Fetching swift-async-algorithms, swift-collections
[5266/85880] Fetching swift-async-algorithms, swift-collections, swiftformat
Fetched https://github.com/apple/swift-async-algorithms.git from cache (1.12s)
[2771/79645] Fetching swift-collections, swiftformat
[18993/154617] Fetching swift-collections, swiftformat, swift-syntax
Fetched https://github.com/nicklockwood/SwiftFormat.git from cache (55.06s)
Fetched https://github.com/apple/swift-collections.git from cache (55.06s)
Fetched https://github.com/swiftlang/swift-syntax.git from cache (55.07s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 600.0.1 (58.11s)
Computing version for https://github.com/nicklockwood/SwiftFormat.git
Computed https://github.com/nicklockwood/SwiftFormat.git at 0.60.1 (0.65s)
Computing version for https://github.com/apple/swift-async-algorithms.git
Computed https://github.com/apple/swift-async-algorithms.git at 1.0.4 (0.59s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.2.1 (0.61s)
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.2.1
Creating working copy for https://github.com/nicklockwood/SwiftFormat.git
Working copy of https://github.com/nicklockwood/SwiftFormat.git resolved at 0.60.1
Creating working copy for https://github.com/apple/swift-async-algorithms.git
Working copy of https://github.com/apple/swift-async-algorithms.git resolved at 1.0.4
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 600.0.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "vexil",
      "name": "Vexil",
      "url": "https://github.com/unsignedapps/Vexil.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Vexil",
      "traits": [
        "default"
      ],
      "dependencies": [
        {
          "identity": "swift-async-algorithms",
          "name": "swift-async-algorithms",
          "url": "https://github.com/apple/swift-async-algorithms.git",
          "version": "1.1.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-async-algorithms",
          "traits": [
            "default"
          ],
          "dependencies": [
            {
              "identity": "swift-collections",
              "name": "swift-collections",
              "url": "https://github.com/apple/swift-collections.git",
              "version": "1.4.1",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-collections",
              "traits": [
              ],
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/unsignedapps/Vexil.git
[1/12773] Fetching vexil
Fetched https://github.com/unsignedapps/Vexil.git from cache (1.27s)
Fetching https://github.com/apple/swift-async-algorithms.git from cache
Fetching https://github.com/swiftlang/swift-syntax.git from cache
Fetched https://github.com/apple/swift-async-algorithms.git from cache (0.54s)
Fetched https://github.com/swiftlang/swift-syntax.git from cache (0.88s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 603.0.0 (1.65s)
Computing version for https://github.com/apple/swift-async-algorithms.git
Computed https://github.com/apple/swift-async-algorithms.git at 1.1.3 (0.59s)
Fetching https://github.com/apple/swift-collections.git from cache
Fetched https://github.com/apple/swift-collections.git from cache (0.50s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.4.1 (1.16s)
Creating working copy for https://github.com/apple/swift-async-algorithms.git
Working copy of https://github.com/apple/swift-async-algorithms.git resolved at 1.1.3
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.4.1
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 603.0.0
Creating working copy for https://github.com/unsignedapps/Vexil.git
Working copy of https://github.com/unsignedapps/Vexil.git resolved at v3.0.0-beta.2 (c50af49)
Downloading package prebuilt https://download.swift.org/prebuilts/swift-syntax/603.0.0/swiftlang-6.3.0.123.5-macosx26.4-MacroSupport.zip
Downloaded https://download.swift.org/prebuilts/swift-syntax/603.0.0/swiftlang-6.3.0.123.5-macosx26.4-MacroSupport.zip (0.30s)
warning: '.resolve-product-dependencies': dependency 'vexil' is not used by any target
Found 1 product dependencies
  - swift-async-algorithms
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/unsignedapps/Vexil.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin SwiftFormatPlugin
Building for debugging...
[1/31] Write sources
[27/31] Compiling _SwiftSyntaxCShims dummy.c
[28/31] Write swift-version--6988338F2F200930.txt
[30/65] Emitting module SwiftSyntax509
[31/65] Compiling SwiftSyntax509 Empty.swift
[32/65] Compiling SwiftSyntax600 Empty.swift
[33/65] Emitting module SwiftSyntax600
[34/65] Compiling SwiftSyntax510 Empty.swift
[35/65] Emitting module SwiftSyntax510
[36/65] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[37/65] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[38/65] Compiling InternalCollectionsUtilities Debugging.swift
[39/65] Compiling InternalCollectionsUtilities Descriptions.swift
[40/65] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[42/66] Compiling InternalCollectionsUtilities Descriptions.swift
[43/66] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[44/66] Compiling InternalCollectionsUtilities Debugging.swift
[45/66] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[46/72] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[48/108] Compiling SwiftSyntax BumpPtrAllocator.swift
[49/108] Compiling SwiftSyntax CommonAncestor.swift
[50/108] Compiling SwiftSyntax AbsoluteSyntaxInfo.swift
[51/108] Compiling SwiftSyntax Assert.swift
[52/108] Compiling SwiftSyntax AbsolutePosition.swift
[53/108] Compiling SwiftSyntax AbsoluteRawSyntax.swift
[54/108] Emitting module InternalCollectionsUtilities
[55/108] Compiling SwiftSyntax Convenience.swift
[56/108] Compiling SwiftSyntax CustomTraits.swift
[65/132] Emitting module InternalCollectionsUtilities
[66/220] Compiling DequeModule _DequeSlot.swift
[67/220] Compiling DequeModule _DequeBufferHeader.swift
[69/277] Compiling DequeModule _DequeSlot.swift
[70/278] Compiling DequeModule _DequeBuffer.swift
[71/278] Compiling DequeModule _UnsafeWrappedBuffer.swift
[72/278] Compiling OrderedCollections OrderedSet+Codable.swift
[73/278] Compiling OrderedCollections OrderedSet+CustomReflectable.swift
[74/278] Compiling OrderedCollections OrderedSet+Descriptions.swift
[75/278] Compiling OrderedCollections OrderedSet+Diffing.swift
[76/278] Compiling OrderedCollections OrderedSet+Equatable.swift
[77/278] Compiling OrderedCollections OrderedSet+ExpressibleByArrayLiteral.swift
[78/284] Compiling OrderedCollections OrderedSet+Partial SetAlgebra symmetricDifference.swift
[79/284] Compiling OrderedCollections OrderedSet+Partial SetAlgebra union.swift
[80/284] Compiling OrderedCollections OrderedSet+Partial SetAlgebra+Basics.swift
[81/284] Compiling OrderedCollections OrderedSet+RandomAccessCollection.swift
[82/284] Compiling OrderedCollections OrderedSet+ReserveCapacity.swift
[83/284] Compiling OrderedCollections OrderedSet+Sendable.swift
[84/284] Compiling OrderedCollections OrderedDictionary+Elements.swift
[85/284] Compiling OrderedCollections OrderedDictionary+Equatable.swift
[86/284] Compiling OrderedCollections OrderedDictionary+ExpressibleByDictionaryLiteral.swift
[87/284] Compiling OrderedCollections OrderedDictionary+Hashable.swift
[88/284] Compiling OrderedCollections OrderedDictionary+Initializers.swift
[89/284] Compiling OrderedCollections OrderedDictionary+Invariants.swift
[90/284] Compiling DequeModule _UnsafeWrappedBuffer.swift
[91/290] Compiling OrderedCollections _HashTable+Constants.swift
[92/290] Compiling OrderedCollections _HashTable+CustomStringConvertible.swift
[93/290] Compiling DequeModule _DequeBuffer.swift
[94/290] Compiling OrderedCollections OrderedDictionary+Partial RangeReplaceableCollection.swift
[95/290] Compiling OrderedCollections OrderedDictionary+Sendable.swift
[96/290] Compiling OrderedCollections OrderedDictionary+Sequence.swift
[97/290] Compiling OrderedCollections OrderedDictionary+Values.swift
[98/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formIntersection.swift
[99/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formSymmetricDifference.swift
[100/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formUnion.swift
[101/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra intersection.swift
[102/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isDisjoint.swift
[103/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isEqualSet.swift
[112/290] Compiling OrderedCollections _HashTable+Testing.swift
[113/290] Compiling OrderedCollections _HashTable+UnsafeHandle.swift
[114/290] Compiling OrderedCollections _HashTable+Bucket.swift
[115/290] Compiling OrderedCollections _HashTable+BucketIterator.swift
[116/290] Compiling OrderedCollections _HashTable.swift
[117/290] Compiling OrderedCollections OrderedDictionary+Partial MutableCollection.swift
[132/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSubset.swift
[133/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSuperset.swift
[134/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSubset.swift
[135/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSuperset.swift
[136/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtract.swift
[137/290] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtracting.swift
[144/290] Emitting module DequeModule
[163/290] Compiling OrderedCollections OrderedSet+Hashable.swift
[164/290] Compiling OrderedCollections OrderedSet+Initializers.swift
[165/290] Compiling OrderedCollections OrderedSet+Insertions.swift
[166/290] Compiling OrderedCollections OrderedSet+Invariants.swift
[167/290] Compiling OrderedCollections OrderedSet+Partial MutableCollection.swift
[168/290] Compiling OrderedCollections OrderedSet+Partial RangeReplaceableCollection.swift
[181/290] Compiling OrderedCollections _Hashtable+Header.swift
[182/290] Compiling OrderedCollections OrderedDictionary+Codable.swift
[183/290] Compiling OrderedCollections OrderedDictionary+CustomReflectable.swift
[184/290] Compiling OrderedCollections OrderedDictionary+Deprecations.swift
[185/290] Compiling OrderedCollections OrderedDictionary+Descriptions.swift
[186/290] Compiling OrderedCollections OrderedDictionary+Elements.SubSequence.swift
[189/290] Emitting module DequeModule
[195/290] Compiling OrderedCollections OrderedDictionary.swift
[210/290] Compiling OrderedCollections OrderedSet+SubSequence.swift
[211/290] Compiling OrderedCollections OrderedSet+Testing.swift
[212/290] Compiling OrderedCollections OrderedSet+UnorderedView.swift
[213/290] Compiling OrderedCollections OrderedSet+UnstableInternals.swift
[214/290] Compiling OrderedCollections OrderedSet.swift
[215/290] Compiling OrderedCollections _UnsafeBitset.swift
[222/290] Emitting module OrderedCollections
[236/389] Compiling SwiftSyntax RawSyntaxLayoutView.swift
[237/389] Compiling SwiftSyntax RawSyntaxNodeProtocol.swift
[238/389] Compiling SwiftSyntax RawSyntaxTokenView.swift
[246/389] Compiling AsyncAlgorithms AsyncChunkedOnProjectionSequence.swift
[247/389] Compiling AsyncAlgorithms AsyncChunksOfCountOrSignalSequence.swift
[248/389] Compiling AsyncAlgorithms AsyncChunksOfCountSequence.swift
[249/389] Compiling AsyncAlgorithms AsyncCompactedSequence.swift
[250/389] Compiling AsyncAlgorithms AsyncExclusiveReductionsSequence.swift
[251/394] Compiling AsyncAlgorithms AsyncThrowingChannel.swift
[252/394] Compiling AsyncAlgorithms ChannelStateMachine.swift
[253/394] Compiling AsyncAlgorithms ChannelStorage.swift
[254/394] Compiling AsyncAlgorithms AsyncCombineLatest2Sequence.swift
[255/394] Compiling AsyncAlgorithms AsyncCombineLatest3Sequence.swift
[256/399] Emitting module AsyncAlgorithms
[257/399] Compiling AsyncAlgorithms AsyncAdjacentPairsSequence.swift
[258/399] Compiling AsyncAlgorithms AsyncBufferedByteIterator.swift
[259/399] Compiling AsyncAlgorithms AsyncChain2Sequence.swift
[260/399] Compiling AsyncAlgorithms AsyncChain3Sequence.swift
[261/399] Compiling AsyncAlgorithms AsyncChunkedByGroupSequence.swift
[262/399] Emitting module AsyncAlgorithms
[263/399] Compiling AsyncAlgorithms CombineLatestStateMachine.swift
[264/399] Compiling AsyncAlgorithms CombineLatestStorage.swift
[265/399] Compiling AsyncAlgorithms AsyncDebounceSequence.swift
[266/399] Compiling AsyncAlgorithms DebounceStateMachine.swift
[267/399] Compiling AsyncAlgorithms DebounceStorage.swift
[273/399] Compiling AsyncAlgorithms AsyncThrottleSequence.swift
[274/399] Compiling AsyncAlgorithms AsyncThrowingExclusiveReductionsSequence.swift
[275/399] Compiling AsyncAlgorithms AsyncThrowingInclusiveReductionsSequence.swift
[276/399] Compiling AsyncAlgorithms AsyncTimerSequence.swift
[277/399] Compiling AsyncAlgorithms AsyncBufferSequence.swift
[278/399] Compiling AsyncAlgorithms MergeStateMachine.swift
[279/399] Compiling AsyncAlgorithms MergeStorage.swift
[280/399] Compiling AsyncAlgorithms RangeReplaceableCollection.swift
[281/399] Compiling AsyncAlgorithms Rethrow.swift
[282/399] Compiling AsyncAlgorithms SetAlgebra.swift
[283/399] Compiling AsyncAlgorithms Dictionary.swift
[284/399] Compiling AsyncAlgorithms AsyncInterspersedSequence.swift
[285/399] Compiling AsyncAlgorithms Locking.swift
[286/399] Compiling AsyncAlgorithms AsyncMerge2Sequence.swift
[287/399] Compiling AsyncAlgorithms AsyncMerge3Sequence.swift
[308/399] Compiling AsyncAlgorithms AsyncInclusiveReductionsSequence.swift
[309/399] Compiling AsyncAlgorithms AsyncJoinedBySeparatorSequence.swift
[310/399] Compiling AsyncAlgorithms AsyncJoinedSequence.swift
[311/399] Compiling AsyncAlgorithms AsyncRemoveDuplicatesSequence.swift
[312/399] Compiling AsyncAlgorithms AsyncSyncSequence.swift
[313/399] Compiling AsyncAlgorithms BoundedBufferStateMachine.swift
[314/399] Compiling AsyncAlgorithms BoundedBufferStorage.swift
[315/399] Compiling AsyncAlgorithms UnboundedBufferStateMachine.swift
[316/399] Compiling AsyncAlgorithms UnboundedBufferStorage.swift
[317/399] Compiling AsyncAlgorithms AsyncChannel.swift
[323/399] Compiling AsyncAlgorithms UnsafeTransfer.swift
[324/399] Compiling AsyncAlgorithms AsyncZip2Sequence.swift
[325/399] Compiling AsyncAlgorithms AsyncZip3Sequence.swift
[326/399] Compiling AsyncAlgorithms ZipStateMachine.swift
[327/399] Compiling AsyncAlgorithms ZipStorage.swift
[348/399] Emitting module SwiftSyntax
[384/399] Compiling SwiftSyntax SyntaxNodesD.swift
[385/399] Compiling SwiftSyntax SyntaxNodesEF.swift
[386/399] Compiling SwiftSyntax SyntaxNodesGHI.swift
[387/399] Compiling SwiftSyntax SyntaxNodesJKLMN.swift
[388/399] Compiling SwiftSyntax SyntaxNodesOP.swift
[389/399] Compiling SwiftSyntax SyntaxNodesQRS.swift
[390/399] Compiling SwiftSyntax SyntaxNodesTUVWXYZ.swift
[398/457] Compiling SwiftDiagnostics Message.swift
[399/458] Compiling SwiftDiagnostics Diagnostic.swift
[400/458] Compiling SwiftDiagnostics Convenience.swift
[401/458] Emitting module SwiftDiagnostics
[402/458] Compiling SwiftDiagnostics Note.swift
[403/458] Compiling SwiftBasicFormat SyntaxProtocol+Formatted.swift
[404/458] Compiling SwiftBasicFormat Trivia+FormatExtensions.swift
[405/458] Compiling SwiftBasicFormat Syntax+Extensions.swift
[406/458] Compiling SwiftDiagnostics GroupedDiagnostics.swift
[407/458] Compiling SwiftDiagnostics FixIt.swift
[408/458] Compiling SwiftDiagnostics BasicDiagnosticDecorator.swift
[409/458] Compiling SwiftDiagnostics DiagnosticDecorator.swift
[410/458] Compiling SwiftDiagnostics ANSIDiagnosticDecorator.swift
[411/458] Compiling SwiftDiagnostics DiagnosticsFormatter.swift
[412/458] Compiling SwiftBasicFormat InferIndentation.swift
[413/458] Compiling SwiftBasicFormat BasicFormat.swift
[414/458] Emitting module SwiftBasicFormat
[415/458] Compiling SwiftParser TopLevel.swift
[416/458] Compiling SwiftParser TriviaParser.swift
[417/458] Compiling SwiftParser Types.swift
[418/458] Compiling SwiftParser ExperimentalFeatures.swift
[419/462] Compiling SwiftParser StringLiterals.swift
[420/462] Compiling SwiftParser SwiftParserCompatibility.swift
[421/462] Compiling SwiftParser SwiftVersion.swift
[422/462] Compiling SwiftParser SyntaxUtils.swift
[423/462] Compiling SwiftParser TokenConsumer.swift
[424/462] Compiling SwiftParser TokenPrecedence.swift
[425/462] Compiling SwiftParser TokenSpec.swift
[426/462] Compiling SwiftParser TokenSpecSet.swift
[427/462] Compiling SwiftParser UnicodeScalarExtensions.swift
[428/462] Compiling SwiftParser Lookahead.swift
[429/462] Compiling SwiftParser LoopProgressCondition.swift
[430/462] Compiling SwiftParser Modifiers.swift
[431/462] Compiling SwiftParser Names.swift
[432/462] Compiling SwiftParser Recovery.swift
[433/462] Compiling SwiftParser Specifiers.swift
[434/462] Compiling SwiftParser Statements.swift
[435/462] Compiling SwiftParser StringLiteralRepresentedLiteralValue.swift
[436/462] Compiling SwiftParser Nominals.swift
[437/462] Compiling SwiftParser Parameters.swift
[438/462] Compiling SwiftParser ParseSourceFile.swift
[439/462] Compiling SwiftParser Parser.swift
[440/462] Compiling SwiftParser Patterns.swift
[441/462] Emitting module SwiftParser
[442/462] Compiling SwiftParser Directives.swift
[443/462] Compiling SwiftParser ExpressionInterpretedAsVersionTuple.swift
[444/462] Compiling SwiftParser Expressions.swift
[445/462] Compiling SwiftParser IncrementalParseTransition.swift
[446/462] Compiling SwiftParser IsValidIdentifier.swift
[447/462] Compiling SwiftParser Attributes.swift
[448/462] Compiling SwiftParser Availability.swift
[449/462] Compiling SwiftParser CharacterInfo.swift
[450/462] Compiling SwiftParser CollectionNodes+Parsable.swift
[451/462] Compiling SwiftParser Declarations.swift
[452/462] Compiling SwiftParser Cursor.swift
[453/462] Compiling SwiftParser Lexeme.swift
[454/462] Compiling SwiftParser LexemeSequence.swift
[455/462] Compiling SwiftParser Lexer.swift
[456/462] Compiling SwiftParser RegexLiteralLexer.swift
[457/462] Compiling SwiftParser IsLexerClassified.swift
[458/462] Compiling SwiftParser LayoutNodes+Parsable.swift
[459/462] Compiling SwiftParser Parser+TokenSpecSet.swift
[460/462] Compiling SwiftParser TokenSpecStaticMembers.swift
[461/485] Compiling SwiftParserDiagnostics SyntaxKindNameForDiagnostics.swift
[462/486] Compiling SwiftOperators PrecedenceGraph.swift
[463/487] Compiling SwiftOperators PrecedenceGroup.swift
[464/487] Compiling SwiftOperators OperatorTable.swift
[465/487] Compiling SwiftParserDiagnostics TokenNameForDiagnostics.swift
[466/487] Compiling SwiftOperators OperatorTable+Defaults.swift
[467/487] Compiling SwiftOperators OperatorTable+Semantics.swift
[468/487] Compiling SwiftOperators OperatorError.swift
[469/487] Compiling SwiftOperators OperatorError+Diagnostics.swift
[470/487] Compiling SwiftOperators Operator.swift
[471/487] Emitting module SwiftOperators
[472/487] Compiling SwiftOperators OperatorTable+Folding.swift
[473/487] Compiling SwiftOperators SyntaxSynthesis.swift
[474/487] Compiling SwiftParserDiagnostics SyntaxExtensions.swift
[475/487] Compiling SwiftParserDiagnostics PresenceUtils.swift
[476/487] Compiling SwiftParserDiagnostics ChildNameForDiagnostics.swift
[477/487] Compiling SwiftParserDiagnostics Utils.swift
[478/487] Compiling SwiftParserDiagnostics ParserDiagnosticMessages.swift
[479/487] Compiling SwiftParserDiagnostics MissingNodesError.swift
[480/487] Compiling SwiftParserDiagnostics MissingTokenError.swift
[481/487] Compiling SwiftParserDiagnostics DiagnosticExtensions.swift
[482/487] Compiling SwiftParserDiagnostics LexerDiagnosticMessages.swift
[483/487] Emitting module SwiftParserDiagnostics
[484/487] Compiling SwiftParserDiagnostics MultiLineStringLiteralDiagnosticsGenerator.swift
[485/487] Compiling SwiftParserDiagnostics ParseDiagnosticsGenerator.swift
[486/502] Compiling SwiftSyntaxBuilder ResultBuilders.swift
[487/502] Compiling SwiftSyntaxBuilder RenamedChildrenBuilderCompatibility.swift
[488/503] Compiling SwiftSyntaxBuilder SyntaxExpressibleByStringInterpolationConformances.swift
[489/503] Compiling SwiftSyntaxBuilder WithTrailingCommaSyntax+EnsuringTrailingComma.swift
[490/503] Compiling SwiftSyntaxBuilder Indenter.swift
[491/503] Compiling SwiftSyntaxBuilder ListBuilder.swift
[492/503] Compiling SwiftSyntaxBuilder BuildableNodes.swift
[493/503] Compiling SwiftSyntaxBuilder ResultBuilderExtensions.swift
[494/503] Compiling SwiftSyntaxBuilder SwiftSyntaxBuilderCompatibility.swift
[495/503] Emitting module SwiftSyntaxBuilder
[496/503] Compiling SwiftSyntaxBuilder ConvenienceInitializers.swift
[497/503] Compiling SwiftSyntaxBuilder DeclSyntaxParseable.swift
[498/503] Compiling SwiftSyntaxBuilder Syntax+StringInterpolation.swift
[499/503] Compiling SwiftSyntaxBuilder SyntaxNodeWithBody.swift
[500/503] Compiling SwiftSyntaxBuilder SyntaxParsable+ExpressibleByStringInterpolation.swift
[501/503] Compiling SwiftSyntaxBuilder ValidatingSyntaxNodes.swift
[502/521] Compiling SwiftSyntaxMacros Macro.swift
[503/521] Compiling SwiftSyntaxMacros MemberAttributeMacro.swift
[504/521] Compiling SwiftSyntaxMacros PreambleMacro.swift
[505/522] Compiling SwiftSyntaxMacros MemberMacro.swift
[506/522] Compiling SwiftSyntaxMacros PeerMacro.swift
[507/522] Compiling SwiftSyntaxMacros FreestandingMacro.swift
[508/522] Compiling SwiftSyntaxMacros Macro+Format.swift
[509/522] Compiling SwiftSyntaxMacros ExpressionMacro.swift
[510/522] Compiling SwiftSyntaxMacros ExtensionMacro.swift
[511/522] Compiling SwiftSyntaxMacros CodeItemMacro.swift
[512/522] Compiling SwiftSyntaxMacros DeclarationMacro.swift
[513/522] Compiling SwiftSyntaxMacros AttachedMacro.swift
[514/522] Compiling SwiftSyntaxMacros BodyMacro.swift
[515/522] Compiling SwiftSyntaxMacros MacroExpansionDiagnosticMessages.swift
[516/522] Compiling SwiftSyntaxMacros AccessorMacro.swift
[517/522] Compiling SwiftSyntaxMacros AbstractSourceLocation.swift
[518/522] Compiling SwiftSyntaxMacros MacroExpansionContext.swift
[519/522] Emitting module SwiftSyntaxMacros
[520/522] Compiling SwiftSyntaxMacros Syntax+LexicalContext.swift
[521/532] Compiling SwiftSyntaxMacroExpansion MacroReplacement.swift
[522/532] Compiling SwiftSyntaxMacroExpansion MacroArgument.swift
[523/532] Compiling SwiftSyntaxMacroExpansion BasicMacroExpansionContext.swift
[524/532] Emitting module SwiftSyntaxMacroExpansion
[525/532] Compiling SwiftSyntaxMacroExpansion MacroSpec.swift
[526/532] Compiling SwiftSyntaxMacroExpansion MacroExpansionDiagnosticMessages.swift
[527/532] Compiling SwiftSyntaxMacroExpansion MacroSystem.swift
[528/532] Compiling SwiftSyntaxMacroExpansion MacroExpansion.swift
[529/532] Compiling SwiftSyntaxMacroExpansion FunctionParameterUtils.swift
[530/532] Compiling SwiftSyntaxMacroExpansion IndentationUtils.swift
[531/544] Compiling SwiftCompilerPluginMessageHandling LRUCache.swift
[532/544] Emitting module SwiftCompilerPluginMessageHandling
[533/544] Compiling SwiftCompilerPluginMessageHandling CompilerPluginMessageHandler.swift
[534/544] Compiling SwiftCompilerPluginMessageHandling Diagnostics.swift
[535/544] Compiling SwiftCompilerPluginMessageHandling JSONDecoding.swift
[536/544] Compiling SwiftCompilerPluginMessageHandling CodingUtilities.swift
[537/544] Compiling SwiftCompilerPluginMessageHandling JSON.swift
[538/544] Compiling SwiftCompilerPluginMessageHandling PluginMessages.swift
[539/544] Compiling SwiftCompilerPluginMessageHandling JSONEncoding.swift
[540/544] Compiling SwiftCompilerPluginMessageHandling PluginMacroExpansionContext.swift
[541/544] Compiling SwiftCompilerPluginMessageHandling PluginMessageCompatibility.swift
[542/544] Compiling SwiftCompilerPluginMessageHandling Macros.swift
[543/545] Compiling SwiftCompilerPluginMessageHandling StandardIOMessageConnection.swift
[544/547] Compiling SwiftCompilerPlugin CompilerPlugin.swift
[545/547] Emitting module SwiftCompilerPlugin
[546/557] Compiling VexilMacros AttributeArgument.swift
[547/557] Compiling VexilMacros String+Snakecase.swift
[548/557] Compiling VexilMacros PatternBindingSyntax.swift
[549/557] Compiling VexilMacros Plugin.swift
[550/557] Compiling VexilMacros DisplayName.swift
[551/557] Compiling VexilMacros SimpleVariables.swift
[552/557] Compiling VexilMacros FlagMacro.swift
[553/557] Compiling VexilMacros FlagGroupMacro.swift
[554/557] Emitting module VexilMacros
[555/557] Compiling VexilMacros FlagContainerMacro.swift
[555/557] Write Objects.LinkFileList
[556/557] Linking VexilMacros-tool
[558/627] Compiling Vexil BoxedFlagValue+Codable.swift
[559/627] Compiling Vexil CollectionDifference.Change+Element.swift
[560/627] Compiling Vexil FlagChangeStream.swift
[561/630] Compiling Vexil FlagValueDictionary.swift
[562/630] Compiling Vexil FlagValueSource.swift
[563/630] Compiling Vexil FlagValueSourceCoordinator.swift
[564/630] Compiling Vexil NSUbiquitousKeyValueStore+FlagValueSource.swift
[565/630] Compiling Vexil Snapshot.swift
[566/630] Compiling Vexil SnapshotBuilder.swift
[567/630] Compiling Vexil BoxedFlagValue+NSObject.swift
[568/630] Compiling Vexil FlagValueDictionary+FlagValueSource.swift
[573/633] Compiling Vexil FlagWigwag.swift
[574/633] Compiling Vexil Observing.swift
[575/633] Compiling Vexil Pole+Observability.swift
[576/633] Compiling Vexil Pole.swift
[577/633] Compiling Vexil Configuration.swift
[578/633] Compiling Vexil Container.swift
[579/633] Compiling Vexil DisplayOptions.swift
[580/633] Compiling Vexil Flag.swift
[581/633] Compiling Vexil MutableFlagContainer.swift
[582/633] Compiling Vexil Snapshot+Extensions.swift
[583/633] Compiling Vexil Snapshot+FlagValueSource.swift
[584/633] Compiling Vexil Snapshot+Lookup.swift
[585/633] Compiling Vexil FlagDescriber.swift
[586/633] Compiling Vexil FlagRemover.swift
[587/633] Compiling Vexil FlagSetter.swift
[588/633] Compiling Vexil BoxedFlagValue+Codable.swift
[589/633] Compiling Vexil CollectionDifference.Change+Element.swift
[590/633] Compiling Vexil FlagChangeStream.swift
[599/633] Compiling Vexil Lock.swift
[600/633] Compiling Vexil Value.swift
[601/633] Compiling Vexil Visitor.swift
[602/633] Compiling Vexil FlagWigwag.swift
[606/633] Emitting module Vexil
[622/633] Compiling Vexil NonSendableFlagValueSource.swift
[623/633] Compiling Vexil UserDefaults+FlagValueSource.swift
[627/633] Compiling Vexil StreamManager.swift
[628/633] Compiling Vexil AsyncCurrentValue.swift
[634/654] Emitting module Vexillographer
[635/656] Compiling Vexillographer FlagPoleItemGroup.swift
[636/656] Compiling Vexillographer FlagPoleVisitor.swift
[637/656] Compiling Vexillographer FlagPoleContext.swift
[638/656] Compiling Vexillographer FlagPoleItem.swift
[639/656] Compiling Vexillographer FlagToggle.swift
[640/656] Compiling Vexillographer RowContent.swift
[641/656] Compiling Vexillographer FlagTextField+String.swift
[642/656] Compiling Vexillographer FlagTextField.swift
[643/656] Compiling Vexillographer FlagTextField+FloatingPoint.swift
[644/656] Compiling Vexillographer FlagTextField+Integer.swift
[645/656] Compiling Vexillographer FlagGroupItem.swift
[646/656] Compiling Vexillographer FlagItem.swift
[647/656] Compiling Vexillographer FlagControl.swift
[648/656] Compiling Vexillographer FlagControlConfiguration.swift
[649/656] Compiling Vexillographer FlagDetail.swift
[650/656] Compiling Vexillographer OptionalProtocol.swift
[651/656] Compiling Vexillographer Vexillographer.swift
[652/656] Compiling Vexillographer FlagPicker+Bool.swift
[653/656] Compiling Vexillographer FlagPicker+CaseIterable.swift
[654/656] Compiling Vexillographer FlagPicker.swift
[655/656] Compiling Vexillographer View+FlagControlStyle.swift
[656/656] Compiling Vexillographer View+FlagPole.swift
Build complete! (39.95s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-async-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-async-algorithms.git"
    },
    {
      "identity" : "swiftformat",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.60.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/nicklockwood/SwiftFormat.git"
    },
    {
      "identity" : "swift-syntax",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "600.0.0",
            "upper_bound" : "604.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swiftlang/swift-syntax.git"
    }
  ],
  "manifest_display_name" : "Vexil",
  "name" : "Vexil",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "Vexil",
      "targets" : [
        "Vexil"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Vexillographer",
      "targets" : [
        "Vexillographer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "VexilMacros",
      "targets" : [
        "VexilMacros"
      ],
      "type" : {
        "macro" : null
      }
    }
  ],
  "swift_languages_versions" : [
    "6"
  ],
  "targets" : [
    {
      "c99name" : "Vexillographer",
      "module_type" : "SwiftTarget",
      "name" : "Vexillographer",
      "path" : "Sources/Vexillographer",
      "product_memberships" : [
        "Vexillographer"
      ],
      "sources" : [
        "FlagControl/FlagControl.swift",
        "FlagControl/FlagControlConfiguration.swift",
        "FlagControl/FlagDetail.swift",
        "FlagControl/FlagPicker+Bool.swift",
        "FlagControl/FlagPicker+CaseIterable.swift",
        "FlagControl/FlagPicker.swift",
        "FlagControl/FlagTextField+FloatingPoint.swift",
        "FlagControl/FlagTextField+Integer.swift",
        "FlagControl/FlagTextField+String.swift",
        "FlagControl/FlagTextField.swift",
        "FlagControl/FlagToggle.swift",
        "FlagControl/RowContent.swift",
        "FlagPole/FlagGroupItem.swift",
        "FlagPole/FlagItem.swift",
        "FlagPole/FlagPoleContext.swift",
        "FlagPole/FlagPoleItem.swift",
        "FlagPole/FlagPoleItemGroup.swift",
        "FlagPole/FlagPoleVisitor.swift",
        "Utilities/OptionalProtocol.swift",
        "Vexillographer.swift",
        "View+FlagControlStyle.swift",
        "View+FlagPole.swift"
      ],
      "target_dependencies" : [
        "Vexil"
      ],
      "type" : "library"
    },
    {
      "c99name" : "VexilTests",
      "module_type" : "SwiftTarget",
      "name" : "VexilTests",
      "path" : "Tests/VexilTests",
      "sources" : [
        "BoxedFlagValueDecodingTests.swift",
        "BoxedFlagValueEncodingTests.swift",
        "EquatableTests.swift",
        "FlagDetailTests.swift",
        "FlagPoleTests.swift",
        "FlagValueBoxingTests.swift",
        "FlagValueCompilationTests.swift",
        "FlagValueDictionaryTests.swift",
        "FlagValueSourceTests.swift",
        "FlagValueUnboxingTests.swift",
        "KeyEncodingTests.swift",
        "PublisherTests.swift",
        "SnapshotTests.swift",
        "UserDefaultPublisherTests.swift",
        "UserDefaultsDecodingTests.swift",
        "UserDefaultsEncodingTests.swift",
        "Utilities/Tags.swift",
        "Utilities/TestRunner.swift",
        "VisitorTests.swift"
      ],
      "target_dependencies" : [
        "Vexil"
      ],
      "type" : "test"
    },
    {
      "c99name" : "VexilMacros",
      "module_type" : "SwiftTarget",
      "name" : "VexilMacros",
      "path" : "Sources/VexilMacros",
      "product_dependencies" : [
        "SwiftCompilerPlugin",
        "SwiftSyntax",
        "SwiftSyntaxBuilder",
        "SwiftSyntaxMacros"
      ],
      "product_memberships" : [
        "Vexil",
        "Vexillographer",
        "VexilMacros"
      ],
      "sources" : [
        "FlagContainerMacro.swift",
        "FlagGroupMacro.swift",
        "FlagMacro.swift",
        "Plugin.swift",
        "Utilities/AttributeArgument.swift",
        "Utilities/DisplayName.swift",
        "Utilities/PatternBindingSyntax.swift",
        "Utilities/SimpleVariables.swift",
        "Utilities/String+Snakecase.swift"
      ],
      "type" : "macro"
    },
    {
      "c99name" : "VexilMacroTests",
      "module_type" : "SwiftTarget",
      "name" : "VexilMacroTests",
      "path" : "Tests/VexilMacroTests",
      "product_dependencies" : [
        "SwiftSyntaxMacrosTestSupport"
      ],
      "sources" : [
        "EquatableFlagContainerMacroTests.swift",
        "FlagContainerMacroTests.swift",
        "FlagGroupMacroTests.swift",
        "FlagMacroTests.swift"
      ],
      "target_dependencies" : [
        "VexilMacros"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Vexil",
      "module_type" : "SwiftTarget",
      "name" : "Vexil",
      "path" : "Sources/Vexil",
      "product_dependencies" : [
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "Vexil",
        "Vexillographer"
      ],
      "sources" : [
        "Configuration.swift",
        "Container.swift",
        "DisplayOptions.swift",
        "Flag.swift",
        "Group.swift",
        "KeyPath.swift",
        "Lookup.swift",
        "Observability/FlagGroupWigwag.swift",
        "Observability/FlagWigwag.swift",
        "Observability/Observing.swift",
        "Pole+Observability.swift",
        "Pole.swift",
        "Snapshots/MutableFlagContainer.swift",
        "Snapshots/Snapshot+Extensions.swift",
        "Snapshots/Snapshot+FlagValueSource.swift",
        "Snapshots/Snapshot+Lookup.swift",
        "Snapshots/Snapshot.swift",
        "Snapshots/SnapshotBuilder.swift",
        "Sources/BoxedFlagValue+NSObject.swift",
        "Sources/FlagValueDictionary+FlagValueSource.swift",
        "Sources/FlagValueDictionary.swift",
        "Sources/FlagValueSource.swift",
        "Sources/FlagValueSourceCoordinator.swift",
        "Sources/NSUbiquitousKeyValueStore+FlagValueSource.swift",
        "Sources/NonSendableFlagValueSource.swift",
        "Sources/UserDefaults+FlagValueSource.swift",
        "StreamManager.swift",
        "Utilities/AsyncCurrentValue.swift",
        "Utilities/BoxedFlagValue+Codable.swift",
        "Utilities/CollectionDifference.Change+Element.swift",
        "Utilities/FlagChangeStream.swift",
        "Utilities/Lock.swift",
        "Value.swift",
        "Visitor.swift",
        "Visitors/FlagDescriber.swift",
        "Visitors/FlagRemover.swift",
        "Visitors/FlagSetter.swift"
      ],
      "target_dependencies" : [
        "VexilMacros"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.2"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/unsignedapps/vexil/v3.0.0-beta.2
Repository:               unsignedapps/Vexil
Swift version used:       6.3
Target:                   Vexil
Extracting symbol information for 'Vexil'...
Finished extracting symbol information for 'Vexil'. (41.54s)
Building documentation for 'Vexil'...
warning: External name 'at' used to document parameter
   --> ../Pole.swift:318:13-318:15
316 |     /// - Parameters:
317 |     ///   - snapshot:       The `Snapshot` to be inserted
318 +     ///   - at:             The index at which to insert the `Snapshot`.
    |             ╰─suggestion: Replace 'at' with 'index'
319 |     ///
320 |     public func insert(snapshot: Snapshot<RootGroup>, at index: Array<any FlagValueSource>.Index) {
warning: External name 'to' used to document parameter
   --> ../Pole.swift:376:13-376:15
374 |     /// - Parameters:
375 |     ///   - snapshot:           The `Snapshot` to save to the source. Only the values included in the snapshot will be saved.
376 +     ///   - to:                 The `FlagValueSource` to save the snapshot to.
    |             ╰─suggestion: Replace 'to' with 'source'
377 |     ///
378 |     public func save(snapshot: Snapshot<RootGroup>, to source: some FlagValueSource) throws {
warning: 'valuesDidChange(keys:)-7y64r' doesn't exist at '/Vexil/FlagValueSource'
  --> CustomSources.md:42:261-42:289
40 | ## Real-time flag value publishing
41 |
42 + If you're using the `Publisher`s provided by Vexil though, you'll want to make sure your custom source also notifies the ``FlagPole`` when it is changed. To do that there is a simple additional function in the protocol you need to implement: ``FlagValueSource/valuesDidChange(keys:)-7y64r``.
   |                                                                                                                                                                                                                                                                     ╰─suggestion: Replace 'valuesDidChange(keys:)-7y64r' with 'flagValueChanges(keyPathMapper:)'
43 |
44 | (At the time of writing this document, Combine is still not available on Linux, so we take care in our implementation. These conditional compilation steps are omitted from the examples for brevity.)
warning: 'FlagGroup' doesn't exist at '/Vexil/DefiningFlags'
 --> DefiningFlags.md:4:98-4:107
2 | # Defining Flags
3 |
4 + Defining Flags is the cornerstone of Vexil. Learn how to structure your ``FlagContainer``, use ``FlagGroup``s and ``Flag``s of various types.
  |                                                                                                  ╰─suggestion: Replace 'FlagGroup' with 'Flag-Groups'
5 |
6 | ## Overview
warning: 'Flag' doesn't exist at '/Vexil/DefiningFlags'
 --> DefiningFlags.md:4:117-4:121
2 | # Defining Flags
3 |
4 + Defining Flags is the cornerstone of Vexil. Learn how to structure your ``FlagContainer``, use ``FlagGroup``s and ``Flag``s of various types.
  |                                                                                                                     ├─suggestion: Replace 'Flag' with 'Flag-types'
  |                                                                                                                     ╰─suggestion: Replace 'Flag' with 'Flag-Groups'
5 |
6 | ## Overview
warning: 'FlagPoleDiagnostic' doesn't exist at '/Vexil/Diagnostics'
  --> Diagnostics.md:58:5-58:23
56 | ### Diagnostics
57 |
58 + - ``FlagPoleDiagnostic``
   |     ├─suggestion: Replace 'FlagPoleDiagnostic' with 'Diagnostics'
   |     ╰─suggestion: Replace 'FlagPoleDiagnostic' with 'Real-time-diagnostics'
59 | - ``FlagPole/makeDiagnostics()``
60 | - ``FlagPole/makeDiagnosticsPublisher()``
warning: 'makeDiagnostics()' doesn't exist at '/Vexil/FlagPole'
  --> Diagnostics.md:59:14-59:31
57 |
58 | - ``FlagPoleDiagnostic``
59 + - ``FlagPole/makeDiagnostics()``
60 | - ``FlagPole/makeDiagnosticsPublisher()``
61 | - ``Snapshot/makeDiagnostics()``
warning: 'makeDiagnosticsPublisher()' doesn't exist at '/Vexil/FlagPole'
  --> Diagnostics.md:60:14-60:40
58 | - ``FlagPoleDiagnostic``
59 | - ``FlagPole/makeDiagnostics()``
60 + - ``FlagPole/makeDiagnosticsPublisher()``
61 | - ``Snapshot/makeDiagnostics()``
warning: 'makeDiagnostics()' doesn't exist at '/Vexil/Snapshot'
  --> Diagnostics.md:61:14-61:31
59 | - ``FlagPole/makeDiagnostics()``
60 | - ``FlagPole/makeDiagnosticsPublisher()``
61 + - ``Snapshot/makeDiagnostics()``
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:9:129-9:138
7  | Lets be honest, any Feature Flag or Feature Toggle platform is just a glorified Key-Value store, and all Vexil does is map string-based keys into a strongly-typed hierarchy and provide a (hopefully) nice developer experience.
8  |
9  + It's very important then when working with different ``FlagValueSource``s that you know how Vexil maps the ``FlagContainer``, ``FlagGroup`` and ``Flag``s into something that can work with any key-value store.
   |                                                                                                                                 ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
   |                                                                                                                                 ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
10 |
11 | ## FlagPole Configuration
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:9:147-9:151
7  | Lets be honest, any Feature Flag or Feature Toggle platform is just a glorified Key-Value store, and all Vexil does is map string-based keys into a strongly-typed hierarchy and provide a (hopefully) nice developer experience.
8  |
9  + It's very important then when working with different ``FlagValueSource``s that you know how Vexil maps the ``FlagContainer``, ``FlagGroup`` and ``Flag``s into something that can work with any key-value store.
   |                                                                                                                                                   ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
10 |
11 | ## FlagPole Configuration
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:24:29-24:33
22 | Vexil supports a number of different strategies to encoding keys. The default approach is the `kebabcase` encoding with period (`.`) separators.
23 |
24 + You can find the key of a ``Flag`` at any time using its ``Flag/key`` property.
   |                             ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
25 |
26 | #### Kebab-case encoding
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:24:60-24:64
22 | Vexil supports a number of different strategies to encoding keys. The default approach is the `kebabcase` encoding with period (`.`) separators.
23 |
24 + You can find the key of a ``Flag`` at any time using its ``Flag/key`` property.
   |                                                            ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
25 |
26 | #### Kebab-case encoding
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:73:111-73:115
71 | ## Flag Key Overrides
72 |
73 + Sometimes though you want to override how a specific flag calculates its key. Vexil allows you to pass in a ``Flag/CodingKeyStrategy`` when you declare your ``Flag`` to alter how its key is calculated:
   |                                                                                                               ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
74 |
75 | ```swift
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:73:160-73:164
71 | ## Flag Key Overrides
72 |
73 + Sometimes though you want to override how a specific flag calculates its key. Vexil allows you to pass in a ``Flag/CodingKeyStrategy`` when you declare your ``Flag`` to alter how its key is calculated:
   |                                                                                                                                                                ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
74 |
75 | ```swift
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:86:84-86:88
84 | ### Custom Key
85 |
86 + You can also go for a manually specified key instead of a calculated one using a ``Flag/CodingKeyStrategy`` of `.customKey("my-key")`:
   |                                                                                    ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
87 |
88 | ```swift
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
  --> FlagKeys.md:97:278-97:282
95 | ### Custom Key Path
96 |
97 + But sometimes your ``FlagValueSource`` doesn't play nice, or the people naming flags in the backend don't provide the same structure that you want your local flags to be in. You can instead set a manual key path. In this case the ``FlagPole`` will ignore the location of the ``Flag`` in the flag structure and will just use the key you specify.
   |                                                                                                                                                                                                                                                                                      ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
98 |
99 | ```swift
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:108:11-108:20
106 | ## FlagGroup Overrides
107 |
108 + While a ``FlagGroup`` doesn't have an explicit key of its own, it does form part of the calculated key. For example, if we declared our `MyFlags` structure as:
    |           ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |           ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
109 |
110 | ```swift
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:121:20-121:24
119 | Then `"subgroup"` would form the first part of the key as calculated in the examples above.
120 |
121 + Similarly to the ``Flag``s, we can customise the calculation of the ``FlagGroup``s key by passing in a custom ``FlagGroup/CodingKeyStrategy``.
    |                    ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
122 |
123 | ``FlagGroup/CodingKeyStrategy`` supports most of the same basic options as the ``Flag`` above (eg, `.kebabcase`, `.snakecase`, and `.customKey(String)`), but it does not support a `.customKeyPath(String)`, because it does not have its own key calculated.
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:121:71-121:80
119 | Then `"subgroup"` would form the first part of the key as calculated in the examples above.
120 |
121 + Similarly to the ``Flag``s, we can customise the calculation of the ``FlagGroup``s key by passing in a custom ``FlagGroup/CodingKeyStrategy``.
    |                                                                       ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |                                                                       ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
122 |
123 | ``FlagGroup/CodingKeyStrategy`` supports most of the same basic options as the ``Flag`` above (eg, `.kebabcase`, `.snakecase`, and `.customKey(String)`), but it does not support a `.customKeyPath(String)`, because it does not have its own key calculated.
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:121:113-121:122
119 | Then `"subgroup"` would form the first part of the key as calculated in the examples above.
120 |
121 + Similarly to the ``Flag``s, we can customise the calculation of the ``FlagGroup``s key by passing in a custom ``FlagGroup/CodingKeyStrategy``.
    |                                                                                                                 ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |                                                                                                                 ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
122 |
123 | ``FlagGroup/CodingKeyStrategy`` supports most of the same basic options as the ``Flag`` above (eg, `.kebabcase`, `.snakecase`, and `.customKey(String)`), but it does not support a `.customKeyPath(String)`, because it does not have its own key calculated.
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:123:3-123:12
121 | Similarly to the ``Flag``s, we can customise the calculation of the ``FlagGroup``s key by passing in a custom ``FlagGroup/CodingKeyStrategy``.
122 |
123 + ``FlagGroup/CodingKeyStrategy`` supports most of the same basic options as the ``Flag`` above (eg, `.kebabcase`, `.snakecase`, and `.customKey(String)`), but it does not support a `.customKeyPath(String)`, because it does not have its own key calculated.
    |   ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |   ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
124 |
125 | ### Skipping FlagGroups
warning: 'Flag' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:123:82-123:86
121 | Similarly to the ``Flag``s, we can customise the calculation of the ``FlagGroup``s key by passing in a custom ``FlagGroup/CodingKeyStrategy``.
122 |
123 + ``FlagGroup/CodingKeyStrategy`` supports most of the same basic options as the ``Flag`` above (eg, `.kebabcase`, `.snakecase`, and `.customKey(String)`), but it does not support a `.customKeyPath(String)`, because it does not have its own key calculated.
    |                                                                                  ╰─suggestion: Replace 'Flag' with 'Flag-Key-Overrides'
124 |
125 | ### Skipping FlagGroups
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:127:33-127:42
125 | ### Skipping FlagGroups
126 |
127 + It does support an additional ``FlagGroup/CodingKeyStrategy`` though: `.skip`. Which will ignore that ``FlagGroup``s key in the calculation:
    |                                 ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |                                 ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
128 |
129 | ```swift
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagKeys'
   --> FlagKeys.md:127:105-127:114
125 | ### Skipping FlagGroups
126 |
127 + It does support an additional ``FlagGroup/CodingKeyStrategy`` though: `.skip`. Which will ignore that ``FlagGroup``s key in the calculation:
    |                                                                                                         ├─suggestion: Replace 'FlagGroup' with 'FlagGroup-Overrides'
    |                                                                                                         ╰─suggestion: Replace 'FlagGroup' with 'Skipping-FlagGroups'
128 |
129 | ```swift
warning: 'Flag' doesn't exist at '/Vexil/FlagPublishing'
  --> FlagPublishing.md:46:33-46:37
44 | ```
45 |
46 + **Note:** If the type of your ``Flag`` also conforms to `Equatable`, the flag-specific publisher will emit the value only when it has changed (using `removeDuplicates()`). If your ``Flag`` does not conform to `Equatable` it will be unable to remove the duplicates and emit every time the ``FlagPole`` changes.
warning: 'Flag' doesn't exist at '/Vexil/FlagPublishing'
  --> FlagPublishing.md:46:183-46:187
44 | ```
45 |
46 + **Note:** If the type of your ``Flag`` also conforms to `Equatable`, the flag-specific publisher will emit the value only when it has changed (using `removeDuplicates()`). If your ``Flag`` does not conform to `Equatable` it will be unable to remove the duplicates and emit every time the ``FlagPole`` changes.
warning: 'Flag' doesn't exist at '/Vexil/Snapshots'
  --> Snapshots.md:55:180-55:184
53 | ### Empty snapshots
54 |
55 + When taking an empty snapshot, its internal dictionary is also empty, and the request for the Flag's value (when used as a ``FlagValueSource``) will be `nil`. If you access the ``Flag/wrappedValue`` property directly (eg. `flagPole.subgroup.myBooleanFlag`) it will return the flag's **default value**.
56 |
57 | Empty snapshots are typically used for mutating the ``FlagPole`` or a ``FlagValueSource``.
warning: 'Sources' is ambiguous at '/Vexil'
  --> Snapshots.md:81:69-81:76
79 | You can also take a snapshot of the current state of a ``FlagValueSource``. This is a great way to export flag values out of a source and into another. In fact the ``FlagPole/copyFlagValues(from:to:)`` method uses this to copy flag values from one ``FlagValueSource`` to another.
80 |
81 + Your ``FlagValueSource`` doesn't even need to be a part of the [flag hierarchy](<doc:Sources>).
   |                                                                            ├─suggestion: Insert '-article' for 'Flag Hierarchy'
   |                                                                            ╰─suggestion: Insert '-anchor' for 'Sources'
82 |
83 | ```swift
warning: 'Snapshots' is ambiguous at '/Vexil'
  --> Vexil.md:80:24-80:33
78 | ```
79 |
80 + For more info see <doc:Snapshots>.
   |                                 ├─suggestion: Insert '-anchor' for 'Snapshots'
   |                                 ╰─suggestion: Insert '-article' for 'Snapshots'
81 |
82 | ## Flag Value Sources
warning: 'Snapshots' is ambiguous at '/Vexil'
   --> Vexil.md:102:38-102:47
100 | Snapshots are implemented as a ``FlagValueSource``, so you can easily apply multiple snapshots in a prioritised order.
101 |
102 + Snapshots can do a lot. See our [Snapshots Guide](<doc:Snapshots>) for more.
    |                                               ├─suggestion: Insert '-anchor' for 'Snapshots'
    |                                               ╰─suggestion: Insert '-article' for 'Snapshots'
103 |
104 | ## Creating snapshots
warning: 'Sources' is ambiguous at '/Vexil'
   --> Vexil.md:144:8-144:15
142 | - ``VexilConfiguration``
143 | - <doc:Migration2-3>
144 + - <doc:Sources>
    |               ├─suggestion: Insert '-article' for 'Flag Hierarchy'
    |               ╰─suggestion: Insert '-anchor' for 'Sources'
145 | - <doc:FlagPublishing>
146 | - <doc:FlagKeys>
warning: 'Snapshots' is ambiguous at '/Vexil'
   --> Vexil.md:163:8-163:17
161 | ### Snapshots
162 |
163 + - <doc:Snapshots>
    |                 ├─suggestion: Insert '-anchor' for 'Snapshots'
    |                 ╰─suggestion: Insert '-article' for 'Snapshots'
164 | - ``Snapshot``
165 | - ``MutableFlagContainer``
warning: 'beginContainer(keyPath:container:)' doesn't exist at '/Vexil/FlagVisitor'
  --> ../Visitor.swift:21:76-21:110
19 | /// Walking always starts at a Container, and then walks the children of that container.
20 | /// When one of the children is a group, a call to ``beginGroup(keyPath:wigwag:)`` is made before
21 + /// descending into the group's container. That container will then call ``beginContainer(keyPath:container:)``
   |                                                                            ╰─suggestion: Replace 'beginContainer(keyPath:container:)' with 'beginContainer(keyPath:containerType:)'
22 | /// itself. You can use this to differentiate between the operations you are looking for.
23 | ///
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagVisitor/beginGroup(keyPath:wigwag:)'
  --> ../Visitor.swift:86:51-86:60
84 |     func endContainer(keyPath: FlagKeyPath)
85 |
86 +     /// Called when about to descend into a new ``FlagGroup``
87 |     func beginGroup(keyPath: FlagKeyPath, wigwag: () -> FlagGroupWigwag<some FlagContainer>)
88 |
warning: 'FlagGroup' doesn't exist at '/Vexil/FlagVisitor/endGroup(keyPath:)'
  --> ../Visitor.swift:89:43-89:52
87 |     func beginGroup(keyPath: FlagKeyPath, wigwag: () -> FlagGroupWigwag<some FlagContainer>)
88 |
89 +     /// Called when finished visiting a ``FlagGroup``
90 |     func endGroup(keyPath: FlagKeyPath)
91 |
Finished building documentation for 'Vexil' (1.06s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/unsignedapps/vexil/v3.0.0-beta.2
Fetching https://github.com/swiftlang/swift-docc-plugin
Updating https://github.com/swiftlang/swift-syntax.git
[1/2271] Fetching swift-docc-plugin
Updated https://github.com/swiftlang/swift-syntax.git (0.91s)
Updating https://github.com/nicklockwood/SwiftFormat.git
Updating https://github.com/apple/swift-collections.git
Updating https://github.com/apple/swift-async-algorithms.git
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.24s)
Updated https://github.com/nicklockwood/SwiftFormat.git (0.64s)
Updated https://github.com/apple/swift-async-algorithms.git (0.64s)
Updated https://github.com/apple/swift-collections.git (0.64s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 600.0.1 (2.61s)
Computing version for https://github.com/nicklockwood/SwiftFormat.git
Computed https://github.com/nicklockwood/SwiftFormat.git at 0.60.1 (0.63s)
Computing version for https://github.com/apple/swift-async-algorithms.git
Computed https://github.com/apple/swift-async-algorithms.git at 1.0.4 (0.59s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.2.1 (0.61s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.6 (0.62s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3672] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.09s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.79s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.6
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[3/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version--6988338F2F200930.txt
[6/53] Compiling SymbolKit Names.swift
[7/53] Compiling SymbolKit SPI.swift
[8/53] Compiling SymbolKit Snippet.swift
[9/53] Compiling SymbolKit Extension.swift
[10/57] Compiling SymbolKit Mixin+Equals.swift
[11/57] Compiling SymbolKit Mixin+Hash.swift
[12/57] Compiling SymbolKit Mixin.swift
[13/57] Compiling SymbolKit LineList.swift
[14/57] Compiling SymbolKit Position.swift
[15/57] Emitting module SymbolKit
[16/57] Compiling SymbolKit Identifier.swift
[17/57] Compiling SymbolKit KindIdentifier.swift
[18/57] Compiling SymbolKit Location.swift
[19/57] Compiling SymbolKit Mutability.swift
[20/57] Compiling SymbolKit DeclarationFragments.swift
[21/57] Compiling SymbolKit Fragment.swift
[22/57] Compiling SymbolKit FragmentKind.swift
[23/57] Compiling SymbolKit FunctionParameter.swift
[24/57] Compiling SymbolKit FunctionSignature.swift
[25/57] Compiling SymbolKit Symbol.swift
[26/57] Compiling SymbolKit SymbolKind.swift
[27/57] Compiling SymbolKit SymbolGraph.swift
[28/57] Compiling SymbolKit GraphCollector.swift
[29/57] Compiling SymbolKit GenericConstraint.swift
[30/57] Compiling SymbolKit GenericParameter.swift
[31/57] Compiling SymbolKit Generics.swift
[32/57] Compiling SymbolKit Namespace.swift
[33/57] Compiling SymbolKit SourceRange.swift
[34/57] Compiling SymbolKit Metadata.swift
[35/57] Compiling SymbolKit Module.swift
[36/57] Compiling SymbolKit OperatingSystem.swift
[37/57] Compiling SymbolKit Platform.swift
[38/57] Compiling SymbolKit SemanticVersion.swift
[39/57] Compiling SymbolKit AccessControl.swift
[40/57] Compiling SymbolKit Availability.swift
[41/57] Compiling SymbolKit AvailabilityItem.swift
[42/57] Compiling SymbolKit Domain.swift
[43/57] Compiling SymbolKit Relationship.swift
[44/57] Compiling SymbolKit RelationshipKind.swift
[45/57] Compiling SymbolKit SourceOrigin.swift
[46/57] Compiling SymbolKit GenericConstraints.swift
[47/57] Compiling SymbolKit Swift.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets SnippetParser.swift
[53/57] Emitting module Snippets
[54/57] Compiling Snippets Snippet.swift
[55/61] Compiling snippet_extract SnippetBuildCommand.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (3.58s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'Vexil' complete! (0.84s)
Target:                   Vexillographer
Extracting symbol information for 'Vexillographer'...
Finished extracting symbol information for 'Vexillographer'. (4.27s)
Building documentation for 'Vexillographer'...
Finished building documentation for 'Vexillographer' (2.47s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/unsignedapps/vexil/v3.0.0-beta.2
Building for debugging...
[0/3] Write swift-version--6988338F2F200930.txt
Build of product 'snippet-extract' complete! (0.68s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'Vexillographer' complete! (0.77s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/unsignedapps/vexil/v3.0.0-beta.2/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/unsignedapps/vexil/v3.0.0-beta.2/linkable-paths.json
   10220
67	/Users/admin/builder/spi-builder-workspace/.docs/unsignedapps/vexil/v3.0.0-beta.2
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/unsignedapps/vexil/v3.0.0-beta.2
File count: 10220
Doc size:   67.0MB
Preparing doc bundle ...
Uploading prod-unsignedapps-vexil-v3.0.0-beta.2-8397bdb4.zip to s3://spi-docs-inbox/prod-unsignedapps-vexil-v3.0.0-beta.2-8397bdb4.zip
Copying... [10%]
Copying... [20%]
Copying... [30%]
Copying... [40%]
Copying... [50%]
Copying... [60%]
Copying... [70%]
Copying... [80%]
Copying... [90%]
Copying... [100%]
Done.