Skip to content

Latest commit

 

History

History
2417 lines (1586 loc) · 174 KB

CHANGELOG.md

File metadata and controls

2417 lines (1586 loc) · 174 KB

Changelog

3.28.0 - 2023-10-03

Added

Fixed

  • Fix limit mergeable to framework instead of dynamic library #5453 by @AlbGarciam
  • Generate TuistStrings+Module for correct localisation strings file #5454 by @leszko11
  • Fix iOS min deployment version for Dependencies.swift in Xcode 15 #5455 by @danyf90
  • Fix linking of precompiled static xcframeworks that are transitive dependencies of a static framework #5459 by @pepicrft

3.27.1 - 2023-09-21

Fixed

3.27.0 - 2023-09-19

Added

Fixed

  • Fix missing input file paths in generated script build phases #5424 by @pepicrft
  • Fix cache issues when the graph contains transitive static libraries and frameworks #5412 by @pepicrft

3.26.0 - 2023-09-12

Added

Fixed

3.25.0 - 2023-09-04

Changed

  • Hoist tuistfixturegen to the root and rename it to tuistfixturegenerator #5378 by @pepicrft

Added

3.24.0 - 2023-08-29

Changed

Added

  • Add support for TUIST_CLOUD_URL to override the default Cloud URL #5368 by @fortmarek

Fixed

3.23.1 - 2023-08-17

Fixed

3.23.0 - 2023-08-16

Changed

  • Multi-Platform support - Phase 1: Introduce TuistGraph.Destination and migrate TuistGraph.Target to use it #5132 by @waltflanagan

Added

Fixed

  • Fix tuist cache warm --xcframeworks of SPM frameworks due to missing macCatalyst availability #5302 by @MontakOleg

Unreleased

Breaking

  • Multi-platform / Multi-destination prep work will cause the following build settings to no longer be overridable in xcconfigs. This is to ensure the upcoming feature can be more predictable and reliable. The .deploymentTarget() API can be used to control those settings in the interim, please report any issues you may encounter related to this.
    • SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD
    • SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD
    • SUPPORTS_MACCATALYST

3.22.0 - 2023-07-31

Fixed

3.21.1 - 2023-07-13

Changed

  • Update TEST_HOST to use BUNDLE_EXECUTABLE_FOLDER_PATH from Xcode 14 #5289 by @waltflanagan

Fixed

3.21.0 - 2023-07-11

Changed

Added

Fixed

  • Mark bundle product type doesn't support sources for all platforms #5229 by @serejahh
  • Fixed a bug where turning on and off the rendering of markdown files in Workspace config wouldn't turn off rendering properly and would stay in read-only mode #5261 by @Buju77.
  • Fixed code generation when target name starts with non alphanumeric character #5256 by @dankinsoid

3.20.0 - 2023-05-31

Changed

  • Bump minimum required Xcode version to 14.1 for client use and 14.3 for development #5201 by @thedavidharris

Added

Fixed

  • chore: Removed BundleExecutableKey from Info.plist for watchOS bundles #5194 by @griches
  • Improve error message when tuist generate is called without calling tuist fetch first #5193 by @mustiikhalil

3.19.0 - 2023-04-29

Added

  • Add support for watchOS extension to have WidgetKit extension dependencies #5153 by @griches
  • Support for SwiftUI font in font template #5168 by @L-j-h-c
  • Support for custom shell path in ExecuteAction #5154 by @JCSooHwanCho

Fixed

  • Exclude Swift Package build directory from manifest search #5143 by @ajevans99
  • Fix errors when archiving projects with static XCFrameworks #5157 by @kwridan

3.18.0 - 2023-04-14

Added

  • Add support for disabling Mac (designed for iOS) destination for iOS deployment target #5095 by @TheInkedEngineer

Fixed

  • Fix link phase for tvOS top shelf extension #5119 by @sh-a-n
  • Ensure static precompiled dependencies are only linked in targets that support linking #5107 by @kwridan

3.17.0 - 2023-03-12

Added

Fixed

  • Consider system architecture when computing macOS target hashes #5064 by @danyf90
  • Update the Info.plist default for iOS for Xcode 14.2 #5067 by @ronanociosoig-200
  • Fix CoreData model when xcdatamodel file has a name different from the xcdatamodeld folder #5049 by @danyf90
  • Fix for tuist fetch not failing when run outside of a Tuist project #5082 by @havebeenfitz

3.16.0 - 2023-02-09

Changed

  • Sets sending of analytics to cloud dashboard as default behavior #4942 by @Primecutz

Added

  • Support for defining a dependency file in run script phases #4940 by @a-sarris
  • Add cloud init command #4976 by @fortmarek
  • Add support for language and region to autogenerated schemes #4983 by @olejnjak
  • Support for custom release URL for remote plugins #4944 by @mstfy
  • Support for embedding a CLI app within a macOS application #5023 by @serejahh

Fixed

  • Fix Cloud analytics data race #4945 by @fortmarek
  • Fix support for template attributes located in a remote git repository in tuist init #4971 by @andruvs
  • Support for period (.) character in Target.productName #4985 by @Lilfaen
  • Fix xcframeworks caching for frameworks which include documentation catalogs #4986 by @waltflanagan
  • Add GraphLinter support for watchOS app appExtension targets #5025 by @alexanderwe
  • Fix color accessor when deployment target is below the SwiftUI one #5035 by @danyf90

3.15.0 - 2022-12-19

Added

  • Add support for environment variables and launch arguments in test actions #4879 by @euriasb
  • Add support for .rcproject source files #4925 by @BenjaminPrieur
  • Add TargetDependency.target() helper accepting a target instance #4930 by @danyf90

Fixed

3.14.0 - 2022-11-18

Added

  • Add default known regions in project options #4867 by @spqw

Fixed

3.13.0 - 2022-11-05

Added

  • Add SwiftUI support to default assets resource synthesizer #4838 by @kyungpyoda

Fixed

  • Fix extra Target configurations are generated when Project has custom configurations #4811 by @francuim-d
  • When tuist chooses a simulator device while building, make sure it's available #4848 by @ezraberch
  • Fix loading of stencils using {% extends %} #4844 by @devyhan
  • Update Community Url in Constants.swift file #4836 by @shahzadmajeed

3.12.1 - 2022-10-19

Changed

Fixed

  • Fix support for master.key with final newline #4782 by @mfcollins3
  • Make tuistenv ignore empty .tuist-bin folder #4793 by @ezraberch
  • Fix tuist install when missing trailing zero #4797 by @danyf90
  • Preserve target order defined in Project.swift when generating project #4810 by @moritzsternemann
  • Fix for resource synthesizers not added to the tuist edit project #4822 by @devyhan
  • Fix parsing of "1" and "0" as String from environment #4816 by @danyf90
  • Use relative path in generated Package.swift #4815 by @danyf90
  • Fix regression on SwiftPackageManager packages defining file resources with copy rule #4812 by @alexanderwe

3.12.0 - 2022-09-25

Added

  • Add support for Xcode 14 compatible watch application targets #4658 by @kwridan
  • Add support for watchOS app extension dependencies #4773 by @kwridan

Fixed

  • Allow AppClip tests and their associated AppClip to include the same static framework #4766 by @regularberry
  • Fix SwiftPackageManager copy rule parsing #4733 by @alexanderwe
  • Fix warnings in dependencies project generated with Xcode 14 #4770 by @danyf90

3.11.0 - 2022-09-15

Added

  • Add support for performanceAntipatternChecker SchemeDiagnosticsOptions #4740 by @danyf90

Fixed

3.10.0 - 2022-08-20

Changed

Added

Fixed

  • Fix for Resource targets not being excluded by caching when focusing on their source target #4669 by @LorDisturbia
  • Fix for computing hash of target scripts with output files #4670 by @danyf90

3.9.0 - 2022-07-30

Changed

Added

Fixed

  • Pass system environment variables when executing custom command #4611 by @woohyunjin06
  • Fix for tuist clean dependencies cleaning also the Tuist/Dependencies/Lockfiles folder #4646 by @danyf90

3.8.0 - 2022-07-03

Changed

  • Retry failed remote cache request once on error #4569 by @danyf90

Added

Fixed

  • Fix dispatcher error printed when command execution is short (for example, tuist version) #4565 by @danyf90
  • Delete old tuistenv when updating #4579 by @ezraberch
  • Fetch remote plugins when loading them #4587 by @danyf90
  • Fix resource bundle signing error when archiving with Xcode 14 beta #4588 by @kwridan

3.7.0 - 2022-06-19

Changed

Added

Fixed

3.6.0 - 2022-06-11

Fixed

  • Wait for analytics to finish when on CI #4506 by @fortmarek
  • Fix check for graphviz availability when not installed through brew #4516 by @nagra
  • Fix handling of --skip-external-dependencies parameter in tuist graph command when --format json is specified #4517 by @GermanVelibekovHouzz
  • Fix crash during tuist cache warm when cloud is configured and a lot of targets are present in the project #4533 by @danyf90
  • Fix XCConfig path for swift package dependencies #4536 by @shahzadmajeed
  • Fix default resources warnings for local packages #4530 by @danyf90

3.5.0 - 2022-05-29

Changed

  • Avoid generated file name conflicts by prepending Tuist to them #4478 by @danyf90

Added

  • Feature: Add four new SettingsTransformers #4427 by @dogo
  • Support for custom Project.Options for swift packages in Dependencies.swift #4487 by @shahzadmajeed

Fixed

  • Fix selectedLauncherIdentifier when attachDebug is false in LaunchAction and TestAction #4458 by @Andrea-Scuderi
  • Fix for importing Firebase 9.x though SwiftPackageManger in Dependencies.swift #4456 by @danyf90
  • Fixed rendering of generated Info.plist in Xcode #4493 by @mikchmie
  • Avoid pruning schemes with test plans #4495 by @danyf90
  • Fix showing cloud errors #4480 by @fortmarek
  • Generate Package.swift with correct format when custom swift version is specified #4503 by @danyf90

3.4.0 - 2022-05-14

Changed

Added

Fixed

3.3.0 - 2022-04-26

Added

  • Add support for enabling markdown rendering in Workspace.swift for README files #4373 by @jesus-mg-ios
  • Sending the whole command to tuist analytics #4383 by @fortmarek

Fixed

  • Fix support for frameworks as dependency of tvOS frameworks #4184 by @zdnk
  • Fix for mapping excluding of single SwiftPackageManager resources #4368 by @danyf90

3.2.0 - 2022-04-11

Changed

  • Disable autogenerated schemes for SwiftPackageManager dependencies. Configure schemes from your Project.swift or from Xcode in case you need them #4282 by @danyf90

Fixed

  • Fix SwiftPackageManager dependencies mapping when it supports Mac Catalyst #4309 by @danyf90
  • Fix importing ViewInspector from Dependencies.swift #4323 by @unxavi
  • Fix for duplicated settings (for example, -Xcc) incorrectly removed #4325 by @a-sarris
  • Fix for missing source files when file extension is not lowercase #4343 by @ffittschen

3.1.0 - 2022-03-28

Added

Fixed

  • Fix linking of staticFramework in messagesExtensions #4211 by @paulsamuels
  • Fix ignored Workspace generation when Project exists on the same directory #4236 by @adellibovi
  • Fix for incorrect bundle when using generated resource accessors #4258 by @kwridan
  • Fix generating project with custom configurations (other than Debug and Release) via SPM packages #4259 by @mstfy

3.0.1 - Bravissimo

Added

  • Add marketingVersion(_ version:) to SettingsDictionary extension to set MARKETING_VERSION in Build Settings. #4194 by @dogo
  • Add debugInformationFormat(_ format:) to SettingsDictionary extension to set DEBUG_INFORMATION_FORMAT in Build Settings. #4194 by @dogo

Fixed

3.0.0 - Bravo

Changed

  • Breaking Tuist plugins 2.0 #3492 by @fortmarek
  • Breaking tuist generate automatically opens the generated project. #3912 by @danyf90:
  • Motivation:: Most of the times you want to open the project after generating it.
  • Migration: If you need to generate the project without opening it, just pass --no-open to tuist generate.
  • Breaking add type parameter to TargetDependency.sdk #3961 by @danyf90
  • Migration: Add the type parameter where defining sdk target dependencies and remove both the extension and the lib prefix from the name
  • Breaking move disableBundleAccessors and disableSynthesizedResourceAccessors from Config.swift to Project.ProjectOption #3963 by @danyf90.
  • Motivation: Being able to define the option at the project level
  • Migration: Move the disableBundleAccessors and disableSynthesizedResourceAccessors from Config.swift to Project.ProjectOption
  • Breaking replace SourceFileGlob initializer with static .glob method #3960 by @danyf90
  • Migration: Use the .glob method instead of the initializer
  • Breaking minimum Xcode version and macOS version are Xcode 13.0 and macOS 12.0 #4030 by @adellibovi
  • Motivation: Old versions usage is less then 5%.
  • Breaking TargetScript.Script cases .tool(_ path: String, _ args: [String]) and .scriptPath(_ path: Path, args: [String]) are now .tool(path: String, args: [String]) and .scriptPath(path: Path, args: [String]) #4030 by @adellibovi
  • Motivation: It enabled to get rid of custom Codable conformance.
  • Breaking the used tuist version and the manifests compilation times are no longer printed at default log level. Use the --verbose flag to print them. #4052 by @danyf90
  • Breaking rename *-Project* autogenerated schemes to *-Workspace* #4089 by @danyf90
  • Motivation: The schemes are referred to the whole workspace, not to a specific project
  • Migration: Use the *-Workspace* scheme instead
  • Breaking move Config.GenerationOptions.autogeneratedSchemes and Config.GenerationOptions.enableCodeCoverage options to Workspace.GenerationOption.autogeneratedWorkspaceSchemes
  • Motivation: They control workspace level options, so they are better suited in the workspace manifest
  • Breaking change automatic schemes generation to use ProjectOption.AutomaticSchemesGrouping.byName grouping
  • Motivation: Generated schemes now groups targets together better, reducing the number of generated schemes
  • Migration: If the new default don't fit your needs, manually generate your schemes or try another ProjectOption.AutomaticSchemesGrouping option
  • Breaking refactor Project.options to be a struct instead of an enum #4104 by @danyf90
  • Motivation: A struct better represents the semantic of the type
  • Breaking refactor Config.generationOptions to be a struct instead of an enum #4109 by @danyf90
  • Motivation: A struct better represents the semantic of the type
  • Breaking remove xcodeProjectName, organizationName, and developmentRegion from Config.GenerationOptions #4131 by @danyf90
  • Migration: Configure them in Project instead or define helpers to share the value across projects
  • Breaking move Config.GenerationOptions.disableShowEnvironmentVarsInScriptPhases to Project.Options #4131 by @danyf90
  • Motivation: It is related to the project generation
  • Migration: Configure it in Project.Options instead
  • Breaking move Config.GenerationOptions.lastXcodeUpgradeCheck to Workspace.GenerationOptions #4131 by @danyf90
  • Motivation: It is related to the workspace generation
  • Migration: Configure it in Worksapace.GenerrationOptions instead
  • Add support for configuring code coverage and testing options at the project level #4090 by @danyf90
  • Add more detailed messaging for errors during manifest loading #4076 by @luispadron
  • Deprecate legacy SPM support via Project.packages #4112 by @danyf90
  • Improve performance of tuist generate when cache is used #4146 by @adellibovi

Removed

  • Breaking remove focus command and merge its functionality inside generate. #3912 by @danyf90:
  • Motivation:: The command were sharing a lot of responsibilities, and having a single one provides a cleaner CLI.
  • Migration: Instead of using focus, just use generate passing the targets to it. If you want to avoid using caching, you can pass --no-cache to tuist generate.
  • Breaking remove the tuist lint code command #4001 by @laxmorek
  • Migration: Use the swiftlint plugin instead. Read more about plugins here.
  • Breaking remove the tuist lint project command #4001 by @laxmorek
  • Motivation: tuist manifests/graphs are linted during generation (the tusit generate command), no need to keep it separately.
  • Breaking remove deprecated initializers for FileLists, Headers, and HTTPURLResponse #3936 by @danyf90
  • Migration: Use non deprecated initializers

Fixed

  • Fix dependencies not fetching using Swift Package Manager 5.6 #4078 by mikchmie
  • Fix clean tuist test for project with resources #4091 by @adellibovi
  • Fix tuist graph --skip-external-dependencies for Dependencies.swift dependencies #4115 by @danyf90 & #4124 by @laxmorek
  • Fix envversion command not printing the tuist env version #4126 by @takinwande
  • Fix warning when importing ProjectDescription during tuist edit. It was caused by .swiftsourceinfo files being added to the release artifact #4132 by @luispadron
  • Remove default MacCatalyst support when framework deployment target is set to iOS and/or iPad #4134 by @TheInkedEngineer
  • Fix loading of external dependencies in nested projects #4157 by @alexanderwe

Added

  • Add support for umbrellaHeader parameter to Headers to get list of public headers automatically. Also added new static functions in Headers for most popular cases with umbrella header #3884 by @pavel-trafimuk
  • Add isExternal property to ProjectAutomation.Project and TuistGraph.Project that indicates whether a project is imported through Dependencies.swift. #4155 by @laxmorek
  • Add swiftOptimizeObjectLifetimes(_ enabled:) to SettingsDictionary extension to set SWIFT_OPTIMIZE_OBJECT_LIFETIME in Build Settings. #4171 by @kyungpyoda

2.7.2

2.7.1

2.7.0 - Cancun

Changed

  • Use GitHub tags (via git ls-remote) to determine the latest Tuist version when installing/updating Tuist #3985 by @ezraberch

Added

  • Add support for .docc file types #3982 by @Jake Prickett
  • Add a new test argument --retry-count <number> to retry failed tests of times until success #4021 by @regularberry
  • Add ability to specify as a command line argument, the Xcode version to use when bundling/releasing tuist and its libraries #3957 by @hisaac
  • Add automatic mapping of product and settings for known SwiftPackageManager libraries #3996 by @danyf90

Fixed

  • Fix issue where test results were not being cached if a scheme was specified in the tuist test command #3952 by @hisaac
  • Fix for target references within workspace scheme pre/post actions #3954 by @kwridan
  • Fix SPM mapping for GCC_PREPROCESSOR_DEFINITIONS definitions #3995 by @adellibovi
  • Fix archiving iOS target for Mac Catalyst #3990 by @orbitekk
  • Fix mark libraries depending on XCTest through ENABLE_TESTING_SEARCH_PATHS setting as not cacheable #4012 by @danyf90
  • Fix missing embedded dependencies in App Clip targets #4033 by @kwridan
  • Fix Dependencies.swift not able to import plugins 4018 by @luispadron

2.6.0 - Havana

Changed

  • Remove duplicate bundle identifier lint warning #3914 by @danyf90
  • Update version requirement for swift-argument-parser package from .upToNextMajor(from: "0.4.3") to .upToNextMajor(from: "1.0.0") #3949 by @laxmorek

Added

Fixed

  • Improve tuist focus execution time by avoiding redundant hashing for target dependencies #3947 by @adellibovi
  • Avoid building dependent test target when not needed during tuist cache warm #3917 by @danyf90
  • Fix unit test failures when test host requires codesigning #3924 by @hisaac
  • Fix circular dependency lint #3876 by @adellibovi
  • Fix Xcode developer SDK root path for watchOS platform #3876 by @orbitekk
  • Fix tuist edit compilation when building local helper modules that include remote plugins #3918 by @luispadron

2.5.0 - Gestalt

Changed

  • Update SwiftUI template #3840 by @ezraberch
  • Add SWIFT_SUPPRESS_WARNINGS setting to SwiftPackageManager generated project to suppress warnings from dependencies defined in Dependencies.swift #3852 by @wattson12

Added

Fixed

  • Fix shell completion script generated in directory containing .tuist_version file #3804 by @mikchmie
  • tuist cache print-hashes not working with relative paths #3892 by @erkekin
  • Fix argument parsing errors handling in tuistenv #3905 by @pepicrft.
  • Fix crash when running tuist build with TUIST_CONFIG_VERBOSE=1 #3752 by @fortmarek

2.4.0 - Lune

Added

  • Add support for excluding parameter to FileList #3773 by @pavel-trafimuk
  • Add ability to define preActions and postActions for RunAction and ProfileAction #3787 by @hisaac
  • Add ability to control whether a debugger is attached to an app or test process by setting attachDebugger on RunAction or TestAction, respectively [#3813])tuist#3813) by @svenmuennich
  • Add support for generating the WorkspaceSettings.xcsettings file and explicitly disabling or enabling automatic schema generation. #3832 by @jakeatoms

Fixed

  • Fix default template to work with tvos platform #3759 by @ezraberch
  • Fix curl in the installer script so that it fails if unable to download the Tuist release assets. #3803 by @luispadron

2.3.2 - Discoteque

Fixed

  • Fixed persisting generated Package.swift and Cartfile #3729 by @thedavidharris
  • Improve error message in case ModuleMapMapper fails to retrieve a dependency #3733 by @danyf90
  • Fix resolution of external dependencies with products including binary targets #3737 by @danyf90

Changed

Added

  • Add uiTests target support for tvOS. #3756 by @sujata23
  • Added ability to control parallelizable and randomExecutionOrdering for autogenerated test targets #3755 by @wattson12

2.3.1 - Avantgarde

Fixed

  • Fix release process to make Tuist compatible again with Xcode 12.5 and above #3731 by @mikchmie

2.3.0 - Bender

Changed

  • Focus on project targets when no targets are passed to tuist focus #3654 by @danyf90
  • Make the cache warm command significantly faster by avoid recompiling already in-cache dependency targets #3585 by @danyf90
  • Allow overriding SWIFT_VERSION #3644 by @kwridan
  • The SWIFT_VERSION build setting is now part of the .essential DefaultSettings
  • This aligns its behavior with the rest of the default settings, and allows excluding it if necessary via:
  • Specifying DefaultSettings.none for cases where xcconfig files are used to control all build settings
  • Explicitly excluding it via:
  • DefaultSettings.recommended(excluding: ["SWIFT_VERSION])
  • DefaultSettings.essential(excluding: ["SWIFT_VERSION])
  • Additionally for convenience, Tuist will not set a SWIFT_VERSION target level setting if a project level setting already exists for it

Added

  • Add support for base settings for SwiftPackageManager generated targets. This allows to specify custom settings configurations. #3683 by @danyf90
  • Test targets in autogenerated scheme updated to run in parallel #3682 by @wattson12

Fixed

  • Fixed caching of targets with sdk dependencies #3681 by @danyf90

2.2.1 - Weg

Fixed

2.2.0 - Jinotaj

Changed

  • Breaking Update logic to calculate deployment target for SwiftPackageManager packages not specifying it, and remove no longer used SwiftPackageManagerDependencies.deploymentTargets property #3602 by @danyf90
  • Breaking Update logic to calculate client ID starting from UUID instead of hostname, to avoid collisions #3632 by @danyf90
  • Breaking Removed value for ENABLE_TESTING_SEARCH_PATHS in SPM dependencies. If a target requires a non-default value, you can set it using the targetSettings property in the Dependencies.swift file #3632 by @wattson12
  • Target's initializer now has InfoPlist.default set as the default value for the infoPlist argument #3644 by @hisaac

Added

Fixed

  • Fix handling of TUIST_CONFIG_COLOURED_OUTPUT environment variable #3631 by @danyf90
  • Fix tuist dump config no longer requires to be executed inside the Tuist folder #3647 by @danyf90

2.1.1 - Patenipat

Fixed

2.1.0 - Coloratura

Changed

  • Use cache version instead of Tuist version in target hash calculation #3554 by @danyf90
  • Perform remote cache download and upload concurrently #3549 by @danyf90

Added

  • Add analytics option to Config.Cloud to enable sending analytics event to cloud backend #3547 by @danyf90
  • Add optional manifest argument to tuist dump command, to allow to dump other kinds of manifests #3551 by @danyf90
  • Add device and os options to caching profiles #3546 by @mollyIV
  • Add support for configuring the LastUpgradeCheck of the Xcode project #3561 by @mollyIV
  • Add arbitrarily high LastUpgradeCheck to SwiftPackageManager generated projects to disable warnings #3569 by @danyf90
  • Add isCI parameter to analytics events #3568 by @mollyIV
  • Add Files Resource Synthesizer #3584 by @mollyIV
  • Add support for additional files at the target level #3579 by @danyf90

Fixed

  • Fix a focused project issue for which when focusing a tests target, cached resources are not linked to it. #3571 by @fila95
  • Fix target caching resources linking for extensions. They are now considered runnable targrts (which they are) #3570 by @fila95
  • Fix the way a target is known to be supporting resources, excluding .commandLineTools. #3572 by @fila95
  • Fix Swift Package Manager default resource handling #3295 by @mstfy
  • If present, use coloured output configuration from environment even if it's false #3550 by @danyf90
  • Fix tuist generate performance regression #3562 by @adellibovi
  • Fix SwiftPackageManager dependencies mapping when the dependency contains nested umbrella header #3588 by @danyf90

Removed

2.0.2 - Wald

Fixed

  • Fix caching of targets with module map #3528 by @danyf90
  • Fix SwiftPackageManager local xcframework mapping #3533 by @danyf90
  • Fix mapping of SwiftPackageManager dependencies using alternative default source folders #3532 by @danyf90

2.0.1 - Tarifa

Fixed

2.0.0 - Ikigai

Changed

  • Breaking made constructors from scheme action models internal and exposed static methods for initializing them instead. For example, TestAction.init(..) becomes TestAction.testAction(...). #3400 by @pepibumur:
  • Motivation:: Using static initializers gives us the flexibility to introduce improvements without breaking the API.
  • Migration: Update all the action initializers to use the static methods instead. The name of the static method matches the name of the class but starting with a lowercase.
  • Breaking tuist focus no longer includes automatically related tests and bundle targets as sources. #3501 by @danyf90.
  • Motivation: the behavior might cause to include unwanted targets in some scenario
  • Migration: if you need to include tests and bundle targets as sources, specify them as arguments of the tuist focus command

Removed

  • Breaking .cocoapods target dependency
  • Motivation: .cocoapods's API led users to believe their integration issues were Tuist's fault. Therefore we decided to remove it and make it an explicit action developers need to run after the generation of Xcode projects through Tuist.
  • Migration: we recommend wrapping the the generation of projects in a script that runs pod install right after generating the project: tuist generate && pod install. Alternatively, you might consider adopting Swift Package Manager and using our built-in support for package dependencies through the Dependencies.swift manifes tfile.
  • Breaking Support for deprecated TuistConfig.swift has been ended. Define your configuration using Config.swift. Check documentation for details. #3373 by @laxmorek
  • Breaking Support for deprecated Template.swift has been ended. Define your templates using any name that describes them (name_of_template.swift). Check documentation for details. #3373 by @laxmorek
  • Migration: we recommend wrapping the generation of projects in a script that runs pod install right after generating the project: tuist generate && pod install. Alternatively, you might consider adopting Swift Package Manager and using our built-in support for package dependencies through the Dependencies.swift manifest file.
  • Breaking simplified TestAction's methods for creating an instance. #3375 by @pepibumur:
  • Motivation: there was some redundancy across all the methods to initialize a TestAction. To ease its usage, we've simplified all of them into a single method. It takes the test plans as an array of Paths and the configuration as an instance of PresetBuildConfiguration. We've also made the init constructor internal to have the flexibility to change the signature without introducing breaking changes.
  • Migration: In those places where you are initializing a TestAction, update the code to use either the .testActions or the .targets methods.
  • Breaking removed the tuist doc command. #3401 by @pepibumur
  • Motivation: the command was barely used so we are removing it to reduce the maintenance burden and reduce the binary size.
  • Migration: you can use Tuist tasks or Fastlane to run swift-doc and generate documentation from your generated projects.
  • Breaking removed PresetBuildConfiguration in favour of ConfigurationName. #3400 by @pepibumur:
  • Motivation: Making the configuration a type gives the developers the flexibility to provide their list of configurations through extensions. For example, ConfigurationName.beta.
  • Migration: Scheme actions are now initialized passing a configuration argument of type ConfigurationName. Note that it conforms ExpressibleByStringLiteral so you can initialize it with a string literal.
  • Breaking removed the tuist up command in favour of a sidecar CLI tool, tuist-up that can be installed independently.
  • Motivation: provisioning environments for working with Xcode projects was outside of the scope of the project. Moreover, it added up to our triaging and maintenace work because errors that bubbled up from underlying commands made people think that they were Tuist bugs.
  • Migration: as suggested here, turn your Setup.swift into a up.toml and use tuist-up instead.
  • Breaking Scheme TestAction options have been consolidated together under a new type TestActionOptions.
  • Motivation: This makes the API consistent with some of the other Scheme actions as well as how it appears in the Scheme editor.
  • Migration: Use TestAction.targets(options: .options(language:region:codeCoverage:codeCoverageTargets))
  • TestAction.language > TestActionOptions.language
  • TestAction.region > TestActionOptions.region
  • TestAction.codeCoverage > TestActionOptions.codeCoverage
  • TestAction.codeCoverageTargets > TestActionOptions.codeCoverageTargets
  • Breaking removed deprecated TUIST_* configuration variables. #3493 by @danyf90.
  • Motivation:: They have been replaced by the corresponding TUIST_CONFIG_* variables instead.
  • Migration: Use the corresponding TUIST_CONFIG_* variables instead.
  • Breaking Settings is now publicly initialized via a new static method .settings().
  • Motivation: Using static initializers gives us the flexibility to introduce improvements without breaking the API.
  • Migration: Replace settings: Settings(base: ["setting": "value"]) with settings: .settings(base: ["setting": "value"])
  • Breaking CustomConfiguration has been merged with Configuration.
  • Motivation: Simplify the API and reduce confusion between Configuration and CustomConfiguration.
  • Migration: Replace let configurations: [CustomConfiguration] = [ ... ] with let configurations: [Configuration] = [ ... ].
  • Breaking Specifying custom build settings files for default configurations via Settings(base:debug:release:) has changed.
  • Motivation: To support the CustomConfiguration API simplification.
  • Breaking Specifying xcconfig files for default configurations via Settings(base:debug:release:) has changed.
  • Motivation: To support the CustomConfiguration API simplification.
  • Breaking Rename target actions to scripts to align with Xcode's terminology #3374 by @pepibumur
  • Motivation To align with Xcode's terminology used for the build phase counterpart, scripts.

1.52.0 - Pelae

Changed

  • Update SwiftGen to support generating custom SF Symbols (a.k.a. symbolset). #3521 by @hisaac
  • Improve performance of tuist dependencies fetch for SwiftPackageManager by loading Package.swift information in parallel. #3529 by @danyf90

Added

  • Add CodeCoverageMode to Config so targets for code coverage data gathering can be specified in autogenerated project scheme #3267 by @olejnjak

1.51.1

Added

  • Add name parameter to remote cache API calls. #3516 by @danyf90

Fixed

  • Installation failing when intermediate files are present in /tmp/ #3502 by @pepibumur
  • Fix SwiftPackageManager dependencies mapping on Xcode 13 #3499 by @danyf90
  • Make cache hashes of SwiftPackageManager dependencies with modulemap independent from the absolute path of the project #3505 by @danyf90.
  • Fix SwiftPackageManager dependencies mapping on Xcode 13 #3507 by @danyf90
  • Fix compilation on Xcode 13 by updating Xcodeproj #3499 by @danyf90
  • Make cache warm fail if remote cache existence check throws #3508 by @danyf90

Changed

  • Breaking Minimum supported Xcode version for contributors bumped to 12.4. #3499 by @danyf90

1.51.0 - Switch

Changed

  • Improve performance of tuist cache avoiding to hit remote cache if not needed. #3461 by @danyf90
  • Improve performance of tuist cache warm and tusit focus avoiding to compute hashes of targets not going to be cached. #3464 by @danyf90
  • Improve performance of tuist cache warm when using remote cache by parallelizing the target cache checks #3462 by @bolismauro
  • Improve output of tuist cache warm command. #3460 by @danyf90
  • Rename internal configuration environment variables to start with TUIST_CONFIG_ instead of TUIST_ and ignore them when calculating manifests hashes. The old ones are still read if first ones are not found, but they will be removed in 2.0 #3479 by @danyf90

Added

  • Add support for SourceFilesList.codeGen property. #3448 by @pavm035
  • Add more helpful output when ./fourier swift format command fails. #3451 by @hisaac

Fixed

  • Add support for SPM dependencies with . and - in the target name. #3449 by @moritzsternemann
  • Add swift version to the target hash computation. #3455 by @danyf90
  • Add tuist version to the target hash computation. #3455 by @danyf90
  • Fix unauthenticated cache exists responses interpreted as existing build artifact. #3480 by @danyf90
  • Fix .tuistignore not matching relative paths correctly #3456 by @danyf90

1.50.0 - Nature

Changed

  • Breaking Minimum supported Xcode version for contributors bumped to 12.4.
  • Improve speed of tuist edit and improved automatic detection of editable manifests #3416 by @adellibovi.
  • Improve speed of tuist dependencies fetch and tuist dependencies update by performing the dependencies resolution directly in the Tuist/Dependencies folder #3417 by @danyf90.
  • Improve speed of tuist focus and tuist cache warm with a targets list (i.e. tuist focus frameworkX and tuist cache warm frameworkX) by avoiding calculating hashes for non dependent targets #3423 by @adellibovi.
  • Improve speed of tuist generate by updating Xcodeproj #3444 by @adellibovi.

Fixed

  • settings-to-xcconfig migration command produces correct string format. #3260 by @saim80
  • Fix caching of manifests that use plugins #3370 by @luispadron

Added

  • Allow to pass Cloud authentication token via TUIST_CLOUD_TOKEN even when not CI #3380 by @danyf90
  • Support for cache categories argument in tuist clean command #3407 by @danyf90
  • Add tuist dependencies clean command #3417 by @danyf90.
  • Support for floating number (real) value for InfoPlist #3377 by @MarvinNazari
  • Support for shellPath parameter in TargetAction and TargetScript to enable /bin/zsh as shell. #3384 by @DarkoDamjanovic

1.49.2

Fixed

  • tuistenv failing to fetch the latest version from CHANGELOG.md

1.49.1

Fixed

  • tuistenv failing to fetch the latest version from CHANGELOG.md

1.49.0

Added

  • Add default Release caching profile #3304 by @danyf90
  • Add --dependencies-only parameter to tuist cache warm command #3334 by @danyf90
  • Add support for excluding parameter to ResourceFileElement #3363 by @danyf90

Fixed

  • Fix Dependency.swift binary path's with path instead of url. #3269 by @apps4everyone
  • Fix mapping of SPM linker flags #3276 by @danyf90
  • Fix adding Carthage dependencies to Target using TargetDepedency.external #3300 by @laxmorek
  • Fix for missing transitive precompiled static frameworks #3296 by @kwridan
  • Fix unstable graph dependency reference sort #3318 by @kwridan
  • Fix source glob not following directory symlinks #3312 by @LorDisturbia.
  • Fix for ./fourier bundle command when xcodeproj or xcworkspace files are present #3331 by @danyf90
  • Fix for filtering logic for caching dependencies to include dependencies of filtered non-cacheable targets #3333 by @adellibovi
  • Fix for importing Swift Package Manager binary targets from Dependency.swift #3352 by @danyf90
  • Fix for the tuist edit command when the Tuist/Dependencies directory contains "manifest-like" files (Project.swift or Plugin.swift). #3359 by @laxmorek

Changed

  • Get the latest available version from GitHub releases instead of the Google Cloud Storage bucket #3335 by @pepibumur.
  • The install script has been updated to pull the tuistenv binary from the latest GitHub release's assets #3336 by @pepibumur.
  • Remove unneeded BUILD_LIBRARY_FOR_DISTRIBUTION setting when building xcframework for cache #3344 by @danyf90.

1.48.1

Changed

  • The installation of Tuist versions pulls the binaries from the GitHub releases #3255 by @pepibumur.

Fixed

1.48.0 - Packer

Added

  • Support for Swift Package Manager in Dependencies.swift #3072 by @danyf90
  • Add cc as a valid source extension #3273 by @danyf90
  • Add support for localized intent definition files using .strings. #3236 by @dbarden
  • Add TextSettings configuration into Project #3253 by @DimaMishchenko
  • Add language option for RunAction, add SchemeLanguage #3231 by @zzzkk
  • Include instructions to create an GitHub issue for unhandled errors #3278 by @pepibumur.

Fixed

1.47.0 - Mirror

Added

Removed

Changed

  • Remove the sudo requirement for the install and uninstall scripts. #3056 by @luispadron.

Fixed

1.46.1

Fixed

  • Fix failed tuist dependencies fetch/update command when Carthage dependency is imported as binary #3164 by @havebenfitz

1.46.0 - Emeuno

Added

Changed

  • Breaking Minimum supported Xcode version bumped to 12.2.

1.45.1

Fixed

  • Throw error when target given in tuist focus is not found. #3104 by @fortmarek
  • Fixed an issue that the tuist dependencies command may fails for some Carthage dependencies. #3108 by @laxmorek

1.45.0 - Jungle

Added

  • Add tvTopShelfExtension and tvIntentsExtension target product. #2793 by @rmnblm
  • The tuist dependencies command generates a graph.json file for the Carthage dependencies. #3043 by @laxmorek
  • Add --skip-ui-tests parameter to tuist test command #2832 by @mollyIV.
  • Add disableBundleAccessors generation option which disables generating Bundle extensions #3088 by @wojciech-kulik.
  • Support XCFrameworks with missing architectures #3095 by @iainsmith.

Changed

  • Improved cold start time of tuist generate when having multiple projects #3092 by @adellibovi
  • Renamed ValueGraph to Graph #3083 by @fortmarek
  • Fixed a typo on the tuist generate command documentation for argument --skip-test-targets. #3069 by @mrcloud
  • breaking The tuist dependencies command requires the Carthage version to be at least 0.37.0. #3043 by @laxmorek

Removed

  • breaking Remove the CarthageDependencies.Options from the Dependencies.swift manifest model. #3043 by @laxmorek

Fixed

  • --only-current-directory flag for tuist edit #3097 by @fortmarek
  • Fixed tuist bundle when path has spaces #3084 by @fortmarek
  • Fix manifest loading when using Swift 5.5 #3062 by @kwridan
  • Fix generation of project groups and build phases for localized Interface Builder files (.xib and .storyboard) #3075 by @svenmuennich
  • Omit runPostActionsOnFailure scheme attribute when not enabled #3087 by @kwridan

1.44.0 - DubDub

Added

  • Add possibility to share tasks via a plugin #3013 by @fortmarek
  • Add option to Scaffolding for copy folder with option .directory(path: "destinationContainerFolder", sourcePath: "sourceFolder"). #2985 by @santi-d
  • Add possibility to specify version of Swift in the Config.swift manifest file. #2998 by @laxmorek
  • Add tuist run command which allows running schemes of a project. #2917 by @luispadron

Changed

  • Sort build and testable targets in autogenerated scheme for workspace. #3019 by @adellibovi
  • Change product name lint severity to warning. #3018 by @adellibovi

1.43.0 - Peroxide

Added

Changed

Fixed

  • .strings Localization file synthesizers are now consistent and reproducible across multiple generations using the developmentRegion to choose the source one or defaulting to en. #2887 by @fila95
  • Fix tuist scaffold list not listing plugin templates. #2958 by @danyf90.

1.42.0 - Builders

Added

Changed

  • Breaking For some data types (plist, json, yaml and core data) resource synthesizers now group them and let SwiftGen output a single fine instead of one for each resource. #2887 by @fila95
  • Warnings for targets with no source files are now suppressed if the target does contain a dependency or action. #2838 by @jsorge

Fixed

  • .strings Localization file synthesizers are now consistent and reproducible across multiple generations using the developmentRegion to choose the source one or defaulting to en. #2887 by @fila95
  • Fix tuist focus not excluding targets from codeCoverageTargets of custom schemes by @Luis Padron.
  • Fix rubocop warnings #2898 by @fortmarek
  • Add newline to end of generated resource accessor files. #2895 by @Jake Prickett

1.41.0

Added

Changed

  • Improve performance of tuist generate by optimizing up md5 hash generation. #2815 by @adellibovi
  • Speed up frameworks metadata reading using Mach-o parsing instead of file, lipo and dwarfdump external processes. #2814 by @adellibovi

Fixed

  • tuist generate your projects without having to re-open them! 🧑‍💻 [#2828] by @ferologics
  • Fix a bug for which when generating a Resources target from a staticLibrary or staticFramework, the parent's deployment target isn't passed to the new target. #2830 by @fila95
  • Fix .messagesExtension default settings to include the appropriate LD_RUNPATH_SEARCH_PATHS #2824 by @kwridan
  • Fix the link to documented guidelines in pull request template #2833 by @mollyIV.

1.40.0

Added

Changed

  • Add missing disabling of swiftformat and swift-format #2795 by @fortmarek
  • Add support for globbing in build phase input file and file lists as well as output and output file lists. #2686 by @FranzBusch
  • breaking Redesign ProjectDescription.Dependencies manifest model. #2394 by @laxmorek.

Fixed

  • Fixed missing .resolveDependenciesWithSystemScm config option in the PackageDescription portion of tuist #2769 by @freak4pc
  • Fixed running tuist dump for projects with plugins #2700 by @danyf90
  • Fixed issue where associating potential test targets in a target's auto-generated scheme became more restrictive that previous versions. #2797 by @jakeatoms

1.39.1

Fixed

  • Fixed vendor updates not restoring original file permissions #2743 by @davebcn87

1.39.0 - Innovators

Added

  • Add support for disabling Swift Package locking to speed up project generation when using Swift Package Manager #2693 by @jsorge.
  • Added .precondition Up to Setup. #2688 by @kalkwarf
  • Add support for templates in plugins #2687 by @luispadron

Changed

Fixed

1.38.0 - Cold Waves

Added

  • Add support for --no-use-binaries Carthage flag. #2608 by @laxmorek
  • Add support for tuist edit for projects with plugins. #2642 by @luispadron
  • Add support for --only-current-directory option to tuist edit #2648 by @pepibumur

Changed

  • Ensure reusing derived data for tuist test #2563 by @fortmarek
  • Breaking Redesign ProjectDescription.CarthageDependencies manifest model. #2608 by @laxmorek
  • Changed the auto generated scheme heuristic to pick test bundles that have a matching name prefixed with either Tests, IntegrationTests or UITests. #2641 by @FranzBusch
  • Remove building of ProjectDescriptionHelpers for Plugin.swift and Config.swift manifests (not supported for these manifests). #2642 by @luispadron

Fixed

Removed

1.37.0 - Twister

Added

  • Allow using system SCM (for example: Git) when resolving SPM dependencies, instead of Xcode's accounts. #2638 by @freak4pc
  • Add support for simulated location in a run action's options. #2616 by @freak4pc
  • Add option for enabling XCFrameworks production for Carthage in Setup.swift. #2565 by @laxmorek
  • Add support for custom file header templates that are used for built-in Xcode file templates #2568 by @olejnjak

Changed

Fixed

  • Fix incorrect detection of current Core Data model version. #2612 by @freak4pc
  • Ignore .DS_Store files when hashing directory contents #2591 by @natanrolnik.

1.36.0 - Digital Love

Added

  • Support for staticFramework dependencies for appExtensions #2559 by @danyf90
  • Enable Main Thread Checker by default #2549 by @myihsan
  • Add option for enabling XCFrameworks production for Carthage in Dependencies.swift. #2532 by @laxmorek
  • Add --strict to 'lint code' command #2534 by @joshdholtz

Fixed

  • Fix adding framework targets to AppClip #2530 by @sampettersson
  • Make sure security and codesign can access certificates in signing.keychain [#2528]((tuist#2528) by @rist.
  • Expose ResourceFileElements initializer #2541 by @kwridan.
  • Note: This fixes an issue where ResourceFileElements could not be created using variables within helpers

Changed

  • When enabling code coverage, tests targets such as TestMyFrameworkA gather coverage for all targets instead of only TestMyFrameworkA #2501 by @adellibovi
  • Improve tuist generate speed by caching Swift version fetching #2546 by @adellibovi

1.35.0 - Miracle

  • Fix missing linkable products for static frameworks with transitive precompiled dependencies #2500 by @kwridan.

Added

Fixed

  • Fix missing linkable products for static frameworks with transitive precompiled dependencies #2500 by @kwridan.
  • Fix crash when using tuist graph in a project that leverages plugins #2507 by @bolismauro.

Changed

  • Migrate BuildGraphInspector to ValueGraph #2527 by @fortmarek
  • Replace ExpressibleByStringLiteral with ExpressibleByStringInterpolation for ProjectDescription objects by @DimaMishchenko
  • Fix adding framework targets to AppClip by @sampettersson

1.34.0 - Shipit

Added

  • Add support for tuist cache warm to cache a subset of targets via tuist cache warm FrameworkA FrameworkB [#2393]((tuist#2393) by @adellibovi.
  • Add documentation on how to use & create plugins by @luispadron
  • Warn when targets with duplicate bundle identifiers exist per platform #2444 by @natanrolnik.

Fixed

Changed

  • Update post-generation interactors to use the graph traverser #2451 by @pepibumur.

1.33.0 - Plugin

Added

Fixed

  • Fixed homebrew invocation for graph functionality when looking up graphviz installation #2466 by @thedavidharris
  • Fix reading configuration from project if Target.settings is nil #2399 by @danyf90.
  • Fix CoreData project attributes #2397 by @kwridan.

Changed

  • The parameter --path of tuist graph now specifies where the manifest is. To specify the output directory of the graph, use --output-path [#2434]((tuist#2434) by @adellibovi.

1.32.0 - Neubau

Added

  • Generate resource mapping and synthesized Bundle accessors for targets with Core Data models #2376 by @thedavidharris.
  • Support for dynamic library dependencies for command line tool projects #2332 by @danyf90.
  • Disable SwiftFormat in the generated synthesized interface for resources #2328 by @natanrolnik.
  • Implement foundations for caching profiles #2190 by @mollyIV.

Fixed

Changed

  • Improve tuist migration list-targets by sorting using topological order #2383 by @adellibovi.
  • Use project generated for automation and always leverage XXX-Scheme #2057 by @fortmarek
  • Improve the cache warm command significantly (around 20-45 seconds per framework) by using XcodeProjectPathHasher instead of CacheBuildPhaseProjectMapper #2356 by @natanrolnik.
  • Improve performance of project generation by removing unneeded Glob directory cache #2318 by @adellibovi.
  • Extracted graph models into TuistGraph #2324 by @pepibumur.
  • Improved the CI workflows to run only when their logic is impacted by the file changes #2390 by @pepibumur.

1.31.0 - Arctic

Added

  • Add linting for paths of local packages and for URL validity of remote packages #2255 by @adellibovi.
  • Allow use of a single cert for multiple provisioning profiles #2193 by @rist.

Fixed

  • Update failing trying to create the swift-project symbolic link #2244
  • Tuist now correctly parses arm64e architectures in xcframeworks #2247 by @thedavidharris.

1.30.0 - 2021

Fixed

  • Fix import of multiple signing certificates #2112 by @rist.
  • Fix false positive duplicate static products lint rule #2201 by @kwridan.

Added

Changed

1.29.0 - Tutu

Fixed

  • Fix "Embed Frameworks" build phase parameters #2156 by @kwridan.
  • Adjust the project generated for editing to not build for the arm64 architecture #2154 by @pepibumur.
  • Project generation failing when the resources glob includes a bundle #2183 by @pepibumur.

1.28.0

Fixed

  • Missing required module 'XXX' when building project with cached dependencies #2051 by @mollyIV.
  • Fix default generated scheme arguments #2128 by @kwridan
  • Playground files matched by the sources wildcards are added as playgrounds and not groups #2132 by @pepibumur.

Removed

  • Breaking The implicit addition of playgrounds under Playgrounds/ has been removed #2132 by @pepibumur.

1.27.0 - Hawái

Added

Fixed

  • Make watch targets runnable to fix schemes in Xcode 12 #2096 by @thedavidharris
  • Fix framework search paths for SDK dependencies #2097 by @kwridan
  • Fix ValueGraphTraverser.directTargetDependencies to return local targets only #2111 by @kwridan
  • Note: This fixes an issue that previously allowed extension targets to be defined in a separate project (which isn't a supported dependency type)

Changed

  • Generate multiple XXX-Project schemes if there are multiple platforms #2081 by @fortmarek
  • Generators to take in the graph as GraphTraversing instead of Graph #2110 by @pepibumur

1.26.0 - New World

Added

Changed

  • Change launchArguments of Target and RunAction to ordered array so order can be preserved #2052 by @olejnjak.
  • Added Package.swift to some subdirectories to prevent Xcode from including them in the generated Xcode project #2058 by @pepibumur.

Fixed

  • Fixed signing linter for target with bundle identifier derived from build settings #2031 by @leszko11.
  • Fix hashing preaction with path to nil #2074 by @fortmarek
  • Correct the TEST_HOST path for the macOS Platform #2034 by @ferologics

1.25.0 - Charles

Added

  • Add enableCodeCoverage generation option to enable code coverage in automatically generated schemes #2020 by @frijole.)
  • Add support for Command Line Tool targets #1941 by @olejnjak.

1.24.0 - Sol y sombra

Added

Fixed

  • Re-enable tests acceptance tests that were not running on CI #1999 by @pepibumur.
  • Block the process while editing the project and remove the project after the edition finishes #1999 by @pepibumur.
  • Use the simulator udid when building the frameworks for the cache instead of os=latest #2016 by @pepibumur.

1.23.0 - Automaton

Added

  • Allow specifying Development Region via new developmentRegion parameter in Configs GenerationOption. #1062 by @svastven.
  • Require the Config.swift file to be in the Tuist directory #693 by @mollyIV.
  • Mapper for the caching logic to locate the built products directory #1929 by @pepibumur.
  • Extended BuildPhaseGenerator to generate script build phases #1932 by @pepibumur.
  • Extend the TargetContentHasher to account for the Target.scripts attribute #1933 by @pepibumur.
  • Extend the CacheController to generate projects with the build phase to locate the targets' built products directory #1933 by @pepibumur.
  • Add support for appClip #1854 by @lakpa.

Fixed

  • Fixed non-framework/library targets having a header build phase #367 by @eito.
  • Fixed missing profile scheme arguments when specified in manifest #1543 by @lakpa.
  • Fixed cache warming exporting unrelated .frameworks #1939 by @pepibumur.
  • Fixed cache warming building from a clean state for every target #1939 by @pepibumur.
  • Updated swift-doc version to 1.0.0-beta.5 by @facumenzella.

Changed

  • Some renames in the generation logic to make the generation logic easier to reason about #1942 by @pepibumur.
  • Update some Swift dependencies #1971 by @pepibumur.
  • Improve hashing logic to account for files generated by mappers #1977 by @pepibumur.

1.22.0 - Heimat

Changed

Added

  • Allow build phase scripts to disable dependency analysis #1883 by @bhuemer.
  • The default generated project does not include a LaunchScreen storyboard #265 by @mollyIV.

1.21.0 - PBWerk

Added

Changed

  • Improve error message to have more actionable information #921 by @mollyIV.

Fixed

  • Fix calculation of Settings hash related to Cache commands #1869 by @natanrolnik
  • Fixed handling of .tuist_version file if the file had a trailing line break #1900 by @kalkwarf

1.20.0 - Heideberg

Changed

Added

  • Support for caching frameworks instead of xcframeworks #1851

Fixed

  • Skip synthesizing resource accessors when the file/folder is empty #1829 by @fortmarek
  • The redirect after the cloud authentication is not being captured from the CLI #1846 by @pepibumur.

1.19.0 - Milano

Fixed

Added

  • Add Workspace Mappers #1767 by @kwridan
  • Extended Config's generationOptions with .disableShowEnvironmentVarsInScriptPhases. It does what you'd think. #1782 by @kalkwarf
  • Generate xxx-Project scheme to build and test all available targets by #1765 by @fortmarek

Changed

  • The tuist edit command adds Setup.swift and Config.swift to the generated project if they exist. #1745 by @laxmorek

1.18.1 - Manaslu

Fixed

1.18.0 - Himalaya

Fixed

Added

  • Possibility to build schemes that are not part of any entry node #1761 by @fortmarek
  • tuist lint code - command to lint the Swift code using Swiftlint #1682 by @laxmorek
  • tuist doc - command to generate documentation for your modules using SwiftDoc #1683 by @facumenzella

Changed

  • Breaking Command for linting a workspace or a project has been renamed from tuist lint to tuist lint project #1682 by @laxmorek
  • Breaking UpCarthage should perform bootstrap instead of update #1744 by @softmaxsg
  • Add excluding argument to recommended/essential DefaultSettings #1746 by @rist.
  • Synthesize resource interface accessors #1635 by @fortmarek
  • Graph command now adds different colors and shapes for different types of targets and dependencies #1763 by @natanrolnik

1.17.0 - Luft

Changed

  • Breaking tuist focus only works with Project.swift #1739 by @pepibumur.
  • Breaking a target or a list of targets is required for tuist focus #1739 by @pepibumur.
  • Breaking cache is enabled by default in tuist focus #1739 by @pepibumur.

Fixed

1.16.0 - Alhambra

Removed

  • Breaking Support for Xcode 11.3.x and Xcode 11.4.x #1604 by @fortmarek
  • Breaking --cache & --include-sources arguments from tuist generate #1712 by @pepibumur.

Added

  • --open argument to the tuist generate command #1712 by @pepibumur.
  • --no-open argument to the tuist focus command to support disabling opening the project #1712 by @pepibumur.
  • Support for running Tuist through swift project #1713 by @pepibumur.

Fixed

  • Generate the default Info.plist file for static frameworks that only contain resources #1661 by @Juanpe
  • Fix Carthage support for binary dependencies #1675 by @softmaxsg
  • Use profile filename to match targets and configs #1690 by @rist

Changed

1.15.0 - Riga

Changed

Fixed

  • Fix name collision when having multiple templates #1600 by @fortmarek
  • Allow to cache and warm static frameworks too (only dynamic frameworks were cached before) #1590 by @RomainBoulay
  • Add graph visualization in Tuist graph command: "tuist graph --format=png" #1624 by @AndreaCipriani
  • Add support for .xctest dependency for tvOS targets #1597 by @kwridan.
  • Fix missing ui test host applications for apps with "-" characters in their name #1630 by @kwridan.
  • Added @Flag in TuistKit.TuistCommand to improve --help-env discoverability by @facumenzella.

Added

  • Autocompletions support #1604 by @fortmarek
  • Add an acceptance test suite to cover a test cache warm command on a micro-feature architecture kind of application that is fully statically linked #1594 by @RomainBoulay
  • Add support for setting launch arguments at the target level. #1596 by @jeroenleenarts
  • Add Homebrew cask up #1601 by @leszko11

1.14.0 - Spezi

Fixed

  • Disable SwiftLint in the generated synthesized interface for resources #1574 by @pepibumur.
  • Synthesized accessors for framework targets not resolving the path #1575 by @pepibumur.
  • Read coredata version from /.xccurrentversion file #1572 by @matiasvillaverde.

Added

  • Support for --cache to the tuist generate command #1576 by @pepibumur.
  • Included that importing target name in the duplicate dependency warning message #1573 by @thedavidharris
  • Support to build and run the project on Xcode 12 by fixing namespace collisions on Logger #1579 by @thedavidharris

Changed

1.13.1 - More Bella Vita

Fixed

  • Camelize the name of the Objective-C synthesized object by @pepibumur.

1.13.0 - Bella Vita

Fixed

  • tuist focus creating new .package.resolved #1569 by @fortmarek
  • Delete schemes whose targets have been replaced by .xcframeworks #1571 by @pepibumur.

Changed

Added

  • Analytics to the website to better understand the usage of the website in order to optimize it and improve the discoverability of the content #1571 by @pepibumur.

1.12.2 - Waka Waka

Fixed

  • Fix a bug introduced in #1523, when a valid source file would result in throwing an invalid glob error #1566 by @natanrolnik

1.12.1 - Waka

Added

Fixed

  • UpHomebrew (Up.homebrew(packages:)) in Setup.swift correctly checks package installation if the executable doesn't match the package name #1544 by @MatyasKriz.
  • Update Package.swift to correctly encode revision kind as "revision" #1558 by @ollieatkinson.
  • Treat SceneKit catalog the same way as asset catalog [#1546], by @natanrolnik
  • Add core data models to the sources build phase #1542 by @kwridan.
  • Improve app extensions autogenerated schemes #1545 by @kwridan.
  • Ensure the latest semantic version is used when running via tuistenv #1562 by @kwridan.
  • tuist focus not working for workspaces #1565 by @pepibumur.

Changed

  • Add a sourceRootPath attribute to TuistCore.Project to control where Xcode projects are generated #1559 by @pepibumur.
  • Breaking Fail generation if a Source has a non-existent directory in a glob #1523 by @natanrolnik.
  • Change tuist scaffold list output to be readable by grep #1147 by @mollyIV.

1.12.0 - Arabesque

Changed

Added

1.11.1 - Volare far

Fixed

  • Missing schemes in generated project for editing #1467 by @fortmarek
  • tuist build cleaning even if the --clean argument is not passed #1458 by @pepibumur.

Changed

  • Use LD_RUNPATH_SEARCH_PATHS instead of embedding dynamic frameworks for unit test targets #1463 by @fortmarek
  • Migrate info plist generator to a project mapper #1469 by @kwridan.

1.11.0 - Volare

Added

Fixed

Changed

  • Extend CloudInsightsGraphMapper to support mapping the value graph #1380 by @pepibumur

1.10.0 - Alma

Added

  • Build command #1412 by @pepibumur
  • Adds a possibility to set Options > Application Language and Application Region for a TestAction on a scheme #1055 by @paciej00

Changed

1.9.0 - Speedy Gonzales

Added

Fixed

  • Storing the cloud credentials failed because the Keychain syncing was enabled #1355 by @pepibumur.
  • tuist edit doesn't wait while the user edits the project in Xcode #1650 by @pepibumur.
  • Remove CFBundleExecutable from iOS resource bundle target plists #1361 by @kwridan.

Changed

  • Breaking Inherit defaultSettings from the project when the target's defaultSettings is nil #1138 by @pepibumur
  • Manifests are now cached to speed up generation times (opt out via setting TUIST_CACHE_MANIFESTS=0) 1341 by @kwridan

1.8.0

Changed

Added

  • Support for localized sources(e.g., .intentdefinition) #1269 by @Rag0n

Removed

  • Don't set the main and launch storyboard when using the default InfoPlist #1289 by @pepibumur

Fixed

1.7.1

Fixed

  • Critical bug caused by a missing SwiftToolsSupport dynamic library by @pepibumur.

1.7.0

Changed

  • Point swift tools support repo instead of SPM #1230 by @fortmarek
  • Migrate to new argument parser #1154 by @fortmarek
  • Only warn about copying Info.plist when it's the target's Info.plist #1203 by @sgrgrsn
  • tuist edit now edits all project manifest #1231 by @julianalonso

Added

  • Support for setting the project id when configuring the cloud server #1247 by @pepibumur.
  • Support for returning SideEffectDescriptors from the graph mappers #1201 by @pepibumur.
  • SwiftUI template #1180 by @fortmarek
  • SettingsDictionary is a typealias for [String: SettingValue]. #1229 by @natanrolnik. Many useful extension methods were added to SettingsDictionary, allowing settings to be defined this way:

Removed

  • Breaking: Deprecated methods from ProjectDescription.Settings #1202 by by @pepibumur.

1.6.0

Fixed

Changed

Added

1.5.4

Fixed

  • Tuist not working with Xcode < 11.4 by @pepibumur.

1.5.3

Added

Fixed

  • Prevent Multiple commands produce XXXXX error produced by multiple test targets using “Embed Precompiled Frameworks” script #1118 by @paulsamuels
  • Add possibility to skip generation of default schemes #1130 by @olejnjak
  • Errors during the manifest parsing are not printed #1125 by @pepibumur.
  • Warnings because test files are missing in the project scaffolded using the default framework template #1172 by @pepibumur.

1.5.2

Fixed

  • Projects generated with the framework template generated by the init command dont' compile #1156 by @pepibumur.

Changed

Added

1.5.1

Fixed

1.5.0

Added

Fixed

  • Remove redundant SDK paths from FRAMEWORK_SEARCH_PATHS #1145 by @kwridan

Removed

Changed

  • Optimize TargetNode's set operations #1095 by @kwridan
  • Optimize BuildPhaseGenerator's method of detecting assets and localized files #1094 by @kwridan
  • Concurrent project generation #1096 by @kwridan

1.4.0

Fixed

  • Fix TargetAction when PROJECT_DIR includes a space #1037 by @fortmarek
  • Fix code example compilation issues in "Project description helpers" documentation #1081 by @chojnac

Added

Changed

  • Rename TuistConfig.swift to Config.swift #1083 by @pepibumur.
  • Generator update - leveraging intermediate descriptors #1007 by @kwridan
  • Note: TuistGenerator.Generator is now deprecated and will be removed in a future version of Tuist.

1.3.0

Added

Fixed

  • Fix static products false positive lint warning by #981 @kwridan.
  • TargetAction path without ./ prefix #997 by @fortmarek
  • Preserve xcuserdata when re-generating projects #1006 by @kwridan
  • Stable sort order for bcsymbolmap paths by @paulsamuels

Changed

  • Update XcodeProj to 7.8.0 #create?base=tuist%3Amaster&head=tuist%3Atarget-attributes by @pepibumur.
  • Path sorting speed gains #980 by @adamkhazi.
  • Added support for HTTP_PROXY settings from shell environment. #1015 by @aegzorz
  • Added "Base" to known regions. #1021 by @aegzorz
  • Pull bundles from Google Cloud Storage #1028 by @pepibumur.

1.2.0

Added

  • Best practices page to the documentation #843 by @pepibumur.
  • Fail CI if there are broken links on the website #917 by @pepibumur.
  • Excluding multiple files from a target #937 by @paciej00
  • Better SEO to the website #945 by @pepibumur.
  • Add fixture generator for stress testing Tuist #890 by @kwridan.

Fixed

  • The class name of the source files generated by the init command #850 by @pepibumur.
  • Add RemoveHeadersOnCopy attribute for build files in copy files build phases #886 by @marciniwanicki
  • Ensure precompiled frameworks of target applications aren't included in UI test targets #888 by @kwridan
  • Make the scheme generation with testable targets stable #892 by @marciniwanicki
  • Fix project header attributes #895 by @kwridan
  • Excluding files from target doesn't work in all cases #913 by @vytis
  • Support for Core Data mapping modules #911 by @andreacipriani
  • Deep nested hierarchy in the project generated by tuist edit #923 by @pepibumur

Changed

  • Turn models from TuistCore that are clases into structs #870 by @pepibumur.

1.1.0

Changed

  • Extracted loading logic into its own framework, TuistLoader #838 by @pepibumur.

Added

  • TuistGalaxy & TuistAutomation targets #817 by @pepibumur.
  • Support ignoring specific source file pattern when adding them to the target #811 by @vytis.
  • Made targets testable if there is a corresponding test target #818 by @vytis.
  • Release page to the documentation #841 by @pepibumur.

1.0.1

Fixed

  • Pass through DEVELOPER_DIR when set by the environment when determining the path to the currently selected Xcode. @ollieatkinson

1.0.0

Changed

  • Run pipelines with Xcode 11.2.1 on CI @pepibumur.

Removed

  • Breaking Generate manifests target as part of the generated project #724 by @pepibumur.
  • The installation no longer checks if the Swift version is compatible #727 by @pepibumur.
  • Don't include the manifests in the generated workspace #754 by @pepibumur.

Added

  • Add ProjectDescription.Settings.defaultSettings none case that don't override any Project or Target settings. #698 by @rowwingman.
  • ProjectEditor utility #702 by @pepibumur.
  • Fix warnings in the project, refactor SHA256 diegest code #704 by @rowwingman.
  • Define ArchiveAction on Scheme #697 by @grsouza.
  • tuist edit command #703 by @pepibumur.
  • Support interpolating formatted strings in the printer #726 by @pepibumur.
  • Support for paths relative to root #727 by @pepibumur.
  • Replace Sheme.testAction.targets type from String to TestableTarget is a description of target that adds to the TestAction, you can specify execution tests parallelizable, random execution order or skip tests #728 by @rowwingman.
  • Galaxy manifest model #729 by @pepibumur.
  • Make scheme generation methods more generic #730 by @adamkhazi. @kwridan.
  • Workspace Schemes #752 by @adamkhazi. @kwridan.
  • SimulatorController with method to fetch the runtimes #746 by @pepibumur.
  • Add RxSwift as a dependency of TuistKit #760 by @pepibumur.
  • Add cache command #762 by @pepibumur.
  • Utility to build xcframeworks #759 by @pepibumur.
  • Add CacheStoraging protocol and a implementation for a local cache #763 by @pepibumur.
  • Add support for changing the cache and versions directory using environment variables #765 by @pepibumur.
  • Reactive interface to the System utility #770 by @pepibumur
  • Workflow to make sure that documentation and website build #783 by @pepibumur.
  • Support for xcframework #769 by @lakpa
  • Support generating info.plist for Watch Apps & Extensions #756 by @kwridan

Fixed

0.19.0

Added

  • XCTAssertThrowsSpecific convenient function to test for specific errors #535 by @fortmarek
  • HTTPClient utility class to TuistEnvKit #508 by @pepibumur.
  • Breaking Allow specifying a deployment target within project manifests #541 @mollyIV.
  • Add support for sticker pack extension & app extension products #489 by @Rag0n
  • Utility to locate the root directory of a project #622 by @pepibumur.
  • Adds codeCoverageTargets to TestAction to make Xcode gather coverage info only for that targets #619 by @abbasmousavi
  • Enable the library evololution for the ProjectDescription framework #625 by @pepibumur.
  • Add support for watchOS apps #623 by @kwridan
  • Add linting for duplicate dependencies #629 by @lakpa

Changed

  • Change dependencies in Package.resolved to version from branch #631 by @fortmarek
  • Rename TuistCore to TuistSupport #621 by @pepibumur.
  • Introduce Systems.shared, TuistTestCase, and TuistUnitTestCase #519 by @pepibumur.
  • Change generated object version behaviour to mimic Xcode 11 by @adamkhazi.
  • Breaking Refine API for Swift Packages #578 by @ollieatkinson
  • Support ability to locate multiple Tuist directories #630 by @kwridan

Fixed

0.18.1

Removed

  • Reverting #494 using variables in productName doesn't evaluate in all usage points within the generated project

0.18.0

Added

Fixed

  • Transitively link static dependency's dynamic dependencies correctly #484 by @adamkhazi.
  • Prevent embedding static frameworks #490 by @kwridan
  • Output losing its format when tuist is run through tuistenv #493 by @pepibumur
  • Product name linting failing when it contains variables #494 by @dcvz
  • Build phases not generated in the right position #506 by @pepibumur
  • Remove $(SRCROOT) from being included in Info.plist path #511 by @dcvz
  • Prevent generation of redundant file elements #515 by @kwridan

0.17.0

Added

  • tuist graph command #427 by @pepibumur.
  • Allow customisation of productName in the project Manifest #435 by @ollieatkinson
  • Adding support for static products depending on dynamic frameworks #439 by @kwridan
  • Support for executing Tuist by running swift project ... #447 by @pepibumur.
  • New manifest model, TuistConfig, to easily configure Tuist's functionalities #446 by @pepibumur.
  • Adding ability to re-generate individual projects #457 by @kwridan
  • Support multiple header paths #459 by @adamkhazi.
  • Allow specifying multiple configurations within project manifests #451 by @kwridan
  • Add linting for mismatching build configurations in a workspace #474 by @kwridan
  • Support for CocoaPods dependencies #465 by @pepibumur
  • Support custom .xcodeproj name at the model level #462 by @adamkhazi.
  • TuistConfig.compatibleXcodeVersions support #476 by @pepibumur.
  • Expose the .bundle product type #479 by @kwridan

Fixed

  • Ensuring transitive SDK dependencies are added correctly #441 by @adamkhazi.
  • Ensuring the correct platform SDK dependencies path is set #419 by @kwridan
  • Update manifest target name such that its product has a valid name #426 by @kwridan
  • Do not create Derived/InfoPlists folder when no InfoPlist dictionary is specified #456 by @adamkhazi.
  • Set the correct lastKnownFileType for localized files #478 by @kwridan

Changed

0.16.0

Added

  • DefaultSettings.none to disable the generation of default build settings #395 by @pepibumur.
  • Version information for tuistenv #399 by @ollieatkinson
  • Add input & output paths for target action #353 by Rag0n
  • Adding support for linking system libraries and frameworks #353 by @steprescott
  • Support passing the Info.plist as a dictionary #380 by @pepibumur.

Fixed

0.15.0

Changed

Added

Fixed

  • Fixing unstable diff (products and embedded frameworks) #357 by @marciniwanicki
  • Set Code Sign On Copy to true for Embed Frameworks #333 @dangthaison91.
  • Fixing files getting mistaken for folders #338 by @kwridan
  • Updating init template to avoid warnings #339 by @kwridan
  • Fixing generation failures due to asset catalog & **/*.png glob patterns handling #346 by @kwridan
  • Supporting bundle target dependencies that reside in different projects (in TuistGenerator) #348 by @kwridan
  • Fixing header paths including folders and non-header files #356 by @kwridan
  • Fix duplicate localized resource files #363 by @kwridan
  • Update static dependency lint rule #360 by @kwridan
  • Ensure resource bundles in other projects get built #374 by @kwridan

0.14.0

Changed

Added

Fixed

  • Ensuring target product names are consistent with Xcode #323 by @kwridan
  • Ensuring generate works on additional disk volumes #327 by @kwridan
  • Headers build phase should be put on top of Compile build phase #332 @dangthaison91.

0.13.0

Added

Removed

Fixed

  • Fix duplicated embedded frameworks #280 by @pepibumur
  • Fix manifest target linker errors #287 by @kwridan
  • Build settings not being generated properly #282 by @pepibumur
  • Fix instance method nearly matches optional requirements warning in generated AppDelegate.swift in iOS projects #291 by @BalestraPatrick
  • Fix Header & Framework search paths override project or xcconfig settings #301 by @ollieatkinson
  • Unit tests bundle for an app target compile & run #300 by @ollieatkinson
  • LIBRARY_SEARCH_PATHS and SWIFT_INCLUDE_PATHS are now set #308 by @kwridan
  • Fix Generation fails in the event an empty .xcworkspace directory exists #312 by @ollieatkinson

0.12.0

Changed

Added

Removed

Fixed

  • Changed default value of SWIFT_VERSION to 4.2 @ollieatkinson
  • Added fixture tests for ios app with static libraries @ollieatkinson
  • Bundle id linting failing when the bundle id contains variables #252 by @pepibumur
  • Include linked library and embed in any top level executable bundle #259 by @ollieatkinson

0.11.0

Added

Fixed

  • Swiftlint style issues #213 by @pepibumur.
  • Use environment tuist instead of the absolute path in the embed frameworks build phase #185 by @pepibumur.

Deprecated

0.10.2

Fixed

  • Processes not stopping after receiving an interruption signal #180 by @pepibumur.

0.10.1

Changed

Fixed

  • Carthage up command not running when the Cartfile.resolved file doesn't exist #179 by @pepibumur.

0.10.0

Fixed

  • Don't generate the Playgrounds group if there are no playgrounds #177 by @pepibumur.

Added

0.9.0

Added

Fixed

Added

  • Generate both, the Debug and Release configurations #165 by @pepibumur.

0.8.0

Added

Removed

Added

  • Geration of projects and workspaces in the ~/.tuist/DerivedProjects directory #146 by pepibumur.

0.7.0

Added

0.6.0

Added

  • Check that the local Swift version is compatible with the version that will be installed #134 by @pepibumur.

Changed

Removed

0.5.0

Added

Fixed

0.4.0

Added

Changed

  • Don't fail if a Carthage framework doesn't exist. Print a warning instead #96 by @pepibumur.
  • Missing file errors are printed together #98 by @pepibumur.

0.3.0

Added

Changed

  • Replaced ssh links with the https version of them #91 by @pepibumur.

Fixed

  • FRAMEWORK_SEARCH_PATHS build setting not being set for precompiled frameworks dependencies #87 by @pepibumur.

0.2.0

Added

Fixed

Removed

0.1.0

Added

  • Local command prints all the local versions if no argument is given #79 by @pepibumur.
  • Platform, product, path and name arguments to the init command #64 by @pepibumur.
  • Lint that Info.plist and .entitlements files are not copied into the target products #65 by @pepibumur
  • Lint that there's only one resources build phase #65 by @pepibumur.
  • Command runner #81/ by @pepibumur.

Added

  • Sources, resources, headers and coreDataModels property to the Target model #67 by @pepibumur.

Changed

  • JSON and JSONConvertible replaced with Swift's Codable conformance.

Removed