Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GRMustache is incompatible with Swift 5 #28

Open
djones6 opened this issue Dec 6, 2018 · 16 comments
Open

GRMustache is incompatible with Swift 5 #28

djones6 opened this issue Dec 6, 2018 · 16 comments
Assignees
Labels

Comments

@djones6
Copy link
Contributor

djones6 commented Dec 6, 2018

Our fork of GRMustache has diverged from Gwendal Roué's version over the years. It is still in Swift 3 format, running on Swift 4.x in 3.0 compatibility mode, which means it will not build at all on Swift 5.

GRMustache itself has not been updated in 18 months, though there are a number of PRs to address Swift 4 support and bug fixes.

We need to either deprecate Kitura-MustacheTemplateEngine, making it clear that it will not support Swift 5, or put some effort into updating our GRMustache fork to be Swift 4 compatible.

@djones6 djones6 added this to the 2018.25 milestone Dec 6, 2018
@djones6 djones6 modified the milestones: 2018.25, 2018.26 Dec 12, 2018
@djones6 djones6 modified the milestones: 2018.26, 2019.05, 2019.06 Mar 13, 2019
@askari01
Copy link

askari01 commented Apr 4, 2019

kitura mustache dependency install fails.
with Xcode 10.2 (swift 5)

@ianpartridge
Copy link
Contributor

Yes, I'm afraid the upstream project we depend on needs some love :( Looks like it's not going to become compatible with Swift 5.

@askari01
Copy link

askari01 commented Apr 5, 2019

Correct me if I am wrong. GRMustache is no longer being maintained and it is a dependency Kitura-MacheteTemplate.

@ianpartridge
Copy link
Contributor

Yes that's right. We may have to deprecate Kitura-MustacheTemplateEngine

@askari01
Copy link

askari01 commented Apr 5, 2019

do we need to deprecate it, it is being widely used.

@ianpartridge
Copy link
Contributor

That's interesting to hear, I was not aware of widespread usage. Stencil seemed to be much more popular. Do you have any information about its usage?

@ianpartridge
Copy link
Contributor

Confirmation that upstream support has ceased: https://twitter.com/groue/status/1082253076432605184

@ianpartridge ianpartridge modified the milestones: 2019.06, 2019.08 Apr 10, 2019
@ianpartridge
Copy link
Contributor

Good news! There may be a new upstream maintainer: groue/GRMustache.swift#57 (comment)

If there is a new release from upstream supporting Swift 5 we would be glad to support it in Kitura-MustacheTemplateEngine.

@ianpartridge ianpartridge modified the milestones: 2019.08, 2019.09 Apr 24, 2019
@ianpartridge ianpartridge modified the milestones: 2019.09, 2019.12 Jun 5, 2019
@ianpartridge ianpartridge modified the milestones: 2019.12, 2019.13 Jun 19, 2019
@pushkarnk
Copy link

pushkarnk commented Jun 24, 2019

I see that there've been no updates to the ObjC code in the upstream repo over the last four years. This means all of the new commits that we need to cherry-pick onto the IBM-Swift fork must be pure Swift. However, before cherry-picking the new commits I wanted to make sure the IBM-Swift fork builds with Swift 5 - its not. Working on that now.

@pushkarnk
Copy link

pushkarnk commented Jun 27, 2019

  • I'm now able to get the IBM-Swift fork building with Swift 5. All the tests also pass (using make test).
  • With 5.1 the build fails because SwiftyJSON has a build failure (looking into it)
  • The IBM-Swift fork is 98 commits behind and 420 commits ahead of upstream GRMustache. I see that one of the biggest changes to GRMustache (Swift 3 groue/GRMustache.swift#35) wasn't "cherry-picked" (if I may), possibly for some genuine reasons in the past. Absorbing that change will be a considerable effort.

@pushkarnk
Copy link

@pushkarnk
Copy link

Updating to Swift 5.1 needs a backward-incompatible change to SwiftyJSON.

@ianpartridge ianpartridge modified the milestones: 2019.13, 2019.14 Jul 3, 2019
@kilnerm kilnerm modified the milestones: 2019.14, 2019.15 Jul 17, 2019
@djones6 djones6 modified the milestones: 2019.15, 2019.16 Jul 31, 2019
@djones6
Copy link
Contributor Author

djones6 commented Aug 15, 2019

groue/GRMustache.swift#66 hasn't received any comments - I'd suggest we raise an upstream PR with the work done so far (assuming it's in a good state) and let the PR process determine what else needs changing.

@djones6 djones6 modified the milestones: 2019.16, 2019.17 Aug 15, 2019
@djones6 djones6 modified the milestones: 2019.17, 2019.19 Sep 11, 2019
@djones6 djones6 removed this from the 2019.19 milestone Oct 4, 2019
@adam-rocska
Copy link
Member

@djones6 No chance this'd ever get resolved, right? 😞

@djones6
Copy link
Contributor Author

djones6 commented Apr 23, 2020

I don't think it did, I'm afraid. IIRC there were two parts to this:

  1. Get the IBM-Swift fork of GRMustache to compile again on Swift 5 - that work was being done under: Update to Swift 5 IBM-Swift-Sunset/GRMustache.swift#14
  2. Upstream the changes for Linux support - which appears to need a significant effort due to the amount the two have diverged over the years.

If we could confirm that the PR above is good + get that merged, it might at least get GRMustache functional again on Swift 5. I'm no longer actively working on Swift, but if someone could help review that PR (test that it works - we don't have any CI on that repo) then I imagine we could push it through.

@adam-rocska
Copy link
Member

Wow. @djones6 Thanks for the quick reply!
I would normally volunteer to get my hands wet, or at least assign someone from my side. However we're still fresh with Swift, and with IBM Kitura, so I don't think our competencies would be there just yet.

However we're really happy with the stack so far, so as soon as we get to a confident professional level, we'll sure as hell start contributing wherever we can.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants