pointfreeco / swift-composable-architecture

A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
https://www.pointfree.co/collections/composable-architecture
MIT License
12.35k stars 1.44k forks source link

TCA 1.7.0 minimum version error iOS15 #3033

Closed artemkrachulov closed 5 months ago

artemkrachulov commented 5 months ago

Description

After the TCA update from version 1.6 to 1.7 got the error:

Screenshot 2024-04-30 at 2 39 57 PM

The project has a minimum version iOS 15.

Checklist

Expected behavior

No response

Actual behavior

No response

Steps to reproduce

  1. Create a new project
  2. Lower ios version to ios15
  3. Add TCA dependency with exact version 1.7.0
  4. Build

The Composable Architecture version information

1.7.0

Destination operating system

iOS 15

Xcode version information

Version 15.2 (15C500b)

Swift Compiler version information

swift-driver version: 1.87.3 Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
Target: x86_64-apple-macosx14.0
artemkrachulov commented 5 months ago

Description says https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/observationbackport#Overview

With version 1.7 of the Composable Architecture we have introduced support for Swift 5.9’s observation tools, and we have backported those tools to work in iOS 13 and later. Using the observation tools in pre-iOS 17 does require a few additional steps and there are some gotchas to be aware of.

As I understood it should work out of the box.

valodyaios commented 5 months ago
Screenshot 2024-04-30 at 17 15 08

I have the same problem. I have been using 1.7.0 version so far, but starting from yesterday the project is no longer possible to build.

This is a critical blocker for the our software team, we are supporting thousands of clients. We might have reliability issue. We kindly ask you to prioritize this issue and come back to us with a solution as soon as possible. Your fastest actions are highly appreciated. Thanks in advance

alejandro-honor-ed commented 5 months ago

Having the exact same issue at the moment and it's critical for us to figure it out since our CI and release train is currently on hold until this is figured out. I'm trying to figure out how to fix it / pin swift-perception to a specific version, but I'll update in a few minutes.

alejandro-honor-ed commented 5 months ago

This made the trick https://github.com/pointfreeco/swift-composable-architecture/issues/3028#issuecomment-2083573439. I'm on TCA 1.8.0 and I pinned swift-perception to 1.1.1 and that worked perfectly fine.

valodyaios commented 5 months ago

Thanks @alejandro-honor-ed it works for me (added https://github.com/pointfreeco/swift-perception with fixed 1.1.5)

pm-dev commented 5 months ago

Should be fixed now https://github.com/pointfreeco/swift-perception/releases/tag/1.1.7

mbrandonw commented 5 months ago

This was also fixed version 1.10.1 of TCA, so you can fix by pinning to TCA 1.10.1 or swift-perception 1.1.7. Sorry for the churn! We tried fixing a problem that only affected people still on iOS 17.0.0 beta, and sadly it caused more problems than it solved.

pm-dev commented 5 months ago

@mbrandonw is there a case for using "exact" instead of "from" for dependencies? That would have prevented this issue. I suppose using "from" offers additional flexibility in case an app using TCA depends on a different version of swift-perception, so maybe there's tradeoffs here, but worth asking the question.

mbrandonw commented 5 months ago

@pm-dev The "exact" option in SPM should really only be used close the root of your application, ideally only the app target, and sparingly even then. It's just that "exact" dependencies make it very easy to run into un-resolvable dependency graphs, and so should be used with care, and only temporarily. So we would never want to do it in TCA.