tuist

๐Ÿš€ Create, maintain, and interact with Xcode projects at scale

MIT License

Stars
4.2K
Committers
318

Bot releases are hidden (Show)

tuist - 2.1.0 - Coloratura

Published by pepicrft about 3 years ago

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 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
tuist - 2.0.2 - Wald

Published by fortmarek about 3 years ago

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
tuist - 2.0.1 - Tarifa

Published by pepicrft about 3 years ago

Fixed

tuist - 2.0.0 - Ikigai

Published by pepicrft about 3 years ago

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")])
      
tuist - 1.52.0 - Pelae

Published by pepicrft about 3 years ago

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
tuist - 1.51.1

Published by fortmarek about 3 years ago

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.
  • 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
  • Make cache warm fail if remote cache existence check throws #3508 by @danyf90
tuist - 1.51.0 - Switch

Published by fortmarek about 3 years ago

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.

Added

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

Changed

  • 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

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
tuist - 1.50.0 - Nature

Published by fortmarek about 3 years ago

1.50.0 - Nature

Changed

  • Breaking Minimum supported Xcode version 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
tuist - 1.49.2 - Vilassar de Mar

Published by pepicrft about 3 years ago

Fixed

  • tuistenv failing to fetch the latest version from CHANGELOG.md
tuist - 1.49.1 - Premiร  de Mar

Published by pepicrft about 3 years ago

Fixed

  • tuistenv failing to fetch the latest version from CHANGELOG.md
tuist - 1.49.0 - Maresme

Published by pepicrft about 3 years ago

Added

  • Add default Release caching profile #3304 by @danyf90
  • Add --dependencies-only parameter to tuist cache warm command #3334 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
tuist - 1.48.1

Published by fortmarek about 3 years ago

1.48.1

Fixed

tuist - 1.48.0 - Packer

Published by fortmarek about 3 years ago

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
tuist - 1.47.0 - Mirror

Published by fortmarek about 3 years ago

Added

Removed

Changed

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

Published by fortmarek over 3 years ago

1.46.1

Fixed

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

Published by fortmarek over 3 years ago

1.46.0 - Emeuno

Added

Changed

  • Breaking Minimum supported Xcode version bumped to 12.2.
tuist - 1.45.1

Published by fortmarek over 3 years ago

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
tuist - 1.45.0 - Jungle

Published by fortmarek over 3 years ago

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.

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

  • 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
tuist - 1.44.0 - DubDub

Published by fortmarek over 3 years ago

1.44.0

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
tuist - 1.43.0 - Peroxide

Published by fortmarek over 3 years ago

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.