164 KiB
164 KiB
Changelog
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
- Allow using a period in a CLI product name #5178 by @serejahh
- Add support for
docc
documentation in ProjectDescriptionHelpers #5198 by @waltflanagan - Added cloud clean command #5211 by @fortmarek
Fixed
- chore: Removed
BundleExecutableKey
from Info.plist for watchOS bundles #5194 by @griches - Improve error message when
tuist generate
is called without callingtuist 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
- Add support for
customLLDBInitFile
settings inScheme.RunAction
#5060 by @oozoofrog - Add support for build rules #5088 by @MartinStrambach
- Add option to cache as device or simulator xcframeworks #5075 by @kientux
- Support for
xpc
product type onmacOS
#5077 by @serejahh
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 thexcdatamodeld
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 inTarget.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
- Fix support for custom
applicationIdPrefix
from provisioning profiles #4888 by @david-all-win-software - Fix signing when certificate name contains quotes #4890 by @david-all-win-software
- Fix linting rules for allowing a watchOS as a dependency of a test target #4908 by @alexanderwe
- Fix generation of resource accessor for AR reference images #4926 by @Tulleb
3.14.0 - 2022-11-18
Added
Fixed
- Fix concurrency warning in bundle extension #4878 by @mpodeszwa
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
- Remove backbone #4817 by @fortmarek
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
Fixed
- Fix
tuist build
failing to build workspaces with watchOS targets #4466 by @thedavidharris - Fix support for iOS targets supporting iPhone, iPad, and Catalyst #4710 by @dever25
- Fix support for macOS test targets depending on static frameworks #4739 by @dpliushchaiIOS
- Fix
tuist edit
when project contains a Templates folder #4744 by @michaelmcguire - Fix computation of target hash within Xcode beta releases #4738 by @danyf90
3.10.0 - 2022-08-20
Changed
Added
- Add
platform
filtering option tograph
command #4656 by @mikchmie - Add
--device
and--os
params totuist build
#4647 by @Killectro - Add support for
svg
graph format #4659 by @danyf90 - Support for
mlmodelc
resources #4685 by @mikchmie
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
- Update XcodeProj to 8.8.0 #4629 by @danyf90
- Make
ProjectDescription.TargetDependency
hashable #4644 by @danyf90 - Remove deprecation from
TargetDependency.package
#4615 by @danyf90
Added
- Add multiplatform support for external SPM dependencies #4570 by @alexanderwe
- Add support to enable frame gpu capture #4623 by @PierreCapo
- Add support for
--no-open
flag intuist graph
#4637 by @danrevah - Add support for
systemLibrary
SwiftPackageManager targets #4642 by @nivanchikov
Fixed
- Pass system environment variables when executing custom command #4611 by @woohyunjin06
- Fix for
tuist clean dependencies
cleaning also theTuist/Dependencies/Lockfiles
folder #4646 by @danyf90
3.8.0 - 2022-07-03
Changed
Added
- Support for not generating Info.plist #4566 by @danyf90
- Support for custom remote plugins location #4586 by @danyf90
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
- Update target resource name #4542 by @wangjiejacques
Added
- Send cache hit rate analytics for cache warm command #4519 by @fortmarek
Fixed
- Fix
tuist fetch
for dependencies when using Xcode 14 #4543 by @danyf90 - Improve cache errors logging #4555 by @danyf90
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 throughbrew
#4516 by @nagra - Fix handling of
--skip-external-dependencies
parameter intuist 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
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
whenattachDebug
is false inLaunchAction
andTestAction
#4458 by @Andrea-Scuderi - Fix for importing
Firebase 9.x
thoughSwiftPackageManger
inDependencies.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
- Make
TargetReference
conform toHashable
#4407 by @danyf90 - Defer the display of warnings until after project generation #4387 by @nicholaskim94
Added
- Support for watchOS UI test targets #4389 by @Smponias
- Add support for automatic resources in SwiftPackageManager #4413 by @danyf90
- Add attachDebugger parameter to TestAction.testPlans(...) #4425 by @Andrea-Scuderi
- Add local Tuist plugin to
tuist init
generated project #4388 by @leszko11 - Send cache targets hits analytics metadata #4429 by @fortmarek
Fixed
- Fix resource mapping when target name contains hyphens #4400 by @mangofever
- Fix xcframework import when framework name is different from xcframework name #4401 by @AlbGarciam
- Allow AppClips to link Static Frameworks #4420 by @regularberry
- Fix zipping and unzipping cached frameworks with symlinks #4355 by @fortmarek
- Fix: swap comments inside generated resources finder file #4441 by @GermanVelibekovHouzz
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
fromDependencies.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
- Add
.optional
option to.cloud
#4262 by @fortmarek
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 setMARKETING_VERSION
in Build Settings. #4194 by @dogo - Add
debugInformationFormat(_ format:)
to SettingsDictionary extension to setDEBUG_INFORMATION_FORMAT
in Build Settings. #4194 by @dogo
Fixed
- Fix linking of transitive precompiled static frameworks #4200 by danyf90, kwridan, adellibovi.
- Fix
Tuist.graph()
command inProjectAutomation
#4204 by @fortmarek
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
totuist generate
. - Breaking add
type
parameter toTargetDependency.sdk
#3961 by @danyf90 - Migration: Add the
type
parameter where definingsdk
target dependencies and remove both the extension and thelib
prefix from the name - Breaking move
disableBundleAccessors
anddisableSynthesizedResourceAccessors
fromConfig.swift
toProject.ProjectOption
#3963 by @danyf90. - Motivation: Being able to define the option at the project level
- Migration: Move the
disableBundleAccessors
anddisableSynthesizedResourceAccessors
fromConfig.swift
toProject.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
andConfig.GenerationOptions.enableCodeCoverage
options toWorkspace.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 astruct
instead of anenum
#4104 by @danyf90 - Motivation: A struct better represents the semantic of the type
- Breaking refactor
Config.generationOptions
to be astruct
instead of anenum
#4109 by @danyf90 - Motivation: A struct better represents the semantic of the type
- Breaking remove
xcodeProjectName
,organizationName
, anddevelopmentRegion
fromConfig.GenerationOptions
#4131 by @danyf90 - Migration: Configure them in
Project
instead or define helpers to share the value across projects - Breaking move
Config.GenerationOptions.disableShowEnvironmentVarsInScriptPhases
toProject.Options
#4131 by @danyf90 - Motivation: It is related to the project generation
- Migration: Configure it in
Project.Options
instead - Breaking move
Config.GenerationOptions.lastXcodeUpgradeCheck
toWorkspace.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 insidegenerate
. #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
totuist 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 (thetusit generate
command), no need to keep it separately. - Breaking remove deprecated initializers for
FileLists
,Headers
, andHTTPURLResponse
#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
forDependencies.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
duringtuist 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 toHeaders
to get list of public headers automatically. Also added new static functions inHeaders
for most popular cases with umbrella header #3884 by @pavel-trafimuk - Add
isExternal
property toProjectAutomation.Project
andTuistGraph.Project
that indicates whether a project is imported throughDependencies.swift
. #4155 by @laxmorek - Add
swiftOptimizeObjectLifetimes(_ enabled:)
to SettingsDictionary extension to setSWIFT_OPTIMIZE_OBJECT_LIFETIME
in Build Settings. #4171 by @kyungpyoda
2.7.2
- Fix download of binary artifacts from the remote cache #4073 by @adellibovi
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
- Add logging when helpers modules are being built #3913 by @luispadron
- Document how to use the Bitrise step #3921 by @pepicrft
- Add
.exact
,.upToNextMajor
, and.upToNextMinor
options to CompatibleXcodeVersions #3929 by @ezraberch
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
- Add support for
exclusionRule
parameter toHeaders
#3793 by @pavel-trafimuk - Add generation time for
tuist focus
command #3872 by @adellibovi
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
withTUIST_CONFIG_VERBOSE=1
#3752 by @fortmarek
2.4.0 - Lune
Added
- Add support for
excluding
parameter toFileList
#3773 by @pavel-trafimuk - Add ability to define
preActions
andpostActions
forRunAction
andProfileAction
#3787 by @hisaac - Add ability to control whether a debugger is attached to an app or test process by setting
attachDebugger
onRunAction
orTestAction
, respectively [#3813])https://github.com/tuist/tuist/pull/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
andCartfile
#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
- Update
swiftlint
to version0.10.1
#3744 by @pepibumur - Update
xcprettify
to version0.45.0
#3744 by @pepibumur
Added
- Add
uiTests
target support fortvOS
. #3756 by @sujata23 - Added ability to control
parallelizable
andrandomExecutionOrdering
for autogenerated test targets #3755 by @wattson12
2.3.1 - Avantgarde
Fixed
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 wherexcconfig
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
2.2.1 - Weg
Fixed
- Fixed compiled binary for older Xcode versions #3675 by @luispadron
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 thetargetSettings
property in theDependencies.swift
file #3632 by @wattson12 Target
's initializer now hasInfoPlist.default
set as the default value for theinfoPlist
argument #3644 by @hisaac
Added
- Schemes can be hidden from the dropdown menu
Scheme(hidden: true)
#3598 by @pepibumur - Sort schemes alphabetically by default #3598 by @pepibumur
- Add automation to release #3603 by @luispadron
- Support for
json
format ingraph
command #3617 by @neakor - Persist generated
Package.swift
andCartfile
#3661 by @thedavidharris
Fixed
- Fix handling of
TUIST_CONFIG_COLOURED_OUTPUT
environment variable #3631 by @danyf90 - Fix
tuist dump config
no longer requires to be executed inside theTuist
folder #3647 by @danyf90
2.1.1 - Patenipat
Fixed
- Fix SwiftPackageManager dependencies mapping when the dependency contains nested umbrella header #3588 by @danyf90
- Revert Swift Package Manager default resource handling #3594 by @danyf90
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 toConfig.Cloud
to enable sending analytics event to cloud backend #3547 by @danyf90 - Add optional
manifest
argument totuist 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 theXcode
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
.commandLineTool
s. #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
- Fix manifest cache, enabled by default #3530 by @adellibovi
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(..)
becomesTestAction.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 theDependencies.swift
manifes tfile. - Breaking Support for deprecated
TuistConfig.swift
has been ended. Define your configuration usingConfig.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 theDependencies.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 ofPath
s and the configuration as an instance ofPresetBuildConfiguration
. We've also made theinit
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 ofConfigurationName
. #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 typeConfigurationName
. Note that it conformsExpressibleByStringLiteral
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 aup.toml
and usetuist-up
instead. - Breaking Scheme
TestAction
options have been consolidated together under a new typeTestActionOptions
. - 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"])
withsettings: .settings(base: ["setting": "value"])
- Breaking
CustomConfiguration
has been merged withConfiguration
. - Motivation: Simplify the API and reduce confusion between
Configuration
andCustomConfiguration
. - Migration: Replace
let configurations: [CustomConfiguration] = [ ... ]
withlet 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
toscripts
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
toConfig
so targets for code coverage data gathering can be specified in autogenerated project scheme #3267 by @olejnjak
1.51.1
Added
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
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
andtusit 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 ofTUIST_
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
andtuist dependencies update
by performing the dependencies resolution directly in theTuist/Dependencies
folder #3417 by @danyf90. - Improve speed of
tuist focus
andtuist cache warm
with a targets list (i.e.tuist focus frameworkX
andtuist 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 forInfoPlist
#3377 by @MarvinNazari - Support for
shellPath
parameter inTargetAction
andTargetScript
to enable/bin/zsh
as shell. #3384 by @DarkoDamjanovic
1.49.2
Fixed
tuistenv
failing to fetch the latest version fromCHANGELOG.md
1.49.1
Fixed
tuistenv
failing to fetch the latest version fromCHANGELOG.md
1.49.0
Added
- Add default
Release
caching profile #3304 by @danyf90 - Add
--dependencies-only
parameter totuist cache warm
command #3334 by @danyf90 - Add support for
excluding
parameter toResourceFileElement
#3363 by @danyf90
Fixed
- Fix Dependency.swift binary path's with
path
instead ofurl
. #3269 by @apps4everyone - Fix mapping of SPM linker flags #3276 by @danyf90
- Fix adding
Carthage
dependencies toTarget
usingTargetDepedency.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 whenxcodeproj
orxcworkspace
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 theTuist/Dependencies
directory contains "manifest-like" files (Project.swift
orPlugin.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 thetuistenv
binary from the latest GitHub release's assets #3336 by @pepibumur. - Remove unneeded
BUILD_LIBRARY_FOR_DISTRIBUTION
setting when buildingxcframework
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
- Fixed text settings docs #3288 by @DimaMishchenko
- Fix .xcFramework breaking change #3289 by @kwridan
1.48.0 - Packer
Added
- Support for
Swift Package Manager
inDependencies.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 intoProject
#3253 by @DimaMishchenko - Add
language
option forRunAction
, addSchemeLanguage
#3231 by @zzzkk - Include instructions to create an GitHub issue for unhandled errors #3278 by @pepibumur.
Fixed
- Build file of dependencies having the wrong platform filter in iOS targets with Catalyst enabled #3152 by @pepibumur and @sampettersson.
1.47.0 - Mirror
Added
- Caching for static frameworks with resources #3090 by @mstfy
- Meta tuist support #3103 by @fortmarek
- Add
--result-bundle-path
parameter to test command #3177 by @olejnjak - The
tuist dependencies
command prints dependency managers' output to console. #3185 by @laxmorek - CI check to ensure lockfiles are consistent #3208 by by @pepibumur.
Removed
- Breaking Remove
tuist create-issue
command #3194 by @pepibumur. - Breaking Remove
tuist secret
command #3194 by @pepibumur.
Changed
- Remove the
sudo
requirement for the install and uninstall scripts. #3056 by @luispadron.
Fixed
- Editing projects in development #3199 by @pepibumur.
1.46.1
Fixed
- Fix failed
tuist dependencies fetch/update
command whenCarthage
dependency is imported as binary #3164 by @havebenfitz
1.46.0 - Emeuno
Added
- Native support for ARM architecture #3010 by @fortmarek & @pepibumur.
- Utility for obtaining the system's Git credentials for authenticating with #3110 by @pepibumur.
GitHubClient
to interact with GitHub's API #3144 by @pepibumur.
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 someCarthage
dependencies. #3108 by @laxmorek
1.45.0 - Jungle
Added
- Add
tvTopShelfExtension
andtvIntentsExtension
target product. #2793 by @rmnblm - The
tuist dependencies
command generates agraph.json
file for theCarthage
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
toGraph
#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 theCarthage
version to be at least0.37.0
. #3043 by @laxmorek
Removed
- breaking Remove the
CarthageDependencies.Options
from theDependencies.swift
manifest model. #3043 by @laxmorek
Fixed
--only-current-directory
flag fortuist 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
- Add Tasks #2816 by @fortmarek
Changed
- Emit warning instead of error when provisioning profiles is expired. #2919 by @iteracticman
- Updated the required Ruby version to 3.0.1 #2961 by @pepibumur
Fixed
.strings
Localization file synthesizers are now consistent and reproducible across multiple generations using thedevelopmentRegion
to choose the source one or defaulting toen
. #2887 by @fila95- Fix
tuist scaffold list
not listing plugin templates. #2958 by @danyf90.
1.42.0 - Builders
Added
- Add support for
testPlan
initialization with an array ofPath
. #2837 by @cipolleschi - Add
tuist dependencies update
command. #2819 by @laxmorek - Add
--build-output-path
option totuist build
#2835 by @Luis Padron.
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 thedevelopmentRegion
to choose the source one or defaulting toen
. #2887 by @fila95- Fix
tuist focus
not excluding targets fromcodeCoverageTargets
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
- Add support for
runPostActionsOnFailure
for post build actions. #2752 by @FranzBusch - Make
ValueGraph
serializable. #2811 by @laxmorek - Add support for configuration of cache directory #2566 by @adellibovi.
- Add support for
runForInstallBuildsOnly
for build actions by @StefanFessler
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
anddwarfdump
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 astaticLibrary
orstaticFramework
, the parent's deployment target isn't passed to the new target. #2830 by @fila95 - Fix
.messagesExtension
default settings to include the appropriateLD_RUNPATH_SEARCH_PATHS
#2824 by @kwridan - Fix the link to documented guidelines in pull request template #2833 by @mollyIV.
1.40.0
Added
- Add resource synthesizers #2746 by @fortmarek
- WIP Support for
SwiftPackageManager
dependencies inDependencies.swift
#2394 by @laxmorek.
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 thePackageDescription
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
- Add SRCROOT for Info.plist only when necessary #2706 by @fortmarek
- Support expand variables configuration in test scheme Environment Variables #2697 by @davebcn87
- Support unversioned core data models #2694 by @freak4pc
- Remove reference type Graph #2689 by @fortmarek
- Migrate mappers to ValueGraph #2683 by @fortmarek
- Migrate CacheMapper and CacheGraphMutator to ValueGraph #2681 by @fortmarek
- Migrate TestsCacheGraphMapper to ValueGraph #2674 by @fortmarek
- Updated swiftlint to 0.43.1 #2679 by @pepibumur
- Updated xcbeautify to 0.9.1 #2679 by @pepibumur
- Updated swiftlog to 1.4.2 #2679 by @pepibumur
- Updated CryptoSwift to 1.3.8 #2679 by @pepibumur
- Updated KeychainAccess to 4.2.2 #2679 by @pepibumur
- Updated swift-tools-support-core to 0.2.0 #2679 by @pepibumur
- Updated swift-argument-parser to 0.4.1 #2679 by @pepibumur
- Updated Queuer to 2.1.1 #2679 by @pepibumur
- Updated CombineExt to 1.3.0 #2679 by @pepibumur
Fixed
- Run all unit tests #2739 by @fortmarek
- Fix false positive duplicate bundle id lint warning #2707 by @kwridan
- Failing Homebrew runs in M1 environments #2711 by @pepibumur
- Installation of Tuist when
/usr/local/bin
doesn't exist #2710 by @pepibumur
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 totuist 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
orUITests
. #2641 by @FranzBusch - Remove building of ProjectDescriptionHelpers for
Plugin.swift
andConfig.swift
manifests (not supported for these manifests). #2642 by @luispadron
Fixed
- Fixed running
tuist test
with--clean
flag #2649 by @fortmarek - Install script bug fix: Adding bin folder to usr/local/ when it is missing #2655 by @tiarnann
- Fixed
Environment
retrieve methods #2653 by @DimaMishchenko
Removed
- Support for Xcode 11.x. #2651 by @pepibumur
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
- Double-quoted strings in ruby files #2634 by @fortmarek
- Improve
tuist generate
performance for projects with large amount of files #2598 by @adellibovi - Added wrap arguments swiftformat option #2606 by @fortmarek
- Remove build action for project generated in
tuist test
#2592 @fortmarek - Change the graph tree-shaker mapper to work with the value graph too #2545 by @pepibumur.
- Migrate
GraphViz
toValueGraph
#2542 by @fortmarek - Rename
TuistGraph.Dependency
toTuistGraph.TargetDependency
. #2614 by @laxmorek
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 forappExtension
s #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]((https://github.com/tuist/tuist/pull/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 onlyTestMyFrameworkA
#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
- Add ODR support #2490 by @DimaMishchenko
- Add support for StoreKit configuration files #2524 by @bolismauro
- Selective tests #2422 by @fortmarek
- Installation of
tuist
on Big Sur #2526 by @pepibumur.
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
toValueGraph
#2527 by @fortmarek - Replace
ExpressibleByStringLiteral
withExpressibleByStringInterpolation
forProjectDescription
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 viatuist cache warm FrameworkA FrameworkB
[#2393]((https://github.com/tuist/tuist/pull/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
- Fixed code coverage setting for project scheme #2493 by @adellibovi
- Fixed a bug in reporting stats event when Queue folder isn't created #2497 by @andreacipriani.
Changed
- Update post-generation interactors to use the graph traverser #2451 by @pepibumur.
1.33.0 - Plugin
Added
- Add support for
tuist graph
to show the graph of a subset of targets viatuist graph FrameworkA FrameworkB
[#2434]((https://github.com/tuist/tuist/pull/2434) by @adellibovi. - Send Tuist usage analytics event to https://stats.tuist.io/ #2331 by @andreacipriani.
- Plugin integration for local and git plugins by @luispadron and @kwridan.
- Introduce caching profiles #2356 by @mollyIV.
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
oftuist graph
now specifies where the manifest is. To specify the output directory of the graph, use--output-path
[#2434]((https://github.com/tuist/tuist/pull/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
- Fix missing autocompletion link on website #2396 by @fortmarek.
- Fix memory leak related to xcbeautify #2380 by @adellibovi.
- Fix autocompletion script output and documentation #2400 by @danyf90.
- Fix cache's hash calculation of resources #2325 by @natanrolnik.
- Fixed known issue that causes the
xcodebuild
process hang when runningtuist test
andtuist build
. #2297 by @Jake-Prickett. - Fix missing vendor directory in built from source versions #2388 by @natanrolnik.
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 ofCacheBuildPhaseProjectMapper
#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
- Add support for embedded scripts in a TargetAction. #2192 by @jsorge
- Support for
Carthage
dependencies inDependencies.swift
#2060 by @laxmorek. - Fourier CLI tool to automate development tasks #2196 by @pepibumur.
- Add support for embedded scripts in a TargetAction. #2192 by @jsorge
- Support
.s
source files #2199 by @dcvz. - Support for printing from the manifest files #2215 by @pepibumur.
Changed
- Replace
@UIApplicationMain
and@NSApplicationMain
with@main
#2222 by @RomanPodymov.
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
- Add
Plugin.swift
manifest #2095 by @luispadron - Add Publisher-based methods to System's API #2108 by @pepibumur.
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 ofGraph
#2110 by @pepibumur
1.26.0 - New World
Added
- Extend the tree-shaking logic to include workspace projects and targets #2056 by @pepibumur.
- Add support for copy files phase #2077 by @hebertialmeida.
Changed
- Change
launchArguments
ofTarget
andRunAction
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
- Synthesize accessors for stringsdict #1993 by @fortmarek
- Add support for
StencilSwiftKit
's additional filters. #1994 by @svastven. - Add
migration list-targets
command to show all targets sorted by number of dependencies #1732 of a given project by @andreacipriani. - Add support for test plans #1936 by @iteracticman.
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 inConfig
s 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 theTarget.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
- Autogenerated
xxx-Project
scheme is now shared #1902 by @fortmarek
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
- Allow ignoring cache when running tuist focus #1879 by @natanrolnik.
Changed
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
- Revert using root
.package.resolved
#1830 by @fortmarek
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
- Ensure
DEVELOPER_DIR
is used in allswiftc
calls #1819 by @kwridan - Fixed decoding bug on DefaultSettings #1817 by @jakeatoms
- Bool compiler error when generating accessor for plists #1827 by @fortmarek
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 addsSetup.swift
andConfig.swift
to the generated project if they exist. #1745 by @laxmorek
1.18.1 - Manaslu
Fixed
- Added
tuist lint code
support for custom .swiftlint.yml files. 1764 by @facumenzella - Fix GenerationOptions decoding #1781 by @alvarhansen
1.18.0 - Himalaya
Fixed
- Support initializing projects with dashes #1766 by @fortmarek
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 @laxmorektuist 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
totuist 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 withProject.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 fromtuist generate
#1712 by @pepibumur.
Added
--open
argument to thetuist generate
command #1712 by @pepibumur.--no-open
argument to thetuist 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
Target.dependsOnXCTest
returns true if the target is a test bundle #1679 by @pepibumur- Support multiple rendering algorithms in Tuist Graph #1655 by [@andreacipriani][https://github.com/andreacipriani]
1.15.0 - Riga
Changed
- Renamed Scale to Cloud #1633 by @pepibumur
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 thetuist 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
- Change the project name and organization from a mapper #1577 by @pepibumur.
- Update
ConfigGenerator
to useValueGraph
instead #1583 by @pepibumur.
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
- Rename cloud to scale #1571 by @pepibumur.
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
- Add benchmark rake task #1561 by @kwridan.
- Add
--json
flag totuist scaffold list
command #1589 by @mollyIV.
Fixed
UpHomebrew
(Up.homebrew(packages:)
) inSetup.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 toTuistCore.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
- Use the selected Xcode version when editing projects #1471 by @pepibumur.
- Search the
Setup.swift
file upwards if it doesn't exist in the current directory #1513 by @pepibumur. - Added
RxBlocking
to list of dependencies forTuistGenerator
#1514 by @fortmarek. - Uncommented iMessage extension product type #1515 by @olejnjak.
- Prettify the redirect page #1521 by @pepibumur.
- Implements two arguments on the
graph
command #1540 by @jeroenleenarts.
Added
tuist clean
command to delete the local cache #1516 by @RomainBoulay.tuist secret
command to generate cryptographically secure secrets #1471 by @pepibumur.
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
- Signing feature #1186 by @fortmarek
- Add support for watch architectures #1417 by @davidbrunow
- Add method to XcodeBuildController to show the build settings of a project #1422 by @pepibumur
- Support for passing the configuration to the
tuist build
command #1422 by @pepibumur
Fixed
- Fix
tuist build
building a wrong workspace #1427 by @fortmarek tuist edit
always creates a project in a new temp dir #1424 by @fortmarek- Fix
tuist init
andtuist scaffold
with new ArgumentParser version #1425 by @fortmarek --clean
argument ot the build command #1421 by @pepibumur
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
- Removed filtering of the environment variables exposed to shell commands #1416 by @kalkwarf
- Upgrade XcodeProj to 7.11.0 #1398 by @pepibumur
- Move the auto-generation of schemes to a model mapper #1357 by @pepibumur
1.9.0 - Speedy Gonzales
Added
- Support for enabling the cloud insights feature #1335 by @pepibumur
- Value graph model #1336 by @pepibumur
- Breaking Support for setting diagnostics options to the test and run actions #1382 by @pepibumur
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
- Read the Swift version from the environment #1317 by @pepibumur
Added
Removed
- Don't set the main and launch storyboard when using the default
InfoPlist
#1289 by @pepibumur
Fixed
- Fix example in documentation for
scaffold
#1273 by @fortmarek - Fix help commands (argument parser regression) #1250 by @fortmarek
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
SideEffectDescriptor
s 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 toSettingsDictionary
, allowing settings to be defined this way:
Removed
- Breaking: Deprecated methods from
ProjectDescription.Settings
#1202 by by @pepibumur.
1.6.0
Fixed
- Don't try to delete a file if it doesn't exist #1177 by @pepibumur
Changed
- Bump XcodeProj to 7.10.0 #1182 by @pepibumur
Added
- Encrypt/decrypt command #1127 by @fortmarek
- A link to the example app in the uFeatures documentation #1176 by @pepibumur.
- Add ProjectGeneratorGraphMapping protocol and use it from ProjectGenerator #1178 by @pepibumur
CloudSessionController
component to authenticate users #1174 by @pepibumur.- Minor improvements #1179 by @pepibumur
- Configuring manifests through environment variables #1183 by @pepibumur.
1.5.4
Fixed
- Tuist not working with Xcode < 11.4 by @pepibumur.
1.5.3
Added
Derived
to.gitignore
when runningtuist init
#1171 by @fortmarek
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 theinit
command dont' compile #1156 by @pepibumur.
Changed
- Generate only files with
.stencil
extension #1153 by @fortmarek
Added
- Support for Xcode 11.4 #1152 by @pepibumur.
SWIFT_VERSION
is set to 5.2 automatically if it's not set #1152 by @pepibumur.
1.5.1
Fixed
- Update config name in the default template #1150 by @pepibumur
- Fix example framework template not being generated #1149 by @fortmarek
1.5.0
Added
- Scaffold init #1129 by @fortmarek
- Scaffold generate #1126 by @fortmarek
- Scaffold load #1092 by @fortmarek
- Add Mint up #1131 @mollyIV.
Fixed
Removed
Graphing
protocol #1128 by @pepibumur
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
whenPROJECT_DIR
includes a space #1037 by @fortmarek - Fix code example compilation issues in "Project description helpers" documentation #1081 by @chojnac
Added
scaffold
command to generate user-defined templates #1126 by @fortmarek- New
ProjectDescription
models forscaffold
command #1082 by @fortmarek - Allow specifying Project Organization name via new
organizationName
parameter toProject
initializer or viaConfig
new GenerationOption. #1062 by @c0diq tuist lint
command #1043 by @pepibumur.- Add
--verbose
#1027 by @ollieatkinson. TuistInsights
target #1084 by @pepibumur.- Add
cloudURL
attribute toConfig
#1085 by @pepibumur.
Changed
- Rename
TuistConfig.swift
toConfig.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
- When using
tuist edit
it's possible to runtuist generate
from Xcode by simply running the target #958 by @vytis - Add FAQ section @mollyIV.
- Add benchmarking helper tool #957 by @kwridan.
- Add metal as a valid source extension #1023 by @natanrolnik
XcodeBuildController
utility toTuistAutomation
#1019 by @pepibumur.- Add metal as a valid source extension #1023 by @natanrolnik
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 anyProject
orTarget
settings. #698 by @rowwingman. ProjectEditor
utility #702 by @pepibumur.- Fix warnings in the project, refactor SHA256 diegest code #704 by @rowwingman.
- Define
ArchiveAction
onScheme
#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 fromString
toTestableTarget
is a description of target that adds to theTestAction
, 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
- Ensure custom search path settings are included in generated projects #751 by @kwridan
- Remove duplicate HEADER_SEARCH_PATHS #787 by @kwridan
- Fix unstable scheme generation #790 by @marciniwanicki
- Add defaultConfigurationName to generated projects #793 by @kwridan
- Add knownRegions to generated projects #792 by @kwridan
0.19.0
Added
- XCTAssertThrowsSpecific convenient function to test for specific errors #535 by @fortmarek
HTTPClient
utility class toTuistEnvKit
#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
toTestAction
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
toTuistSupport
#621 by @pepibumur. - Introduce
Systems.shared
,TuistTestCase
, andTuistUnitTestCase
#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
- Fix false positive cycle detection #546 by @kwridan
- Fix test target build settings #661 by @kwridan
- Fix hosted unit test dependencies #664/ by @kwridan
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
- New InfoPlist type,
.extendingDefault([:])
#448 by @pepibumur - Forward the output of the
codesign
command to make debugging easier when the copy frameworks command fails #492 by @pepibumur. - Support for multi-line settings (see how to migrate) #464 by @marciniwanicki
- Support for SPM #394 by @pepibumur & @fortmarek & @kwridan & @ollieatkinson
- Xcode 11 Support by @ollieatkinson
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
- Update XcodeProj to 7.0.0 #421 by @pepibumur.
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
- Ensuring the correct default settings provider dependency is used #389 by @kwridan
- Fixing build settings repeated same value #391 by @platonsi
- Duplicated files in the sources build phase when different glob patterns match the same files #388 by @pepibumur.
- Support
.d
source files #396 by @pepibumur. - Codesign frameworks when copying during the embed phase #398 by @ollieatkinson
- 'tuist local' failed when trying to install from source #402 by @ollieatkinson
- Omitting unzip logs during installation #404 by @kwridan
- Fix "The file couldn’t be saved." error #408 by @marciniwanicki
- Ensure generated projects are stable #410 by @kwridan
- Stop generating empty
PBXBuildFile
settings #415 by @marciniwanicki
0.15.0
Changed
- Introduce the
InfoPlist
file #373 by @pepibumur. - Add
defaultSettings
option toSettings
definition to control default settings generation #378 by @marciniwanicki
Added
- Adding generate command timer #335 by @kwridan
- Support Scheme manifest with pre/post action #336 @dangthaison91.
- Support local Scheme (not shared) flag #341 @dangthaison91.
- Support for compiler flags #386 by @pepibumur.
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
- Adding support for project additional files #314 by @kwridan
- Adding support for resource folder references #318 by @kwridan
- Breaking Swift 5 support #317 by @pepibumur.
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
- Add Homebrew tap up #281 by @pepibumur
- Create a Setup.swift file when running the init command #283 by @pepibumur
- Update
tuistenv
when runningtuist update
#288 by @pepibumur. - Allow linking of static products into dynamic frameworks #299 by @ollieatkinson
- Workspace improvements #298 by @ollieatkinson & @kwridan.
Removed
- Breaking Removed "-Project" shared scheme from being generated #303 by @ollieatkinson
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 generatedAppDelegate.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
andSWIFT_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
- Rename manifest group to
Manifest
#227 by @pepibumur. - Rename manifest target to
Project-Manifest
#227 by @pepibumur. - Replace swiftlint with swiftformat #239 by @pepibumur.
- Bump xcodeproj version to 6.6.0 #248 by @pepibumur.
- Fix an issue with Xcode not being able to reload the projects when they are open #247
- Support array for
sources
andresources
paths #201 @dangthaison91.
Added
- Integration tests for
generate
command #208 by @marciniwanicki & @kwridan - Frequently asked questions to the documentation #223/ by @pepibumur.
- Generate a scheme with all the project targets #226 by @pepibumur
- Documentation for contributors #229 by @pepibumur
- Support for Static Frameworks #194 @ollieatkinson
Removed
- Up attribute from the
Project
model #228 by @pepibumur. - Support for YAML and JSON formats as Project specifications #230 by @ollieatkinson
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
- Breaking Up can now be specified via
Setup.swift
https://github.com/tuist/tuist/issues/203 by @marciniwanicki & @kwridan - Schemes generation #188 by @pepibumur.
- Environment variables per target #189 by @pepibumur.
- Danger warn that reminds contributors to update the docuementation #214 by @pepibumur
- Rubocop #216 by @pepibumur.
- Fail init command if the directory is not empty #218 by @pepibumur.
- Verify that the bundle identifier has only valid characters #219 by @pepibumur.
- Merge documentation from the documentation repository #222 by @pepibumur.
- Danger #186 by @pepibumur.
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
- JSON and YAML manifests #190 by @pepibumur.
0.10.2
Fixed
- Processes not stopping after receiving an interruption signal #180 by @pepibumur.
0.10.1
Changed
- Replace ReactiveTask with SwiftShell #179 by @pepibumur.
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
- Tuist up command #158 by @pepibumur.
- Support
.cpp
and.c
source files #178 by @pepibumur.
0.9.0
Added
- Acceptance tests #166 by @pepibumur.
Fixed
- Files and groups sort order #164 by @pepibumur.
Added
- Generate both, the
Debug
andRelease
configurations #165 by @pepibumur.
0.8.0
Added
- Swift 4.2.1 compatibility by @pepibumur.
Removed
- Module loader #150/files by @pepibumur.
Added
- Geration of projects and workspaces in the
~/.tuist/DerivedProjects
directory #146 by pepibumur.
0.7.0
Added
- Support for actions #136 by @pepibumur.
0.6.0
Added
- Check that the local Swift version is compatible with the version that will be installed #134 by @pepibumur.
Changed
- Bump xcodeproj to 6.0.0 #133 by @pepibumur.
Removed
- Remove
tuistenv
from the repository #135 by @pepibumur.
0.5.0
Added
- Support for JSON and Yaml manifests #110 by @pepibumur.
- Generate
.gitignore
file when running init command #118 by @pepibumur. - Git ignore Xcode and macOS files that shouldn't be included on a git repository #124 by @pepibumur.
- Focus command #129 by @pepibumur.
Fixed
- Snake-cased build settings keys #107 by @pepibumur.
0.4.0
Added
- Throw an error if a library target contains resources #98 by @pepibumur.
- Playgrounds support #103 by @pepibumur.
- Faster installation using bundled releases #104 by @pepibumur.
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
- Homebrew formula
0ab1c6e109
by @pepibumur.
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
- Install command #83 by @pepibumur.
--help-env
command to tuistenv by @pepibumur.
Fixed
- Fix missing target dependencies by @pepibumur.
Removed
- Internal deprecation warnings by @pepibumur.
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
andJSONConvertible
replaced with Swift'sCodable
conformance.
Removed
- The scheme attribute from the
Project
model #67 by @pepibumur. - Build phases and build files #67 by @pepibumur.