๐ Create, maintain, and interact with Xcode projects at scale
MIT License
Bot releases are visible (Hide)
Published by fortmarek almost 3 years ago
excluding
parameter to FileList
#3773 by @pavel-trafimuk
preActions
and postActions
for RunAction
and ProfileAction
#3787 by @hisaac
attachDebugger
on RunAction
or TestAction
, respectively #3813 by @svenmuennich
tvos
platform #3759 by @ezraberch
Published by fortmarek almost 3 years ago
Published by fortmarek almost 3 years ago
Published by fortmarek almost 3 years ago
tuist focus
#3654 by @danyf90
cache warm
command significantly faster by avoid recompiling already in-cache dependency targets #3585 by @danyf90
SWIFT_VERSION
#3644 by @kwridan
SWIFT_VERSION
build setting is now part of the .essential
DefaultSettings
DefaultSettings.none
for cases where xcconfig
files are used to control all build settingsDefaultSettings.recommended(excluding: ["SWIFT_VERSION])
DefaultSettings.essential(excluding: ["SWIFT_VERSION])
SWIFT_VERSION
target level setting if a project level setting already exists for itPublished by fortmarek almost 3 years ago
Published by fortmarek almost 3 years ago
SwiftPackageManagerDependencies.deploymentTargets
property #3602 by @danyf90
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
Scheme(hidden: true)
#3598 by @pepibumur
tuist focus
#3654 by @danyf90
json
format in graph
command #3617 by @neakor
Published by fortmarek almost 3 years ago
Published by pepicrft about 3 years ago
analytics
option to Config.Cloud
to enable sending analytics event to cloud backend #3547 by @danyf90
manifest
argument to tuist dump
command, to allow to dump other kinds of manifests #3551 by @danyf90
LastUpgradeCheck
of the Xcode
project #3561 by @mollyIV
LastUpgradeCheck
to SwiftPackageManager generated projects to disable warnings #3569 by @danyf90
isCI
parameter to analytics events #3568 by @mollyIV
runnable
targrts (which they are) #3570 by @fila95
.commandLineTool
s. #3572 by @fila95
tuist generate
performance regression #3562 by @adellibovi
Published by fortmarek about 3 years ago
Published by pepicrft about 3 years ago
Published by pepicrft about 3 years ago
TestAction.init(..)
becomes TestAction.testAction(...)
. #3400 by @pepibumur:
tuist focus
no longer includes automatically related tests and bundle targets as sources. #3501 by @danyf90.
tuist focus
commandBreaking .cocoapods
target dependency
.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.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
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:
TestAction
. To ease its usage, we've simplified all of them into a single method. It takes the test plans as an array of Path
s 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.TestAction
, update the code to use either the .testActions
or the .targets
methods.Breaking removed the tuist doc
command. #3401 by @pepibumur
Breaking removed PresetBuildConfiguration
in favour of ConfigurationName
. #3400 by @pepibumur:
ConfigurationName.beta
.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.
Setup.swift
into a up.toml
and use tuist-up
instead.Breaking Scheme TestAction
options have been consolidated together under a new type TestActionOptions
.
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.
TUIST_CONFIG_*
variables instead.TUIST_CONFIG_*
variables instead.Breaking Settings
is now publicly initialized via a new static method .settings()
.
settings: Settings(base: ["setting": "value"])
with settings: .settings(base: ["setting": "value"])
Breaking CustomConfiguration
has been merged with Configuration
.
Configuration
and CustomConfiguration
.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")])
Published by pepicrft about 3 years ago
Published by fortmarek about 3 years ago
/tmp/
#3502 by @pepibumur.cache warm
fail if remote cache existence check throws #3508 by @danyf90
Published by fortmarek about 3 years ago
tuist cache
avoiding to hit remote cache if not needed. #3461 by @danyf90.tuist cache warm
and tusit focus
avoiding to compute hashes of targets not going to be cached. #3464 by @danyf90.tuist cache warm
when using remote cache by parallelizing the target cache checks #3462 by @bolismauro
tuist cache warm
command. #3460 by @danyf90.SourceFilesList.codeGen
property. #3448 by @pavm035
./fourier swift format
command fails. #3451 by @hisaac
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
.
and -
in the target name. #3449 by @moritzsternemann
.tuistignore
not matching relative paths correctly #3456 by @danyf90
Published by fortmarek about 3 years ago
tuist edit
and improved automatic detection of editable manifests #3416 by @adellibovi.tuist dependencies fetch
and tuist dependencies update
by performing the dependencies resolution directly in the Tuist/Dependencies
folder #3417 by @danyf90.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.tuist generate
by updating Xcodeproj #3444 by @adellibovi.tuist clean
command #3407 by @danyf90
tuist dependencies clean
command #3417 by @danyf90.real
) value for InfoPlist
#3377 by @MarvinNazari
shellPath
parameter in TargetAction
and TargetScript
to enable /bin/zsh
as shell. #3384 by @DarkoDamjanovic
Published by pepicrft about 3 years ago
tuistenv
failing to fetch the latest version from CHANGELOG.md
Published by pepicrft about 3 years ago
tuistenv
failing to fetch the latest version from CHANGELOG.md
Published by pepicrft about 3 years ago
Release
caching profile #3304 by @danyf90
--dependencies-only
parameter to tuist cache warm
command #3334 by @danyf90
path
instead of url
. #3269 by @apps4everyone
Carthage
dependencies to Target
using TargetDepedency.external
#3300 by @laxmorek
./fourier bundle
command when xcodeproj
or xcworkspace
files are present #3331 by @danyf90
tuist edit
command when the Tuist/Dependencies
directory contains "manifest-like" files (Project.swift
or Plugin.swift
). #3359 by @laxmorek
install
script has been updated to pull the tuistenv
binary from the latest GitHub release's assets #3336 by @pepibumur.BUILD_LIBRARY_FOR_DISTRIBUTION
setting when building xcframework
for cache #3344 by @danyf90.TUIST_
prefix #3337 by @wattson12
Published by fortmarek about 3 years ago
Published by fortmarek about 3 years ago
Swift Package Manager
in Dependencies.swift
#3072 by @danyf90
cc
as a valid source extension #3273 by @danyf90
.strings
. #3236 by @dbarden
TextSettings
configuration into Project
#3253 by @DimaMishchenko
language
option for RunAction
, add SchemeLanguage
#3231 by @zzzkk