Skip to content

@retroactive conformance syntax and checking #36068

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

Merged
merged 3 commits into from
Oct 20, 2023

Conversation

harlanhaskins
Copy link
Contributor

@harlanhaskins harlanhaskins commented Feb 20, 2021

Updated with the Core Team's new recommendation.

Warns whenever a conformance declared in an extension is "retroactive", i.e. it declares a conformance of a type outside this module to a protocol also outside this module.

This warning can be silenced via @retroactive, like so:

extension Date: @retroactive Identifiable { ... }

This also disables the warning for the Foundation module, which has a bunch of retroactive conformances of stdlib types to _ObjectiveCBridgeable.

Fixes rdar://74543558

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins
Copy link
Contributor Author

After feedback from @airspeedswift I'm moving from @_retroactiveConformance to requiring you to module-qualify everything from outside your module explicitly. This isn't quite done yet

@harlanhaskins harlanhaskins force-pushed the vintage-conformances branch 2 times, most recently from 4194dd5 to 6fa13dd Compare March 1, 2021 05:28
@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins harlanhaskins force-pushed the vintage-conformances branch from 6fa13dd to 3592ed4 Compare March 1, 2021 05:31
@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test Windows

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

1 similar comment
@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test macOS

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

1 similar comment
@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test Linux

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

Copy link
Contributor

@tshortli tshortli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, really looking forward to having this implemented.

I gather that the intent is to not print @retroactive in .swiftinterfaces (makes sense). Could you add a ModuleInterface tests that asserts this explicitly?

@harlanhaskins
Copy link
Contributor Author

harlanhaskins commented Oct 9, 2023

I'm actually working on an update here to print the attribute in module interfaces, guarded with a #if hasAttribute check, but it'll have to be something like

#if hasAttribute(retroactive)
extension Optional: @retroactive CustomDebugStringConvertible where Wrapped: CustomDebugStringConvertible {}
#else
extension Optional: CustomDebugStringConvertible where Wrapped: CustomDebugStringConvertible {}
#endif

extension Optional where Wrapped: CustomDebugStringConvertible {
    public var description: String {
        // ...
    }
}

It's not particularly _great_ when executable targets declare these, but
it's certainly not okay when a library that's meant to be distributed
declares these. When library evolution is enabled, warn about
retroactive conformances.

To silence the warning, add the @retroactive attribute to the extended type,
similarly to the @unchecked attribute for Sendable. It is an error to use
@retroactive for anything but a retroactive conformance declaration in
an extension.

Fixes rdar://74543558
@harlanhaskins
Copy link
Contributor Author

@tshortli @beccadax Sorry for the extreme delay on this! I think I have a workable implementation now that prints @retroactive in module interfaces guarded with a $RetroactiveAttribute feature flag check using the standard feature compatibility printing path, and added a test to make sure of that.

Thank you! I think this PR is good to go.

@harlanhaskins
Copy link
Contributor Author

@swift-ci please smoke test

Copy link
Contributor

@tshortli tshortli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Is there a https://github.com/apple/swift-syntax PR as well?

@harlanhaskins
Copy link
Contributor Author

@swift-ci please test

@harlanhaskins
Copy link
Contributor Author

Is this good to merge? 🙇

@tshortli
Copy link
Contributor

🚢

@harlanhaskins harlanhaskins merged commit 4ac34a4 into swiftlang:main Oct 20, 2023
meg-gupta pushed a commit to meg-gupta/swift that referenced this pull request Oct 23, 2023
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
tshortli added a commit to tshortli/swift that referenced this pull request Feb 1, 2024
… underlying modules.

SE-0364 was implemented to discourage "retroactive" conformances that might
conflict with conformances that could be introduced by other modules in the
future. These diagnostics should not apply to conformances that involve types
and protocols imported from the underlying clang module of a Swift module since
the two modules are assumed to be developed in tandem by the same owners,
despite technically being separate modules from the perspective of the
compiler.

The diagnostics implemented in swiftlang#36068 were
designed to take underlying clang modules into account. However, the
implementation assumed that `ModuleDecl::getUnderlyingModuleIfOverlay()` would
behave as expected when called on the Swift module being compiled.
Unfortunately, it would always return `nullptr` and thus conformances involving
the underlying clang module are being diagnosed unexpectedly.

The fix is to make `ModuleDecl::getUnderlyingModuleIfOverlay()` behave as
expected when it is made up of `SourceFile`s.

Resolves rdar://121478556
TamarMilchtaich added a commit to TamarMilchtaich/tuist that referenced this pull request Sep 30, 2024
Fixes the warning in the new Swift version solved here:
swiftlang/swift#36068

Without adding the `@retroactive`, which does not compile in Xcode 15.
This way, extensions that declares a conformance to a type where both
are from another module will compile without warning in Xcode 16, as the
conformed type is declared to be explicitly from the imported module,
which suppresses the warning.
fortmarek pushed a commit to tuist/tuist that referenced this pull request Sep 30, 2024
Fixes the warning in the new Swift version solved here:
swiftlang/swift#36068

Without adding the `@retroactive`, which does not compile in Xcode 15.
This way, extensions that declares a conformance to a type where both
are from another module will compile without warning in Xcode 16, as the
conformed type is declared to be explicitly from the imported module,
which suppresses the warning.
rofle100lvl pushed a commit to tuist/tuist that referenced this pull request Oct 3, 2024
Fixes the warning in the new Swift version solved here:
swiftlang/swift#36068

Without adding the `@retroactive`, which does not compile in Xcode 15.
This way, extensions that declares a conformance to a type where both
are from another module will compile without warning in Xcode 16, as the
conformed type is declared to be explicitly from the imported module,
which suppresses the warning.
Ernest0-Production pushed a commit to Ernest0-Production/tuist that referenced this pull request Oct 13, 2024
commit 46ccca5
Author: fortmarek <[email protected]>
Date:   Fri Oct 11 16:18:14 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 593a0d9
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 11 17:47:31 2024 +0200

    feat: add support for .ipa in Tuist Previews (tuist#6849)

    * feat: add support for .ipa in Tuist Previews

    * Address PR feedback

    * Fix tests

commit bb6d2a9
Author: Dmitry Serov <[email protected]>
Date:   Fri Oct 11 09:02:48 2024 +0100

    Fix false positive of mismatching configurations present in unrelated projects (tuist#6562)

    * Only lint mismatching configurations within the project dependency graph

    * Use filterDependencies to traverse dependency graph in configuration linter

    * Run linter

    * Use `allTargetDependencies` instead of a custom function

commit ee984fc
Author: DevVenusK <[email protected]>
Date:   Fri Oct 11 00:11:25 2024 +0900

    Feature: Translate index.md file to Korean (tuist#6854)

    * Translate index.md file to Korean

    * run lint-fix

    ---------

    Co-authored-by: hyosung <[email protected]>

commit 14387a1
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 17:09:59 2024 +0200

    Fix a broken link (tuist#6853)

commit 42505ee
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 10 14:33:12 2024 +0200

    Fix implicit external dependencies (tuist#6850)

commit 55fd38e
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 13:17:51 2024 +0200

    Fix documentation redirects (tuist#6848)

    * Fix documentation redirects

    * Change the redirect to 301

commit 6998349
Author: Tuist <[email protected]>
Date:   Thu Oct 10 10:32:24 2024 +0000

    Update .mise.toml and CHANGELOG.md in tuist/tuist with Tuist 4.29.1

commit bd04a76
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 11:51:11 2024 +0200

    Setup the documentation website for l10n (tuist#6843)

    * Add localization badge

    * Fix the generation of the website with Xcode 16

    * Create sub-directory per language

    * Use Xcode 16 to build the documentation

    * Localize references

    * Localize references

    * Fix dead links

    * Revert README.md change

    * Revert Mise changes

    * Setup redirects

commit 7377e5b
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 10 11:23:36 2024 +0200

    Change contact link to community forum (tuist#6846)

commit 2c51d7b
Author: Gabriel Liévano <[email protected]>
Date:   Wed Oct 9 14:31:12 2024 -0700

    Support absolutePath copy files action (tuist#6642)

commit 06f3f42
Author: Antti Laitala <[email protected]>
Date:   Wed Oct 9 16:08:44 2024 +0300

    Fix file system handle exhaustion in ContentHasher (tuist#6840)

commit 7a04f4b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 18:46:30 2024 +0200

    Bump path-to-regexp from 6.2.2 to 6.3.0 in /docs (tuist#6836)

    Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
    - [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
    - [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
    - [Commits](pillarjs/path-to-regexp@v6.2.2...v6.3.0)

    ---
    updated-dependencies:
    - dependency-name: path-to-regexp
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5cbcdf9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 18:46:17 2024 +0200

    Bump rollup from 4.21.2 to 4.24.0 in /docs (tuist#6835)

    Bumps [rollup](https://github.com/rollup/rollup) from 4.21.2 to 4.24.0.
    - [Release notes](https://github.com/rollup/rollup/releases)
    - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
    - [Commits](rollup/rollup@v4.21.2...v4.24.0)

    ---
    updated-dependencies:
    - dependency-name: rollup
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2938081
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 17:59:34 2024 +0200

    Update ios_app_with_frameworks to make it distributable (tuist#6837)

commit e14fadf
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 16:29:38 2024 +0200

    Bump vite from 5.4.2 to 5.4.8 in /docs (tuist#6834)

    Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.2 to 5.4.8.
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/v5.4.8/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v5.4.8/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: vite
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 52f7ce6
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 16:27:46 2024 +0200

    Migrate FileHandler.move to FileSystem (tuist#6826)

commit 3160c9e
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Tue Oct 8 15:13:47 2024 +0200

    add aim2120 as a contributor for code (tuist#6833)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit e8cad40
Author: Annalise Mariottini <[email protected]>
Date:   Tue Oct 8 09:13:32 2024 -0400

    Fix missing `.package.resolved` for project with only transitive remote dependencies (tuist#6823)

    * fix package resolution for project with local swift package with remote dependencies

    * lint

    * rename variables

    * new fixture was missing Tuist directory

    * remove boilderplate from Tuist directory

    * add README for fixture app

    * add unit test for SwiftPackageManagerInteractor

commit 0ed252c
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 14:59:53 2024 +0200

    Migrate FileSystem.copy to FileHandler (tuist#6830)

commit e0c4edf
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 14:59:41 2024 +0200

    Migrate FileHandler.resolveSymlink to FileSystem (tuist#6825)

    * Migrate FileHandler.resolveSymlink to FileSystem

    * Revert to using /var instead of /private/var in acceptance tests

    * Fix RunAcceptanceTestCommandLineToolBasic test

commit a6922e9
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 12:35:50 2024 +0200

    Preserve directories on tuist clean (tuist#6832)

commit 8355fd3
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 11:44:21 2024 +0200

    Fix ios_app_with_frameworks tests (tuist#6831)

commit 341cbbc
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 09:39:09 2024 +0200

    Update CacheStorageFactroying method signature with async-await (tuist#6829)

commit e862cc4
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 18:38:06 2024 +0200

    Fix caching for unused platforms (tuist#6824)

commit 8336a9f
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 16:49:31 2024 +0200

    Finish migration of FileHandler.exists to FileSystem (tuist#6813)

    * Finish migration of FileHandler.exists to FileSystem

    * Fix missing async-await

commit d29320d
Author: fortmarek <[email protected]>
Date:   Mon Oct 7 14:34:10 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 01012dc
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 16:00:00 2024 +0200

    Fix error when resolving a symlink for a directory during tuist test (tuist#6821)

    * Fix error when resolving a symlink for a directory during tuist test

    * Update FileSystem

    * Update Package.resolved

commit 4002e6b
Author: Gorbenko Roman <[email protected]>
Date:   Mon Oct 7 15:58:17 2024 +0200

    Fix implicit-imports command not reporting implicit imports of external dependencies (tuist#6710)

    * Scan external dependencies as well as internal

    * Pr issues

    * Update Tests/TuistKitTests/Services/Inspect/InspectImplicitImportsServiceTests.swift

    * Update Tests/TuistKitTests/Services/Inspect/InspectImplicitImportsServiceTests.swift

    ---------

    Co-authored-by: Daniele Formichelli <[email protected]>
    Co-authored-by: Marek Fořt <[email protected]>

commit 4d87946
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 15:25:43 2024 +0200

    feat: add support for device previews (tuist#6800)

    * feat: add support for device previews

    * Address PR feedback

commit aa96b38
Author: Marek Fořt <[email protected]>
Date:   Sat Oct 5 11:26:12 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (tuist#6816)

commit fd959e5
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 19:14:34 2024 +0200

    Update tuist in .mise.toml (tuist#6814)

commit f6355dc
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 18:40:01 2024 +0200

    Remove NYTPhotoViewer from the app_with_spm_dependencies fixture (tuist#6817)

commit 0241665
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 10:23:32 2024 +0200

    Migrate FileHandler to FileSystem in TuistHasher (tuist#6809)

commit 4ab946f
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Thu Oct 3 19:21:18 2024 +0200

    add c128128 as a contributor for code (tuist#6811)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 38e2dd0
Author: Gorbenko Roman <[email protected]>
Date:   Thu Oct 3 18:58:16 2024 +0200

    Remove second portion of Implicit Dependencies (tuist#6709)

    * Remove second portion of Implicit Dependencies

    * Lint and imported Darwin

    ---------

    Co-authored-by: Marek Fořt <[email protected]>

commit 6dbaba7
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 3 18:31:50 2024 +0200

    Inspect implicit imports on lint (tuist#6797)

    * Inspect implicit imports on lint

    * Install Tuist dependencies before lint

    * Generate project in the lint ci job

commit 0471c29
Author: fortmarek <[email protected]>
Date:   Thu Oct 3 11:24:01 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 2de0e96
Author: Taha Tesser <[email protected]>
Date:   Thu Oct 3 13:58:56 2024 +0300

    fix: rename macOS app build (tuist#6802)

commit 8984eac
Author: Mike Simons <[email protected]>
Date:   Thu Oct 3 06:29:23 2024 -0400

    Fix regression when including directories that are considered source like DocC catalogs. (tuist#6803)

    * Add documentation fixture and failing assert

    * Include fixes from tuist#6198

    * Linting

commit 2a307d8
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 12:05:20 2024 +0200

    Fix tuist generate with an xcmappingmodel resource (tuist#6795)

commit 0d47a0e
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 11:31:14 2024 +0200

    Add dedicated fixture for showcasing Realm integration (tuist#6793)

commit e057e62
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 09:33:18 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (tuist#6792)

commit 964a370
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 18:09:20 2024 +0200

    Fix uploading result bundle path from a custom path (tuist#6789)

    * Include only actual test targets in selective test analytics

    * Fix uploading result bundle path from a custom path

    * Run lint

    * Trigger CI

commit 7ba33cf
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 17:25:31 2024 +0200

    Include only tested unit test targets in selective test analytics (tuist#6780)

    * Include only actual test targets in selective test analytics

    * Add unit test to ensure test analytics work for test plan too

    * Trigger CI

commit f2a1aad
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 17:16:09 2024 +0200

    Fix tuist commands failing due to a git error (tuist#6784)

commit eca507f
Author: Oleksii Faizullov <[email protected]>
Date:   Tue Oct 1 13:38:33 2024 +0300

    Fix acceptance tests regression in a macos_app_with_extensions fixture (tuist#6785)

    * Fix broken AppExtension protocol conformance in fixture

    * Fix broken AppExtension protocol conformance in fixture

    * Run lint

commit cb086ba
Author: fortmarek <[email protected]>
Date:   Tue Oct 1 11:15:13 2024 +0200

    Fix missing async-await in new tests

commit f4088ff
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:05:11 2024 +0200

    add rock88 as a contributor for code (tuist#6783)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 6e4e016
Author: Andrey K <[email protected]>
Date:   Tue Oct 1 11:04:56 2024 +0300

    Sort load-plugin commands (tuist#6763)

    Co-authored-by: fortmarek <[email protected]>

commit 94277b2
Author: Oleksii Faizullov <[email protected]>
Date:   Tue Oct 1 10:10:10 2024 +0300

    Allow embedding `.extensionKitExtension` targets into macOS apps (tuist#6745)

    * Allow embedding the extension kit extension to macOS apps

    * Allow dependencies for extension kit extensions on macOS

    * Add ability to embed xpc to extension kit targets

    * Unit test lint rules for extension kit extensions

    * Extend the macos_app_with_extensions fixture to add extension kit target

    * Apply lint autocorrections

    ---------

    Co-authored-by: Daniele Formichelli <[email protected]>

commit c90999f
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:36:26 2024 +0200

    add TamarMilchtaich as a contributor for code (tuist#6782)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 2482ae7
Author: Tamar Milchtaich Lavi <[email protected]>
Date:   Mon Sep 30 21:36:15 2024 +0300

    Add type conformance to avoid Xcode 16 warnings. (tuist#6781)

    Fixes the warning in the new Swift version solved here:
    swiftlang/swift#36068

    Without adding the `@retroactive`, which does not compile in Xcode 15.
    This way, extensions that declares a conformance to a type where both
    are from another module will compile without warning in Xcode 16, as the
    conformed type is declared to be explicitly from the imported module,
    which suppresses the warning.
fortmarek added a commit to tuist/tuist that referenced this pull request Oct 13, 2024
* Fix race condition when build ProjectDescriptionHelpers (#6374)

* Fix ProjectDescriptionHelpers hash prefix collision (#6374)

* Replace HelpersModuleBuild from class to struct (#6374)

* Cache ProjectDescriptionHelpersBuilder across manifests (#6374)

* Update expected ProjectDescriptionHelper module artifacts path in integration tests (#6374)

* Replace thread-safe helpers module build on stored Task (#6374)

* Move HelpersBuilder caching into Single ProjectDescriptionHelpersBuilderFactory

* Replace redundant FileSystem on FileHandler

* Unify MockSystem capture stubbing

* Unit test ProjectDescriptionHelpersBuilder cache behavior

* Fix ProjectDescriptionHelpersBuilderTests UnitTests compilation

* Squashed commit of the following:

commit 46ccca5
Author: fortmarek <[email protected]>
Date:   Fri Oct 11 16:18:14 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 593a0d9
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 11 17:47:31 2024 +0200

    feat: add support for .ipa in Tuist Previews (#6849)

    * feat: add support for .ipa in Tuist Previews

    * Address PR feedback

    * Fix tests

commit bb6d2a9
Author: Dmitry Serov <[email protected]>
Date:   Fri Oct 11 09:02:48 2024 +0100

    Fix false positive of mismatching configurations present in unrelated projects (#6562)

    * Only lint mismatching configurations within the project dependency graph

    * Use filterDependencies to traverse dependency graph in configuration linter

    * Run linter

    * Use `allTargetDependencies` instead of a custom function

commit ee984fc
Author: DevVenusK <[email protected]>
Date:   Fri Oct 11 00:11:25 2024 +0900

    Feature: Translate index.md file to Korean (#6854)

    * Translate index.md file to Korean

    * run lint-fix

    ---------

    Co-authored-by: hyosung <[email protected]>

commit 14387a1
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 17:09:59 2024 +0200

    Fix a broken link (#6853)

commit 42505ee
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 10 14:33:12 2024 +0200

    Fix implicit external dependencies (#6850)

commit 55fd38e
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 13:17:51 2024 +0200

    Fix documentation redirects (#6848)

    * Fix documentation redirects

    * Change the redirect to 301

commit 6998349
Author: Tuist <[email protected]>
Date:   Thu Oct 10 10:32:24 2024 +0000

    Update .mise.toml and CHANGELOG.md in tuist/tuist with Tuist 4.29.1

commit bd04a76
Author: Pedro Piñera Buendía <[email protected]>
Date:   Thu Oct 10 11:51:11 2024 +0200

    Setup the documentation website for l10n (#6843)

    * Add localization badge

    * Fix the generation of the website with Xcode 16

    * Create sub-directory per language

    * Use Xcode 16 to build the documentation

    * Localize references

    * Localize references

    * Fix dead links

    * Revert README.md change

    * Revert Mise changes

    * Setup redirects

commit 7377e5b
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 10 11:23:36 2024 +0200

    Change contact link to community forum (#6846)

commit 2c51d7b
Author: Gabriel Liévano <[email protected]>
Date:   Wed Oct 9 14:31:12 2024 -0700

    Support absolutePath copy files action (#6642)

commit 06f3f42
Author: Antti Laitala <[email protected]>
Date:   Wed Oct 9 16:08:44 2024 +0300

    Fix file system handle exhaustion in ContentHasher (#6840)

commit 7a04f4b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 18:46:30 2024 +0200

    Bump path-to-regexp from 6.2.2 to 6.3.0 in /docs (#6836)

    Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
    - [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
    - [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
    - [Commits](pillarjs/path-to-regexp@v6.2.2...v6.3.0)

    ---
    updated-dependencies:
    - dependency-name: path-to-regexp
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5cbcdf9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 18:46:17 2024 +0200

    Bump rollup from 4.21.2 to 4.24.0 in /docs (#6835)

    Bumps [rollup](https://github.com/rollup/rollup) from 4.21.2 to 4.24.0.
    - [Release notes](https://github.com/rollup/rollup/releases)
    - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
    - [Commits](rollup/rollup@v4.21.2...v4.24.0)

    ---
    updated-dependencies:
    - dependency-name: rollup
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2938081
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 17:59:34 2024 +0200

    Update ios_app_with_frameworks to make it distributable (#6837)

commit e14fadf
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 16:29:38 2024 +0200

    Bump vite from 5.4.2 to 5.4.8 in /docs (#6834)

    Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.2 to 5.4.8.
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/v5.4.8/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v5.4.8/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: vite
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 52f7ce6
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 16:27:46 2024 +0200

    Migrate FileHandler.move to FileSystem (#6826)

commit 3160c9e
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Tue Oct 8 15:13:47 2024 +0200

    add aim2120 as a contributor for code (#6833)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit e8cad40
Author: Annalise Mariottini <[email protected]>
Date:   Tue Oct 8 09:13:32 2024 -0400

    Fix missing `.package.resolved` for project with only transitive remote dependencies (#6823)

    * fix package resolution for project with local swift package with remote dependencies

    * lint

    * rename variables

    * new fixture was missing Tuist directory

    * remove boilderplate from Tuist directory

    * add README for fixture app

    * add unit test for SwiftPackageManagerInteractor

commit 0ed252c
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 14:59:53 2024 +0200

    Migrate FileSystem.copy to FileHandler (#6830)

commit e0c4edf
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 14:59:41 2024 +0200

    Migrate FileHandler.resolveSymlink to FileSystem (#6825)

    * Migrate FileHandler.resolveSymlink to FileSystem

    * Revert to using /var instead of /private/var in acceptance tests

    * Fix RunAcceptanceTestCommandLineToolBasic test

commit a6922e9
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 12:35:50 2024 +0200

    Preserve directories on tuist clean (#6832)

commit 8355fd3
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 11:44:21 2024 +0200

    Fix ios_app_with_frameworks tests (#6831)

commit 341cbbc
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 8 09:39:09 2024 +0200

    Update CacheStorageFactroying method signature with async-await (#6829)

commit e862cc4
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 18:38:06 2024 +0200

    Fix caching for unused platforms (#6824)

commit 8336a9f
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 16:49:31 2024 +0200

    Finish migration of FileHandler.exists to FileSystem (#6813)

    * Finish migration of FileHandler.exists to FileSystem

    * Fix missing async-await

commit d29320d
Author: fortmarek <[email protected]>
Date:   Mon Oct 7 14:34:10 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 01012dc
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 16:00:00 2024 +0200

    Fix error when resolving a symlink for a directory during tuist test (#6821)

    * Fix error when resolving a symlink for a directory during tuist test

    * Update FileSystem

    * Update Package.resolved

commit 4002e6b
Author: Gorbenko Roman <[email protected]>
Date:   Mon Oct 7 15:58:17 2024 +0200

    Fix implicit-imports command not reporting implicit imports of external dependencies (#6710)

    * Scan external dependencies as well as internal

    * Pr issues

    * Update Tests/TuistKitTests/Services/Inspect/InspectImplicitImportsServiceTests.swift

    * Update Tests/TuistKitTests/Services/Inspect/InspectImplicitImportsServiceTests.swift

    ---------

    Co-authored-by: Daniele Formichelli <[email protected]>
    Co-authored-by: Marek Fořt <[email protected]>

commit 4d87946
Author: Marek Fořt <[email protected]>
Date:   Mon Oct 7 15:25:43 2024 +0200

    feat: add support for device previews (#6800)

    * feat: add support for device previews

    * Address PR feedback

commit aa96b38
Author: Marek Fořt <[email protected]>
Date:   Sat Oct 5 11:26:12 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (#6816)

commit fd959e5
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 19:14:34 2024 +0200

    Update tuist in .mise.toml (#6814)

commit f6355dc
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 18:40:01 2024 +0200

    Remove NYTPhotoViewer from the app_with_spm_dependencies fixture (#6817)

commit 0241665
Author: Marek Fořt <[email protected]>
Date:   Fri Oct 4 10:23:32 2024 +0200

    Migrate FileHandler to FileSystem in TuistHasher (#6809)

commit 4ab946f
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Thu Oct 3 19:21:18 2024 +0200

    add c128128 as a contributor for code (#6811)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 38e2dd0
Author: Gorbenko Roman <[email protected]>
Date:   Thu Oct 3 18:58:16 2024 +0200

    Remove second portion of Implicit Dependencies (#6709)

    * Remove second portion of Implicit Dependencies

    * Lint and imported Darwin

    ---------

    Co-authored-by: Marek Fořt <[email protected]>

commit 6dbaba7
Author: Marek Fořt <[email protected]>
Date:   Thu Oct 3 18:31:50 2024 +0200

    Inspect implicit imports on lint (#6797)

    * Inspect implicit imports on lint

    * Install Tuist dependencies before lint

    * Generate project in the lint ci job

commit 0471c29
Author: fortmarek <[email protected]>
Date:   Thu Oct 3 11:24:01 2024 +0000

    [Release] [skip ci] Tuist App [email protected]

commit 2de0e96
Author: Taha Tesser <[email protected]>
Date:   Thu Oct 3 13:58:56 2024 +0300

    fix: rename macOS app build (#6802)

commit 8984eac
Author: Mike Simons <[email protected]>
Date:   Thu Oct 3 06:29:23 2024 -0400

    Fix regression when including directories that are considered source like DocC catalogs. (#6803)

    * Add documentation fixture and failing assert

    * Include fixes from #6198

    * Linting

commit 2a307d8
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 12:05:20 2024 +0200

    Fix tuist generate with an xcmappingmodel resource (#6795)

commit 0d47a0e
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 11:31:14 2024 +0200

    Add dedicated fixture for showcasing Realm integration (#6793)

commit e057e62
Author: Marek Fořt <[email protected]>
Date:   Wed Oct 2 09:33:18 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (#6792)

commit 964a370
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 18:09:20 2024 +0200

    Fix uploading result bundle path from a custom path (#6789)

    * Include only actual test targets in selective test analytics

    * Fix uploading result bundle path from a custom path

    * Run lint

    * Trigger CI

commit 7ba33cf
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 17:25:31 2024 +0200

    Include only tested unit test targets in selective test analytics (#6780)

    * Include only actual test targets in selective test analytics

    * Add unit test to ensure test analytics work for test plan too

    * Trigger CI

commit f2a1aad
Author: Marek Fořt <[email protected]>
Date:   Tue Oct 1 17:16:09 2024 +0200

    Fix tuist commands failing due to a git error (#6784)

commit eca507f
Author: Oleksii Faizullov <[email protected]>
Date:   Tue Oct 1 13:38:33 2024 +0300

    Fix acceptance tests regression in a macos_app_with_extensions fixture (#6785)

    * Fix broken AppExtension protocol conformance in fixture

    * Fix broken AppExtension protocol conformance in fixture

    * Run lint

commit cb086ba
Author: fortmarek <[email protected]>
Date:   Tue Oct 1 11:15:13 2024 +0200

    Fix missing async-await in new tests

commit f4088ff
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:05:11 2024 +0200

    add rock88 as a contributor for code (#6783)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 6e4e016
Author: Andrey K <[email protected]>
Date:   Tue Oct 1 11:04:56 2024 +0300

    Sort load-plugin commands (#6763)

    Co-authored-by: fortmarek <[email protected]>

commit 94277b2
Author: Oleksii Faizullov <[email protected]>
Date:   Tue Oct 1 10:10:10 2024 +0300

    Allow embedding `.extensionKitExtension` targets into macOS apps (#6745)

    * Allow embedding the extension kit extension to macOS apps

    * Allow dependencies for extension kit extensions on macOS

    * Add ability to embed xpc to extension kit targets

    * Unit test lint rules for extension kit extensions

    * Extend the macos_app_with_extensions fixture to add extension kit target

    * Apply lint autocorrections

    ---------

    Co-authored-by: Daniele Formichelli <[email protected]>

commit c90999f
Author: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:36:26 2024 +0200

    add TamarMilchtaich as a contributor for code (#6782)

    * update README.md [skip ci]

    * update .all-contributorsrc [skip ci]

    ---------

    Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

commit 2482ae7
Author: Tamar Milchtaich Lavi <[email protected]>
Date:   Mon Sep 30 21:36:15 2024 +0300

    Add type conformance to avoid Xcode 16 warnings. (#6781)

    Fixes the warning in the new Swift version solved here:
    swiftlang/swift#36068

    Without adding the `@retroactive`, which does not compile in Xcode 15.
    This way, extensions that declares a conformance to a type where both
    are from another module will compile without warning in Xcode 16, as the
    conformed type is declared to be explicitly from the imported module,
    which suppresses the warning.

---------

Co-authored-by: ernest0n <[email protected]>
Co-authored-by: fortmarek <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
swift evolution implemented Flag → feature: A feature that was approved through the Swift evolution process and implemented
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants