All Versions
96
Latest Version
Avg Release Cycle
9 days
Latest Release
-

Changelog History
Page 1

  • v2.0.2 Changes

    ๐Ÿ›  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
  • v2.0.1 Changes

    ๐Ÿ›  Fixed

  • v2.0.0 Changes

    ๐Ÿ”„ 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.
      • Migration: Replace
      let settings = Settings(
          debug: Configuration(settings: ["setting": "debug"]), 
          release: Configuration(settings: ["setting": "release"])
      )
      

      with:

      let settings: Settings = .settings(
          debug: ["setting": "debug"], 
          release: ["setting": "release"]
      )
      
    • ๐Ÿ’ฅ Breaking Specifying xcconfig files for default configurations via Settings(base:debug:release:) has changed.

      • Motivation: To support the CustomConfiguration API simplification.
      • Migration: Replace
      let settings = Settings(
          debug: Configuration(xcconfig: "configs/debug.xcconfig"), 
          release: Configuration(xcconfig: "configs/release.xcconfig")
      )
      

      with:

      let settings: Settings = .settings(
          configurations: [
            .debug(name: .debug, xcconfig: "configs/debug.xcconfig"),
            .release(name: .release, xcconfig: "configs/release.xcconfig"),
          ]
      )
      
    • ๐Ÿ’ฅ 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.
      • Migration Replace
      let target = Target(actions: [.post(tool: "/bin/echo", arguments: ["rocks"], name: "tuist")])
      

      with

      let target = Target(scripts: [.post(tool: "/bin/echo", arguments: ["rocks"], name: "tuist")])
      
  • v1.52.0 Changes

    ๐Ÿ”„ 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
  • v1.51.1 Changes

    โž• 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
  • v1.51.0 Changes

    ๐Ÿ”„ 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
  • v1.50.0 Changes

    ๐Ÿ”„ 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
  • v1.49.2 Changes

    ๐Ÿ›  Fixed

    • โœ… tuistenv failing to fetch the latest version from CHANGELOG.md
  • v1.49.1 Changes

    ๐Ÿ›  Fixed

    • โœ… tuistenv failing to fetch the latest version from CHANGELOG.md
  • v1.49.0 Changes

    โž• 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.
    • ๐Ÿ‘ Environment variables now support keys with and without TUIST_ prefix #3337 by @wattson12