Skip to content

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

Merged
fortmarek merged 3 commits intomainfrom
feature/preview-archive
Oct 11, 2024
Merged

feat: add support for .ipa in Tuist Previews#6849
fortmarek merged 3 commits intomainfrom
feature/preview-archive

Conversation

@fortmarek
Copy link
Copy Markdown
Member

@fortmarek fortmarek commented Oct 10, 2024

Resolves: #6847

Short description 📝

For more details, see the attached issue.

This PR adds support for sharing and running .ipas in Tuist Previews. You can run these previews using the macOS menu bar app, the tuist CLI or directly from your device.

Here's a demo of this feature in action:

tuist-preview-demo.mp4

The web UI is subject to change as described here: #6851

How to test the changes locally 🧐

  • Go to ios_app_with_frameworks
  • Create an ipa by archiving the app and then exporting the archive
  • Run tuist share path-to-ipa.ipa
  • Run tuist run --device "My iPhone" {url}
  • Open the link in your browser – the app should run on your selected device using the macOS menu bar app

Contributor checklist ✅

  • The code has been linted using run mise run lint-fix
  • The change is tested via unit testing or acceptance testing, or both
  • The title of the PR is formulated in a way that is usable as a changelog entry
  • In case the PR introduces changes that affect users, the documentation has been updated

Reviewer checklist ✅

  • The code architecture and patterns are consistent with the rest of the codebase
  • Reviewer has checked that, if needed, the PR includes the label changelog:added, changelog:fixed, or changelog:changed, and the title is usable as a changelog entry

@tuist
Copy link
Copy Markdown

tuist bot commented Oct 10, 2024

🛠️ Tuist Run Report 🛠️

Tuist Tests 🧪

Command Status Cache hit rate Tests Skipped Ran Commit
test TuistAutomationAcceptanceTests 0 % 1 0 1 10a356195
test TuistDependenciesAcceptanceTests 0 % 1 0 1 10a356195
test TuistGeneratorAcceptanceTests 0 % 1 0 1 10a356195
test TuistKitAcceptanceTests 0 % 1 0 1 10a356195
test TuistUnitTests 0 % 23 0 23 10a356195

@fortmarek fortmarek force-pushed the feature/preview-archive branch 5 times, most recently from c3180f1 to a4519fc Compare October 11, 2024 10:12
@fortmarek fortmarek force-pushed the feature/preview-archive branch from a4519fc to 71d0a45 Compare October 11, 2024 10:20
@fortmarek fortmarek changed the title Add support for archives in Tuist Previews feat: add support for .ipa in Tuist Previews Oct 11, 2024
@fortmarek fortmarek requested a review from pepicrft October 11, 2024 11:05
@fortmarek fortmarek marked this pull request as ready for review October 11, 2024 11:06
pepicrft
pepicrft previously approved these changes Oct 11, 2024

@Argument(
help: "The app names to be looked up in the built products directory or the paths to the app bundles.",
help: "The app names to be looked up in the built products directory or the paths to the app bundles or application zip archives.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is the application .zip archive a zip containing the .ipa?

Copy link
Copy Markdown
Member Author

@fortmarek fortmarek Oct 11, 2024

Choose a reason for hiding this comment

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

.ipa is a special kind of .zip but let me update it to mention the .ipa instead.

let appPaths = try await apps.concurrentMap {
try AbsolutePath(
validating: $0,
relativeTo: try await fileSystem.currentWorkingDirectory()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Shouldn't the paths here be relative to the path directory resolved above? That way we are consistent with the usage of --path argument to configure the absolute paths that paths are relative to.

validating: $0,
relativeTo: fileHandler.currentPath
let appPaths = try await apps.concurrentMap {
try AbsolutePath(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What if I pass the name of an app to be read from the built products directory and a relative path to an archive? Won't that lead to a failure because try Absolute path will fail to resolve it?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

)
logger.notice("\(appName) uploaded – share it with others using the following link: \(preview.url.absoluteString)")
} else if try await manifestLoader.hasRootManifest(at: path) {
guard apps.count < 2 else { throw ShareServiceError.multipleAppsSpecified(apps) }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This check is also in shareIPA. Shouldn't we have it once at the service level? Also, what do you think if we surface that in the help so that users don't try to pass multiple apps?

Copy link
Copy Markdown
Member Author

@fortmarek fortmarek Oct 11, 2024

Choose a reason for hiding this comment

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

We should keep it here because when you share individual app bundles with their paths, you can specify more of them. So, this check can't be done earlier.

I updated the help to reflect that you can pass only one name and one app archive but you can pass multiple app bundle paths.

let appBundle = try await appBundleLoader.load(appBundlePath)
let displayName = appBundle.infoPlist.name

let preview = try await previewsUploadService.uploadPreviews(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd add a log right before this to signal that an asynchronous process is going to start and they might need to wait for the upload to complete. Once we have a component for this, we can show a progress indicator.

guard appNames.count == 1,
let appName = appNames.first else { throw ShareServiceError.multipleAppsSpecified(appNames) }

let preview = try await previewsUploadService.uploadPreviews(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Similar comment here regarding the indication of "something asynchronous is going to start"


public enum PreviewUploadType: Equatable {
case ipa(AbsolutePath)
case appBundle([AbsolutePath])
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should it be?

Suggested change
case appBundle([AbsolutePath])
case appBundles([AbsolutePath])

Comment on lines +25 to +26
private var fileUnarchiver: MockFileUnarchiving!
private let shareURL: URL = .test()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Don't forget to set these to nil in tearDown for the garbage collector to clean up the memory.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't think it's necessary for constants.

@fortmarek fortmarek force-pushed the feature/preview-archive branch from 99b49aa to bcde966 Compare October 11, 2024 12:12
@fortmarek fortmarek merged commit 593a0d9 into main Oct 11, 2024
@fortmarek fortmarek deleted the feature/preview-archive branch October 11, 2024 15:47
Ernest0-Production pushed a commit to Ernest0-Production/tuist that referenced this pull request Oct 13, 2024
commit 46ccca5
Author: fortmarek <fortmarek@users.noreply.github.com>
Date:   Fri Oct 11 16:18:14 2024 +0000

    [Release] [skip ci] Tuist App app@0.3.0

commit 593a0d9
Author: Marek Fořt <marekfort@me.com>
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 <barbari100@gmail.com>
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 <44860045+DevVenusK@users.noreply.github.com>
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 <hyosung@finda.co.kr>

commit 14387a1
Author: Pedro Piñera Buendía <663605+pepicrft@users.noreply.github.com>
Date:   Thu Oct 10 17:09:59 2024 +0200

    Fix a broken link (tuist#6853)

commit 42505ee
Author: Marek Fořt <marekfort@me.com>
Date:   Thu Oct 10 14:33:12 2024 +0200

    Fix implicit external dependencies (tuist#6850)

commit 55fd38e
Author: Pedro Piñera Buendía <663605+pepicrft@users.noreply.github.com>
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 <release@tuist.io>
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 <663605+pepicrft@users.noreply.github.com>
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 <marekfort@me.com>
Date:   Thu Oct 10 11:23:36 2024 +0200

    Change contact link to community forum (tuist#6846)

commit 2c51d7b
Author: Gabriel Liévano <811827+rgnns@users.noreply.github.com>
Date:   Wed Oct 9 14:31:12 2024 -0700

    Support absolutePath copy files action (tuist#6642)

commit 06f3f42
Author: Antti Laitala <133648611+anlaital-oura@users.noreply.github.com>
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] <support@github.com>
    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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2938081
Author: Marek Fořt <marekfort@me.com>
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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 52f7ce6
Author: Marek Fořt <marekfort@me.com>
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 <annaliseirene@msn.com>
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 <marekfort@me.com>
Date:   Tue Oct 8 14:59:53 2024 +0200

    Migrate FileSystem.copy to FileHandler (tuist#6830)

commit e0c4edf
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
Date:   Tue Oct 8 12:35:50 2024 +0200

    Preserve directories on tuist clean (tuist#6832)

commit 8355fd3
Author: Marek Fořt <marekfort@me.com>
Date:   Tue Oct 8 11:44:21 2024 +0200

    Fix ios_app_with_frameworks tests (tuist#6831)

commit 341cbbc
Author: Marek Fořt <marekfort@me.com>
Date:   Tue Oct 8 09:39:09 2024 +0200

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

commit e862cc4
Author: Marek Fořt <marekfort@me.com>
Date:   Mon Oct 7 18:38:06 2024 +0200

    Fix caching for unused platforms (tuist#6824)

commit 8336a9f
Author: Marek Fořt <marekfort@me.com>
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 <fortmarek@users.noreply.github.com>
Date:   Mon Oct 7 14:34:10 2024 +0000

    [Release] [skip ci] Tuist App app@0.2.0

commit 01012dc
Author: Marek Fořt <marekfort@me.com>
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 <45801227+rofle100lvl@users.noreply.github.com>
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 <df@bendingspoons.com>
    Co-authored-by: Marek Fořt <marekfort@me.com>

commit 4d87946
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
Date:   Sat Oct 5 11:26:12 2024 +0200

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

commit fd959e5
Author: Marek Fořt <marekfort@me.com>
Date:   Fri Oct 4 19:14:34 2024 +0200

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

commit f6355dc
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
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 <45801227+rofle100lvl@users.noreply.github.com>
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 <marekfort@me.com>

commit 6dbaba7
Author: Marek Fořt <marekfort@me.com>
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 <fortmarek@users.noreply.github.com>
Date:   Thu Oct 3 11:24:01 2024 +0000

    [Release] [skip ci] Tuist App app@0.1.2

commit 2de0e96
Author: Taha Tesser <tessertaha@gmail.com>
Date:   Thu Oct 3 13:58:56 2024 +0300

    fix: rename macOS app build (tuist#6802)

commit 8984eac
Author: Mike Simons <waltflanagan@users.noreply.github.com>
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 <marekfort@me.com>
Date:   Wed Oct 2 12:05:20 2024 +0200

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

commit 0d47a0e
Author: Marek Fořt <marekfort@me.com>
Date:   Wed Oct 2 11:31:14 2024 +0200

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

commit e057e62
Author: Marek Fořt <marekfort@me.com>
Date:   Wed Oct 2 09:33:18 2024 +0200

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

commit 964a370
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
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 <marekfort@me.com>
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 <fuzza@macpaw.com>
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 <marekfort@me.com>
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 <323908+rock88@users.noreply.github.com>
Date:   Tue Oct 1 11:04:56 2024 +0300

    Sort load-plugin commands (tuist#6763)

    Co-authored-by: fortmarek <marekfort@me.com>

commit 94277b2
Author: Oleksii Faizullov <alex.fuzza@gmail.com>
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 <df@bendingspoons.com>

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 <49520876+TamarMilchtaich@users.noreply.github.com>
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 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 <fortmarek@users.noreply.github.com>
Date:   Fri Oct 11 16:18:14 2024 +0000

    [Release] [skip ci] Tuist App app@0.3.0

commit 593a0d9
Author: Marek Fořt <marekfort@me.com>
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 <barbari100@gmail.com>
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 <44860045+DevVenusK@users.noreply.github.com>
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 <hyosung@finda.co.kr>

commit 14387a1
Author: Pedro Piñera Buendía <663605+pepicrft@users.noreply.github.com>
Date:   Thu Oct 10 17:09:59 2024 +0200

    Fix a broken link (#6853)

commit 42505ee
Author: Marek Fořt <marekfort@me.com>
Date:   Thu Oct 10 14:33:12 2024 +0200

    Fix implicit external dependencies (#6850)

commit 55fd38e
Author: Pedro Piñera Buendía <663605+pepicrft@users.noreply.github.com>
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 <release@tuist.io>
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 <663605+pepicrft@users.noreply.github.com>
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 <marekfort@me.com>
Date:   Thu Oct 10 11:23:36 2024 +0200

    Change contact link to community forum (#6846)

commit 2c51d7b
Author: Gabriel Liévano <811827+rgnns@users.noreply.github.com>
Date:   Wed Oct 9 14:31:12 2024 -0700

    Support absolutePath copy files action (#6642)

commit 06f3f42
Author: Antti Laitala <133648611+anlaital-oura@users.noreply.github.com>
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] <support@github.com>
    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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2938081
Author: Marek Fořt <marekfort@me.com>
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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 52f7ce6
Author: Marek Fořt <marekfort@me.com>
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 <annaliseirene@msn.com>
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 <marekfort@me.com>
Date:   Tue Oct 8 14:59:53 2024 +0200

    Migrate FileSystem.copy to FileHandler (#6830)

commit e0c4edf
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
Date:   Tue Oct 8 12:35:50 2024 +0200

    Preserve directories on tuist clean (#6832)

commit 8355fd3
Author: Marek Fořt <marekfort@me.com>
Date:   Tue Oct 8 11:44:21 2024 +0200

    Fix ios_app_with_frameworks tests (#6831)

commit 341cbbc
Author: Marek Fořt <marekfort@me.com>
Date:   Tue Oct 8 09:39:09 2024 +0200

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

commit e862cc4
Author: Marek Fořt <marekfort@me.com>
Date:   Mon Oct 7 18:38:06 2024 +0200

    Fix caching for unused platforms (#6824)

commit 8336a9f
Author: Marek Fořt <marekfort@me.com>
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 <fortmarek@users.noreply.github.com>
Date:   Mon Oct 7 14:34:10 2024 +0000

    [Release] [skip ci] Tuist App app@0.2.0

commit 01012dc
Author: Marek Fořt <marekfort@me.com>
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 <45801227+rofle100lvl@users.noreply.github.com>
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 <df@bendingspoons.com>
    Co-authored-by: Marek Fořt <marekfort@me.com>

commit 4d87946
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
Date:   Sat Oct 5 11:26:12 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (#6816)

commit fd959e5
Author: Marek Fořt <marekfort@me.com>
Date:   Fri Oct 4 19:14:34 2024 +0200

    Update tuist in .mise.toml (#6814)

commit f6355dc
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
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 <45801227+rofle100lvl@users.noreply.github.com>
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 <marekfort@me.com>

commit 6dbaba7
Author: Marek Fořt <marekfort@me.com>
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 <fortmarek@users.noreply.github.com>
Date:   Thu Oct 3 11:24:01 2024 +0000

    [Release] [skip ci] Tuist App app@0.1.2

commit 2de0e96
Author: Taha Tesser <tessertaha@gmail.com>
Date:   Thu Oct 3 13:58:56 2024 +0300

    fix: rename macOS app build (#6802)

commit 8984eac
Author: Mike Simons <waltflanagan@users.noreply.github.com>
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 <marekfort@me.com>
Date:   Wed Oct 2 12:05:20 2024 +0200

    Fix tuist generate with an xcmappingmodel resource (#6795)

commit 0d47a0e
Author: Marek Fořt <marekfort@me.com>
Date:   Wed Oct 2 11:31:14 2024 +0200

    Add dedicated fixture for showcasing Realm integration (#6793)

commit e057e62
Author: Marek Fořt <marekfort@me.com>
Date:   Wed Oct 2 09:33:18 2024 +0200

    Fix tuist init due to missing ProjectDescriptionHelpers (#6792)

commit 964a370
Author: Marek Fořt <marekfort@me.com>
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 <marekfort@me.com>
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 <marekfort@me.com>
Date:   Tue Oct 1 17:16:09 2024 +0200

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

commit eca507f
Author: Oleksii Faizullov <fuzza@macpaw.com>
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 <marekfort@me.com>
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 <323908+rock88@users.noreply.github.com>
Date:   Tue Oct 1 11:04:56 2024 +0300

    Sort load-plugin commands (#6763)

    Co-authored-by: fortmarek <marekfort@me.com>

commit 94277b2
Author: Oleksii Faizullov <alex.fuzza@gmail.com>
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 <df@bendingspoons.com>

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 <49520876+TamarMilchtaich@users.noreply.github.com>
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 <e.babayan@okko.tv>
Co-authored-by: fortmarek <marekfort@me.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IPA Tuist Preview support

2 participants