๐ Create, maintain, and interact with Xcode projects at scale
MIT License
Bot releases are hidden (Show)
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
Published by fortmarek about 3 years ago
--result-bundle-path
parameter to test command #3177 by @olejnjak
tuist dependencies
command prints dependency managers' output to console. #3185 by @laxmorek
tuist create-issue
command #3194 by @pepibumur.tuist secret
command #3194 by @pepibumur.sudo
requirement for the install and uninstall scripts. #3056 by @luispadron.Published by fortmarek over 3 years ago
tuist dependencies fetch/update
command when Carthage
dependency is imported as binary #3164 by @havebenfitz
Published by fortmarek over 3 years ago
GitHubClient
to interact with GitHub's API #3144 by @pepibumur.Published by fortmarek over 3 years ago
tuist focus
is not found. #3104 by @fortmarek
tuist dependencies
command may fails for some Carthage
dependencies. #3108 by @laxmorek
Published by fortmarek over 3 years ago
tvTopShelfExtension
and tvIntentsExtension
target product. #2793 by @rmnblm
tuist dependencies
command generates a graph.json
file for the Carthage
dependencies. #3043 by @laxmorek
disableBundleAccessors
generation option which disables generating Bundle extensions #3088 by @wojciech-kulik.tuist generate
when having multiple projects #3092 by @adellibovi
ValueGraph
to Graph
#3083 by @fortmarek
tuist generate
command documentation for argument --skip-test-targets. #3069 by @mrcloud
tuist dependencies
command requires the Carthage
version to be at least 0.37.0
. #3043 by @laxmorek
CarthageDependencies.Options
from the Dependencies.swift
manifest model. #3043 by @laxmorek
tuist bundle
when path has spaces #3084 by @fortmarek
.xib
and .storyboard
) #3075 by @svenmuennich
runPostActionsOnFailure
scheme attribute when not enabled #3087 by @kwridan
Published by fortmarek over 3 years ago
Scaffolding
for copy folder with option .directory(path: "destinationContainerFolder", sourcePath: "sourceFolder")
. #2985 by @santi-d
Config.swift
manifest file. #2998 by @laxmorek
tuist run
command which allows running schemes of a project. #2917 by @luispadron
Published by fortmarek over 3 years ago