terhechte/SourceKittenDaemon

Linux is... supported, right?

Closed this issue ยท 6 comments

Checking the Package.swift file, these are the dependencies of SKD:

 dependencies: [
    .Package(url: "https://github.com/Carthage/Commandant.git", versions: Version(0, 12, 0)..<Version(0, 12, .max)),
    .Package(url: "https://github.com/jpsim/SourceKitten.git", Version(0, 17, 2)),
    .Package(url: "https://github.com/vapor/vapor.git", Version(1, 1, 12)),
    .Package(url: "https://github.com/nanzhong/Xcode.swift.git", Version(0, 4, 1))
],

I know that Vapor is supported on Linux. And SourceKitten too, if you know what Pull Requests to cherrypick before compiling Swift, more or less. But it's coming soon. anyway.

The readme says that Taylor is needed for SKD, but it doesn't appear in the dependencies up there, so I guess that line in the readme is outdated.

But Commandant and XCode.swift intrigue me. Are they supported on Linux? I know that Commandant uses the Result library as a dependency, and that in turn uses nothing. On the other hand, XCode.swift doesn't have a Package.swift file. I guess it doesn't have any dependencies ๐Ÿค”
But does this mean that Commandant and XCode.swift are supported in Linux?

If so, that means that SKD could be ported to Linux finally.
Please tell me if I'm mistaken. If I'm not, I'd love to help porting and testing it on Linux ๐Ÿ˜„

Hey!

I just did a quick check and it seems indeed as if everything could be linux-ready. For XCode.swift, you need the "swift3" branch, but nothing in there suggests that it won't work on Linux. There may be some still-unsupported Foundation API lurking in there, but we can always fork it and model around this issue.

It would be great if you could work on that! If you want, I can add you as a project member, and then you can do the work on a branch, and I'll try to also help a bit if possible. This weekend I might actually have some time. I'd love for SKD to also work on Linux. I'm doing quite a bit of Vapor Development these days and being able to run this on Linux would be awesome.

Would you be interested?

Cheers & Thanks!
Benedikt

Would you be interested?

Yes! Please, I'd love to help with as much as I can.

To be honest, my experience using Swift is very little (honestly, I wanna help polish the current tooling for Linux first), but I'm an experienced programmer. If you prefer, I can fork the project and submit PRs so that you have more control over what to approve ๐Ÿ˜„

I don't want to break anything, so even if you add me as a project member, I'll be very careful to always work outside of master until everything's been tested and checked by you and the other members.

In any case:

It would be great if you could work on that! If you want, I can add you as a project member, and then you can do the work on a branch, and I'll try to also help a bit if possible.

If the dependencies are already more or less in order, then I think we'll be fine. I can certainly fix the failing tests in Linux (if any do fail) and ask you about certain design elements of the library whenever I don't understand some and need to.

If you still prefer me to fork it, no problem :) it'd be natural. If you trust me with a direct branch, I promise I'll only make changes that make sense ^^

I send you an invite. Please only work on a separate branch. Commit early, I'll try to also chime in. Also, have a look at #58 : I'd love to get rid of complex or unnecessary dependencies. Vapor is way too huge. So if you deem something unnecessary, remove it :) Keep Vapor for now, until we have (hopefully) some more people chiming in with opinions on which web server to use. I'm currently inclined to use Empathy because of how lightweight it is.

@felix91gr
I've started with a WIP Branch that replaces Vapor with Embassy. If you want, you can try to compile this under Linux (and continue working there).

#61

Yay!

Please only work on a separate branch.

๐Ÿ˜‰ ๐Ÿ‘

Commit early, I'll try to also chime in.

Oki doke ๐Ÿ‘Œ

I'm gonna try to start this weekend; I still have to incorporate Norio Nomura's latest commit to Swift to make sure SourceKitten doesn't break (it did before). I'm gonna start right now so that hopefully by tomorrow my SourceKitten passes all of its tests.

I'm ready now :D
I've opened #62 for working on this (later I think we should use a PR, but for now an Issue is allright)