The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of L10nLint, reference main (c6d57a), with Swift 6.2 (beta) for Android on 4 Sep 2025 11:22:49 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/s2mr/L10nLint.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/s2mr/L10nLint
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at c6d57ab Bump version to 0.5.1
Cloned https://github.com/s2mr/L10nLint.git
Revision (git rev-parse @):
c6d57ab83860f9c88a48110f419241a5661ed8b3
SUCCESS checkout https://github.com/s2mr/L10nLint.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/s2mr/L10nLint.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:b7c4a6b4153ff40ef9277e2157e708f835b8eb011095d53bd8db4594eb2b7798
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Fetching https://github.com/jpsim/Yams.git
Fetching https://github.com/apple/swift-argument-parser
[1/11136] Fetching yams
[892/26828] Fetching yams, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (1.43s)
[6905/11136] Fetching yams
Fetched https://github.com/jpsim/Yams.git from cache (2.25s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 5.4.0 (5.17s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.39s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.1
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 5.4.0
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/21] Write sources
[7/21] Write swift-version-8C5A4AE7A8CE2BA.txt
[8/21] Compiling reader.c
[9/21] Compiling writer.c
[10/22] Compiling parser.c
[11/23] Compiling api.c
[12/23] Compiling emitter.c
[14/23] Emitting module ArgumentParserToolInfo
[14/23] Compiling scanner.c
[16/43] Emitting module Yams
[17/45] Compiling Yams Tag.swift
[18/45] Compiling Yams YamlAnchorProviding.swift
[19/45] Compiling ArgumentParserToolInfo ToolInfo.swift
[20/46] Wrapping AST for ArgumentParserToolInfo for debugging
[22/90] Compiling ArgumentParser InputKey.swift
[23/90] Compiling ArgumentParser InputOrigin.swift
[24/90] Compiling ArgumentParser BashCompletionsGenerator.swift
[25/90] Compiling ArgumentParser CompletionsGenerator.swift
[26/90] Compiling ArgumentParser FishCompletionsGenerator.swift
[27/90] Compiling ArgumentParser ArgumentSet.swift
[28/90] Compiling ArgumentParser CommandParser.swift
[29/90] Compiling ArgumentParser ArgumentVisibility.swift
[30/90] Compiling ArgumentParser ArgumentHelp.swift
[31/90] Compiling ArgumentParser ParsableArguments.swift
[32/90] Compiling ArgumentParser Flag.swift
[33/90] Compiling ArgumentParser NameSpecification.swift
[34/90] Compiling ArgumentParser Option.swift
[35/90] Compiling ArgumentParser ParsableCommand.swift
[36/90] Compiling ArgumentParser ArgumentDecoder.swift
[37/90] Compiling ArgumentParser ArgumentDefinition.swift
[38/90] Compiling ArgumentParser ZshCompletionsGenerator.swift
[39/90] Compiling ArgumentParser Argument.swift
[40/90] Compiling ArgumentParser ArgumentDiscussion.swift
[41/91] Wrapping AST for Yams for debugging
[43/139] Compiling L10nLintFramework DuplicateKeyRule.swift
[44/139] Compiling L10nLintFramework EmptyKeyRule.swift
[45/139] Compiling L10nLintFramework EmptyValueRule.swift
[46/139] Compiling L10nLintFramework MixedChineseRule+SimplifiedCharacters.swift
[47/139] Compiling L10nLintFramework MixedChineseRule+TraditionalCharacters.swift
[48/139] Compiling L10nLintFramework IntegerFormatSpecifierRule.swift
[49/145] Emitting module L10nLintFramework
[50/145] Compiling L10nLintFramework StyleViolation.swift
[51/145] Compiling L10nLintFramework SwiftLint-LICENSE.swift
[52/145] Compiling L10nLintFramework ViolationSeverity.swift
[53/145] Compiling L10nLintFramework XCFileListGenerator.swift
[54/145] Compiling L10nLintFramework JsonReporter.swift
[55/145] Compiling L10nLintFramework Reporter.swift
[56/145] Compiling L10nLintFramework XcodeReporter.swift
[57/145] Emitting module ArgumentParser
[58/151] Compiling L10nLintFramework Collection+Utility.swift
[59/151] Compiling L10nLintFramework NSRegularExpression+Utility.swift
[60/151] Compiling L10nLintFramework QueuedPrint.swift
[61/151] Compiling L10nLintFramework CodeCopier.swift
[62/151] Compiling L10nLintFramework Configuration.swift
[63/151] Compiling L10nLintFramework CopyMarker.swift
[64/151] Compiling L10nLintFramework CopyMarkerDetector.swift
[65/151] Compiling ArgumentParser PositionalArgumentsValidator.swift
[66/151] Compiling ArgumentParser UniqueNamesValidator.swift
[67/151] Compiling L10nLintFramework TodoRuleConfiguration.swift
[68/151] Compiling L10nLintFramework SpaceInKeyRule.swift
[69/151] Compiling L10nLintFramework TodoRule.swift
[70/151] Compiling L10nLintFramework ConfigurationProviderRule.swift
[77/151] Compiling L10nLintFramework MessageError.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[78/151] Compiling L10nLintFramework ProjectGenerator.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[79/151] Compiling L10nLintFramework Rule.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[80/151] Compiling L10nLintFramework RuleDescription.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[81/151] Compiling L10nLintFramework RulesFilter.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[82/151] Compiling L10nLintFramework RulesVerifier.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[83/151] Compiling L10nLintFramework ByteCount.swift
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:49:51: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
47 |     public func markerRemovedContent(baseProject: LocalizedProject) -> String {
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                   `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
51 |         return mutableString as String
/host/spi-builder-workspace/Sources/L10nLintFramework/Models/ProjectGenerator.swift:50:49: warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
48 |         let mutableString = NSMutableString(string: baseProject.stringsFile.contents)
49 |         CopyMarkerDetector.Const.startMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
50 |         CopyMarkerDetector.Const.endMarkerRegex.replaceMatches(in: mutableString, range: NSRange(location: 0, length: mutableString.length), withTemplate: "")
   |                                                 `- warning: result of call to 'replaceMatches(in:options:range:withTemplate:)' is unused [#no-usage]
51 |         return mutableString as String
52 |     }
[84/151] Compiling L10nLintFramework KeyOrderRule.swift
[85/151] Compiling L10nLintFramework KeyValueExtraSpaceRule.swift
[86/151] Compiling L10nLintFramework KeyValueFormatSpecifierCountRule.swift
[87/151] Compiling L10nLintFramework MarkSyntaxRule.swift
[88/151] Compiling L10nLintFramework MixedChineseRule.swift
[89/151] Compiling L10nLintFramework MultilineFeedRule.swift
[90/151] Compiling L10nLintFramework ByteRange.swift
[91/151] Compiling L10nLintFramework File.swift
[92/151] Compiling L10nLintFramework Line.swift
[93/151] Compiling L10nLintFramework Location.swift
[94/151] Compiling L10nLintFramework SourceKitten-LICENSE.swift
[95/151] Compiling L10nLintFramework SourceLocation.swift
[96/151] Compiling L10nLintFramework StringView.swift
[97/151] Compiling L10nLintFramework EmbeddedRules.swift
[98/151] Compiling L10nLintFramework FileRewriter.swift
[99/151] Compiling L10nLintFramework FormattedRules.swift
[100/151] Compiling L10nLintFramework LintRunner.swift
[101/151] Compiling L10nLintFramework Linter.swift
[102/151] Compiling L10nLintFramework LocalizationFile.swift
[103/151] Compiling L10nLintFramework LocalizedProjectFactory.swift
[104/152] Wrapping AST for L10nLintFramework for debugging
[112/152] Compiling ArgumentParser Tree.swift
[113/152] Compiling ArgumentParser CodingKeyValidator.swift
[114/152] Compiling ArgumentParser NonsenseFlagsValidator.swift
[115/152] Compiling ArgumentParser ParsableArgumentsValidation.swift
[149/153] Wrapping AST for ArgumentParser for debugging
[151/161] Compiling l10nlint Version.swift
[152/161] Compiling l10nlint Rules.swift
[153/161] Compiling l10nlint MainTool.swift
/host/spi-builder-workspace/Sources/l10nlint/Commands/MainTool.swift:9:33: warning: result of call to 'changeCurrentDirectoryPath' is unused [#no-usage]
 7 |     static let configuration: CommandConfiguration = {
 8 |         if let directory = ProcessInfo.processInfo.environment["BUILD_WORKSPACE_DIRECTORY"] {
 9 |             FileManager.default.changeCurrentDirectoryPath(directory)
   |                                 `- warning: result of call to 'changeCurrentDirectoryPath' is unused [#no-usage]
10 |         }
11 |
[154/161] Compiling l10nlint GenerateXCFileList.swift
[155/161] Compiling l10nlint Copy.swift
[156/161] Compiling l10nlint DefaultArguments.swift
[157/161] Emitting module l10nlint
/host/spi-builder-workspace/Sources/l10nlint/Commands/MainTool.swift:9:33: warning: result of call to 'changeCurrentDirectoryPath' is unused [#no-usage]
 7 |     static let configuration: CommandConfiguration = {
 8 |         if let directory = ProcessInfo.processInfo.environment["BUILD_WORKSPACE_DIRECTORY"] {
 9 |             FileManager.default.changeCurrentDirectoryPath(directory)
   |                                 `- warning: result of call to 'changeCurrentDirectoryPath' is unused [#no-usage]
10 |         }
11 |
[158/161] Compiling l10nlint Lint.swift
[159/162] Wrapping AST for l10nlint for debugging
[160/162] Write Objects.LinkFileList
[161/162] Linking l10nlint
Build complete! (31.14s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.6.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "yams",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "5.4.0",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/jpsim/Yams.git"
    }
  ],
  "manifest_display_name" : "L10nLint",
  "name" : "L10nLint",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "l10nlint",
      "targets" : [
        "l10nlint"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "l10nlint",
      "module_type" : "SwiftTarget",
      "name" : "l10nlint",
      "path" : "Sources/l10nlint",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "l10nlint"
      ],
      "sources" : [
        "Arguments/DefaultArguments.swift",
        "Commands/Copy.swift",
        "Commands/GenerateXCFileList.swift",
        "Commands/Lint.swift",
        "Commands/MainTool.swift",
        "Commands/Rules.swift",
        "Generated/Version.swift"
      ],
      "target_dependencies" : [
        "L10nLintFramework"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "L10nLintFrameworkTests",
      "module_type" : "SwiftTarget",
      "name" : "L10nLintFrameworkTests",
      "path" : "Tests/L10nLintFrameworkTests",
      "sources" : [
        "CodeCopierTests.swift",
        "ConfigurationTests.swift",
        "CopyMarkerDetectorTests.swift",
        "LintRunnerTests.swift",
        "ProjectGeneratorTests.swift",
        "RulesTests.swift",
        "RulesVerifierTests.swift",
        "TestHelper.swift",
        "XCFileListExporterTests.swift"
      ],
      "target_dependencies" : [
        "L10nLintFramework"
      ],
      "type" : "test"
    },
    {
      "c99name" : "L10nLintFramework",
      "module_type" : "SwiftTarget",
      "name" : "L10nLintFramework",
      "path" : "Sources/L10nLintFramework",
      "product_dependencies" : [
        "Yams"
      ],
      "product_memberships" : [
        "l10nlint"
      ],
      "sources" : [
        "Extensions/Collection+Utility.swift",
        "Extensions/NSRegularExpression+Utility.swift",
        "Extensions/QueuedPrint.swift",
        "Models/CodeCopier.swift",
        "Models/Configuration.swift",
        "Models/CopyMarker.swift",
        "Models/CopyMarkerDetector.swift",
        "Models/EmbeddedRules.swift",
        "Models/FileRewriter.swift",
        "Models/FormattedRules.swift",
        "Models/LintRunner.swift",
        "Models/Linter.swift",
        "Models/LocalizationFile.swift",
        "Models/LocalizedProjectFactory.swift",
        "Models/MessageError.swift",
        "Models/ProjectGenerator.swift",
        "Models/Rule.swift",
        "Models/RuleDescription.swift",
        "Models/RulesFilter.swift",
        "Models/RulesVerifier.swift",
        "Models/SourceKitten/ByteCount.swift",
        "Models/SourceKitten/ByteRange.swift",
        "Models/SourceKitten/File.swift",
        "Models/SourceKitten/Line.swift",
        "Models/SourceKitten/Location.swift",
        "Models/SourceKitten/SourceKitten-LICENSE.swift",
        "Models/SourceKitten/SourceLocation.swift",
        "Models/SourceKitten/StringView.swift",
        "Models/SwiftLint/StyleViolation.swift",
        "Models/SwiftLint/SwiftLint-LICENSE.swift",
        "Models/SwiftLint/ViolationSeverity.swift",
        "Models/XCFileListGenerator.swift",
        "Reporter/JsonReporter.swift",
        "Reporter/Reporter.swift",
        "Reporter/XcodeReporter.swift",
        "Rules/DuplicateKeyRule.swift",
        "Rules/EmptyKeyRule.swift",
        "Rules/EmptyValueRule.swift",
        "Rules/Extensions/MixedChineseRule+SimplifiedCharacters.swift",
        "Rules/Extensions/MixedChineseRule+TraditionalCharacters.swift",
        "Rules/IntegerFormatSpecifierRule.swift",
        "Rules/KeyOrderRule.swift",
        "Rules/KeyValueExtraSpaceRule.swift",
        "Rules/KeyValueFormatSpecifierCountRule.swift",
        "Rules/MarkSyntaxRule.swift",
        "Rules/MixedChineseRule.swift",
        "Rules/MultilineFeedRule.swift",
        "Rules/RuleConfigurations/RuleConfigurationProtocol.swift",
        "Rules/RuleConfigurations/RuleConfigurations.swift",
        "Rules/RuleConfigurations/TodoRuleConfiguration.swift",
        "Rules/SpaceInKeyRule.swift",
        "Rules/TodoRule.swift",
        "Rules/Utility/ConfigurationProviderRule.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.1"
}
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:b7c4a6b4153ff40ef9277e2157e708f835b8eb011095d53bd8db4594eb2b7798
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Done.