4.0.0
These release notes are longer than usual because it's a major release and we include migration guidelines. Breaking changes are prefixed with Breaking.
Tuist
Improved
- Improve performance of resolving manifest file paths #5871 by @anlaital-oura
Removed
- Breaking: Remove the signing capabilities #5716 by @pepicrft. Signing is already solved by community tooling like Fastlane and Xcode itself, which do a much better job at that. If you were using Tuist signing capabilities, which consisted of encrypting the certificates and profiles in the repository and installing them in the right places at generation time, you might want to replicate that logic in your own scripts that run before project generation. In particular:
- A script that decrypts the certificates and profiles using a key either stored in the file-system or in a environment variable, and installs certificates in the keychain, and the provisioning profiles in the directory
~/Library/MobileDevice/Provisioning\ Profiles
. - A script that can take an existing profiles and certificates and encrypt them.
- A script that decrypts the certificates and profiles using a key either stored in the file-system or in a environment variable, and installs certificates in the keychain, and the provisioning profiles in the directory
- Breaking: Remove Carthage integration via
Dependencies.swift
. You'll have to useCarthage
directly to pull the pre-compiled frameworks and XCFrameworks into Carthage's standard directory, and then reference those binaries from your tagets using theTargetDependency.xcframework
andTargetDependency.framework
cases. - Breaking: Remove the
TargetDependency.packagePlugin
API in favourTargetDependency.package
which takes an additional argument where you can specify the type of package. - Breaking: Remove the APIs that were marked as deprecated #5560 by @danyf90
Changed
- Breaking: Remove
tuistenv
in favor of Mise as default installer with Homebrew as an alternative. You'll have to uninstall the current version of Tuist by runningcurl -Ls https://uninstall.tuist.io | bash
and then install it using the installation method of your choice. You'll have to propagate this installation method across CI environments and developers' local environment. We strongly recommend the usage of Mise because it's able to install and activate versions deterministically across environments. #5724 by @pepicrft - Breaking: Remove the
init
from all theProjectDescription
models to improve the readability and expressiveness of the APIs. Every model provides now a static constructor. We commend checking out the new APIs in our documentation site - Breaking: Add
--no-selective-testing
flag, rename--no-cache
to--no-binary-cache
by @fortmarek - Breaking: Rename
tuist fetch
fortuist install
to align with the industry convention. You might need to adjust your CI pipelines and communicate the new command name to your team #5857 by @pepicrft - Breaking: Change the
Package.swift
directory from/Tuist
to root. You'll have to move the content from yourTuist/Dependencies.swift
to aPackage.swift
at the root, and use the#if TUIST
directive to configure the integration. You can use the tuist Package.swift as a reference #5862 by @fortmarek - Rename the builds cache directory from
builds
toBinaryCache
to better reflect its purpose #5842 by @fortmarek - Make all
ProjectDescription
models attributes mutable for better ergonomics #5843 by @fortmarek - Align the cache directories with the UNIX XDG Base Directory Specification #5855 @pepicrft
- Improve scaffold feature's default parameter type for stencil file #5845 by @haeseoklee
- Throw an error when focusing on a non-existent target #5874 by @fortmarek
Fixed
- Fix error when running
tuist generate
and dependencies have not been previously fetch withtuist install
#5875 by @fortmarek - Fix
tuist clean dependencies
#5872 by @fortmarek - Fix running
tuist clean
without a specific category #5868 by @fortmarek
Tuist Cloud
Fixed
- Fix an issue that caused binary-caching of targets for macOS to fail due to missing destinations for targetted architectures.
Changed
- Rename cache directories from
builds
toBinaryCache
and fromtests
toSelectiveTests
to better reflect its purpose #5842 by @fortmarek - Rename
tuist cache warm
totuist cache
to shorten the command execution. - Move the
tuist cache print-hashes
option intotuist cache --print-hashes
.
Removed
- Breaking: Remove the cache configuration and the concept of profiles in favor of passing the configuration to use via the
--configuration
flag when warming the cache withtuist cache
. We plan to add the same option to the other commands and just the generation so that the only configuration generated is the one that has been passed via the flag. - Breaking: Remove the
--skip-cache
flag from thegenerate command
in favor of controlling for which targets the binary cache should be skipped by using the arguments.-
Before
tuist generate --skip-cache Foo
-
After
tuist generate Foo
-