The Swift Package Index logo.Swift Package Index

Build Information

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

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/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: 0.5.1
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
 * tag               0.5.1      -> FETCH_HEAD
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 0.5.1
========================================
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-1":/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/apple/swift-argument-parser
Fetching https://github.com/jpsim/Yams.git
[1/11136] Fetching yams
[2340/26828] Fetching yams, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (1.05s)
[9355/11136] Fetching yams
Fetched https://github.com/jpsim/Yams.git from cache (2.57s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 5.4.0 (4.81s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.41s)
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] Compiling writer.c
[8/21] Write swift-version-8C5A4AE7A8CE2BA.txt
[9/21] Compiling reader.c
[10/23] Compiling api.c
[11/23] Compiling parser.c
[12/23] Compiling emitter.c
[13/23] Compiling scanner.c
[15/43] Compiling Yams Tag.swift
[16/43] Compiling Yams YamlAnchorProviding.swift
[17/45] Emitting module Yams
[18/45] Emitting module ArgumentParserToolInfo
[19/45] Compiling ArgumentParserToolInfo ToolInfo.swift
[20/46] Wrapping AST for ArgumentParserToolInfo for debugging
[22/90] Compiling ArgumentParser Errors.swift
[23/90] Compiling ArgumentParser Flag.swift
[24/90] Compiling ArgumentParser ParsableArguments.swift
[25/90] Compiling ArgumentParser ParsableCommand.swift
[26/90] Compiling ArgumentParser BashCompletionsGenerator.swift
[27/90] Compiling ArgumentParser CompletionsGenerator.swift
[28/90] Compiling ArgumentParser FishCompletionsGenerator.swift
[29/90] Compiling ArgumentParser ArgumentHelp.swift
[30/90] Compiling ArgumentParser OptionGroup.swift
[31/90] Compiling ArgumentParser AsyncParsableCommand.swift
[32/90] Compiling ArgumentParser CommandConfiguration.swift
[33/90] Compiling ArgumentParser CommandGroup.swift
[34/90] Compiling ArgumentParser EnumerableFlag.swift
[35/90] Compiling ArgumentParser ExpressibleByArgument.swift
[36/90] Compiling ArgumentParser ArgumentVisibility.swift
[37/90] Compiling ArgumentParser CompletionKind.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] Emitting module L10nLintFramework
[44/145] Compiling L10nLintFramework DuplicateKeyRule.swift
[45/145] Compiling L10nLintFramework EmptyKeyRule.swift
[46/145] Compiling L10nLintFramework EmptyValueRule.swift
[47/145] Compiling L10nLintFramework MixedChineseRule+SimplifiedCharacters.swift
[48/145] Compiling L10nLintFramework MixedChineseRule+TraditionalCharacters.swift
[49/145] Compiling L10nLintFramework IntegerFormatSpecifierRule.swift
[50/145] Compiling L10nLintFramework KeyOrderRule.swift
[51/145] Compiling L10nLintFramework KeyValueExtraSpaceRule.swift
[52/145] Compiling L10nLintFramework KeyValueFormatSpecifierCountRule.swift
[53/145] Compiling L10nLintFramework MarkSyntaxRule.swift
[54/145] Compiling L10nLintFramework MixedChineseRule.swift
[55/145] Compiling L10nLintFramework MultilineFeedRule.swift
[56/145] 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 |     }
[57/145] 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 |     }
[58/145] 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 |     }
[59/145] 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 |     }
[60/145] 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 |     }
[61/145] 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 |     }
[62/145] 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 |     }
[63/145] Emitting module ArgumentParser
[64/151] Compiling L10nLintFramework Collection+Utility.swift
[65/151] Compiling L10nLintFramework NSRegularExpression+Utility.swift
[66/151] Compiling L10nLintFramework QueuedPrint.swift
[67/151] Compiling L10nLintFramework CodeCopier.swift
[68/151] Compiling L10nLintFramework Configuration.swift
[69/151] Compiling L10nLintFramework CopyMarker.swift
[70/151] Compiling L10nLintFramework CopyMarkerDetector.swift
[71/151] Compiling L10nLintFramework StyleViolation.swift
[72/151] Compiling L10nLintFramework SwiftLint-LICENSE.swift
[73/151] Compiling L10nLintFramework ViolationSeverity.swift
[74/151] Compiling L10nLintFramework XCFileListGenerator.swift
[75/151] Compiling L10nLintFramework JsonReporter.swift
[76/151] Compiling L10nLintFramework Reporter.swift
[77/151] Compiling L10nLintFramework XcodeReporter.swift
[84/151] Compiling ArgumentParser PositionalArgumentsValidator.swift
[85/151] Compiling ArgumentParser UniqueNamesValidator.swift
[86/151] Compiling L10nLintFramework TodoRuleConfiguration.swift
[87/151] Compiling L10nLintFramework SpaceInKeyRule.swift
[88/151] Compiling L10nLintFramework TodoRule.swift
[89/151] Compiling L10nLintFramework ConfigurationProviderRule.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
[106/152] Compiling ArgumentParser Tree.swift
[107/152] Compiling ArgumentParser CodingKeyValidator.swift
[108/152] Compiling ArgumentParser NonsenseFlagsValidator.swift
[109/152] Compiling ArgumentParser ParsableArgumentsValidation.swift
[149/153] Wrapping AST for ArgumentParser for debugging
[151/161] Compiling l10nlint Version.swift
[152/161] Compiling l10nlint Copy.swift
[153/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 |
[154/161] Compiling l10nlint GenerateXCFileList.swift
[155/161] Compiling l10nlint DefaultArguments.swift
[156/161] Compiling l10nlint Lint.swift
[157/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 |
[158/161] Compiling l10nlint Rules.swift
[159/162] Wrapping AST for l10nlint for debugging
[160/162] Write Objects.LinkFileList
[161/162] Linking l10nlint
Build complete! (36.67s)
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.