uber / mockolo

Efficient Mock Generator for Swift
Apache License 2.0
813 stars 86 forks source link

Use SwiftSyntax 508.0.0 #230

Closed sidepelican closed 1 year ago

sidepelican commented 1 year ago

Update SwiftSyntax dependency.

Changes

Note

I'm planning to release this update as v2.0.0. After v2, building mockolo on legacy Xcode will no longer be supported. If someone want to build with older Xcode, it is needed to refer to the v1 version. Basically, I don't think anyone will be troubled by this. Many other tools that use SwiftSyntax are managed like this.

pablocornejo commented 1 year ago

Hi, it seems I arrived too late, as this was merged before #231, where a bug is fixed. It'd be great if we can release one last v1 version (1.8.3) that contains all possible bug fixes before releasing the aforementioned 2.0.0, which contains breaking changes for those who need to use Xcode versions earlier than 14.3.

That way we would avoid depriving v1 users of the bug fixes that have already been implemented and would be valuable for them.

Do you think we could revert these changes, release one more fully-patched v1 version, and then re-introduce these breaking changes once the v2 release is imminent? If you have other solutions to deliver #231 and other potential bug fixes to v1 users before the v2 release please share them.

fummicc1 commented 1 year ago

thank you for your comments!

maybe you think mockolo cli users will not be able to execute v2.0.0 mockolo cli binary? I also had had your concern as well but I have learned that this breaking changes will affect to users who build mockolo source code (so, affects only to mockolo contributors or MockoloFramework users).

so we can build v2.0.0 mockolo binary with Xcode14.2 or below, in my understanding.

pablocornejo commented 1 year ago

Hi. Yes, I was referring to the users who have mockolo as a dependency and build it from source. If they cannot use v2 because, for example, they need to use a lower swift-tools-version in their Package.swift, they wouldn't be able to get the bug fixes like #231.

The ideal thing would've been to merge #231 before this PR, so a 1.8.3 version can be released with bug fixes but without the breaking changes. But given that this was already merged, do you think we'd be able to do something like what I mentioned on my previous comment to deliver #231 on a 1.8.3 version before releasing v2?

sidepelican commented 1 year ago

Releasing v1.8.3 is difficult because mockolo v1 cannot build on macOS 13 using Xcode 14.3. This means there is a pain to provide homebrew bottle. Unfortunatlly, #231 was marged after brew supported Xcode14.3, reguradless of #230, it is difficult.

On the other hand, this PR set swift-tools-version to 5.8 but this was mistake. To support build on macOS12 (Xcode14.0~14.2), it should be 5.7.

fummicc1 commented 1 year ago

FYI:

Iceman has made it possble to build mockolo source on macOS12 and Xcode14(swift 5.7) in #233

fummicc1 commented 1 year ago

@pablocornejo

I believe it may be difficult to support Swift 5.6, as Xcode 13.3 does not work on Ventura OS, and Xcode 14.3 is incompatible with any OS other than Ventura. Though there is a possibility that Linux users will demand compatibility with Swift 5.6, it shouldn't break the v1 mockolo. Currently, we have adequate support to build the mockolo source using Swift 5.7 or later, so we are prepared to release mockolo v2 whenever the time is right. What do you think of it?