skiptools / skiptools/skip

Enabling autocrlf in .gitconfig causes Skip builds to fail with "SkipLib/Bool.swift:1:141: error: This extension cannot be merged into its extended Kotlin type…"

Open
#547 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

configuration transpilation
Dominant language
Swift
Stars
3.2k
Forks
106
Avg merge
6d 13h
Merged PRs (30d)
1

Description

If enabling autocrlf in ~/.gitconfig file:

[core]
    autocrlf = true

Skip projects will fail to build. An example failure from skip checkup may look like:

marc@zap ~ % skip checkup
[✓] Skip version 1.6.30 (= 1.6.30)
[✓] macOS version 15.7.2 (> 13.5.0)
[✓] macOS architecture: ARM
[✓] Swift version 6.3 (> 5.9.0)
[✓] Xcode version 26.1.1 (> 15.0.0)
[✓] Xcode tools SDKs: 5
[✓] Homebrew version 5.0.3 (> 4.1.0)
[✓] Gradle version 9.2.1 (> 8.6.0)
[✓] Java version 25.0.1 (> 21.0.0)
[✓] Android Debug Bridge version 1.0.41 (> 1.0.40)
[✓] Android Studio version: 2025.1
[✓] Android tools SDKs: 3
[✓] Skip license: smallbusiness good through May 26, 2026
[✓] Resolve dependencies (8.63s)
[✗] Build hello-skip (3.73s)
[✗] /private/var/folders/zl/wkdjv4s1271fbm6w0plzknkh0000gn/T/37C97811-0564-408F-8EE7-3FBE60BEF3AD/.build/checkouts/skip-lib/Sources/SkipLib/Bool.swift:1:141: error: This extension cannot be merged into its extended Kotlin type, because its type is defined outside of this module. Therefore it cannot add additional protocols
Error: Message(kind: SkipSyntax.Message.Kind.error, message: "This extension cannot be merged into its extended Kotlin type, because its type is defined outside of this module. Therefore it cannot add additional protocols", sourceFile: Optional(SkipSyntax.Source.FilePath(path: "/private/var/folders/zl/wkdjv4s1271fbm6w0plzknkh0000gn/T/37C97811-0564-408F-8EE7-3FBE60BEF3AD/.build/checkouts/skip-lib/Sources/SkipLib/Bool.swift")), sourceRange: Optional(SkipSyntax.Source.Range(start: SkipSyntax.Source.Position(line: 1, column: 141), end: SkipSyntax.Source.Position(line: 1, column: 457))))
[✗] Skip 1.6.30 checkup failed with 2 errors
See https://skip.tools/docs/faq and https://community.skip.tools for help
See output log for error details: /tmp/skip-checkup-2025-12-02T19:15:07Z.txt
Error: 3 errors

The problem is likely an issue with parsing the checked-out Swift with SwiftSyntax, but the error message is very deceptive. We might try to at least identify when the source files just use carriage returns and provide a better warning/error message.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with Git core.autocrlf=true by running skip checkup, then inspect the checked-out Sources/SkipLib/Bool.swift and the parsing path that processes it. Confirm whether carriage returns trigger the misleading SwiftSyntax error; done means the condition is detected and a clearer warning or error is shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, swift
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.