Resolves https://github.com/tuist/tuist/issues/3081
- Wrap paths into quotation marks
Test Plan:
- Create a Project.swift file in a folder with spaces in the path
- `tuist local 1.44.0`
- `tuist bundle`
- `tuist edit`
- Attempt the build the Manifest project
- Verify it succeeds without errors
* Add --skip-ui-tests parameter to tuist test command
* Add changelog entry
* Fix formatting
* Add unit tests target in tests
* Rename PruneUITestsProjectMapperTests to SkipUITestsProjectMapperTests
* Rename skipUiTests to skipUITests
* Restore Package.resolved
* Update documentation
* Get rid of short for skip ui tests flag and update the docs
- The graph loading process has been split into finer grained components over the past year to accomodate several ehancements to the `generate` command like, concurrent loading, mappers, plugins and more
- This has sadly made loading graphs outside of the generator a bit more verbose and error prone
- The `tuist graph` command fails in cases where a project has a dependency in another project due to leveraging the incorrect loading sequence
- To address this, a new component `ManifestGraphLoader` has been created in `TuistKit` to allow services that require the graph without any additional features to easily load by specifying a path (i.e. a simplified version of Graph Loader)
- The component ensures that plugins are loaded ahead of the loading process
- The `graph` acceptance tests have been enabled to help catch any future regressions to the graph command
Test Plan:
- Run `swift build && swift run tuist graph --path fixtures/ios_app_with_custom_workspace/App`
- Run `swift build && swift run tuist lint code --path fixtures/ios_app_with_custom_workspace/App`
- Run `swift build && swift run tuist lint project --path fixtures/ios_app_with_custom_workspace/App`
This adds the ability to pass `-scmProvider system` to `xcodebuild -resolveDependencies` so it uses the system's credentials for Git, for example, instead of forcing users to add their Git account to Xcode's Accounts tab.
When working in teams, various file header templates might apply. This is done by [using `IDETemplateMacros.plist`](https://help.apple.com/xcode/mac/current/#/dev91a7a31fc) inside xcodeproj. This plist might be shared so located under `xcshareddata` and also user-specific. This PR currently addresses shared case.
- A new `fileHeaderTemplate` property is exposed on both `Project` and `Workspace`
- Users can optionally choose if they'd like to define at the workspace level for larger multi-project setups, or on an individual project for small single project setups
- The header template supports two options, reading from a file on disk via `.file(Path)` or inline in the manifest via `.string(String)`
* Convert build service to use value graph.
* Migrate doc service to use value graph.
* Build migrate BuildGraphInspector.
* Edit CHANGELOG.
* Remove TargetNodeGraphMapper.
* Migrate GraphViz to ValueGraph.
* Fix style attributes for target.
* Run style correct.
* Edit CHANGELOG.
* Fix depends on XCTest.
* Do not include external dependencies if they should be skipped.
* Rename directTargetDependencies to directLocalTargetDependencies.
* Implement directTargetDependencies.
* Run style correct.
- To aid the migration from `Graph` to `ValueGraph`, a new `ConfigLoader` component is being added
- This will allow decoupling config loading from graph loading (configs are not tied to graph, they are standalone manifests/models)
- Replaced all usages where config loading was required to leverage the dedicated component instead of the graph loader or the model loader
Test Plan:
- Verify all unit tests pass
- Smoke test running the generation process on a few fixtures where configs are defined
* Convert build service to use value graph.
* Migrate doc service to use value graph.
* Build migrate BuildGraphInspector.
* Edit CHANGELOG.
* Remove TargetNodeGraphMapper.
* Add derived data path to test command.
* Hash all tests targets files.
* Use temporary tests cache directory and save it after successul run.
* Fix path locations.
* Fix no test schemes found.
* Remove debug paths.
* Save hashes only if all project schemes are run.
* Prepend input paths with $(SRCROOT).
* Add SourceRootPathProjectMapper.
* Add tests for derivedDataPath.
* Rewrite tests hashing to ValueGraph.
* Add tests for TestsGraphContentHasher.
* Add TestsCacheGraphMapperTests.
* Revert back to using old Graph.
* Add tests for TestsCacheGraphMapper.
* Add tests for TestService.
* Add automation path option.
* Add tests cache acceptance test.
* Add caching documentation.
* Minor changes.
* Fix tests that had PROJECT_DIR.
* Fix SRCROOT for script paths.
* Fix embed script generator.
* Fix target generator tests.
* Add decision record.
* Edit CHANGELOG.
* Fix project scheme not found.
* Refactor GraphContentHasher to be agnostic to cache.
* Adjust decision record.
* Add testsCacheTemporaryDirectory to tearDown.
* Fix test acceptance test.
* Fix ContenthashingIntegrationTests.
* Add additionalStrings parameter.
* Move automation path to env variables.
* Create interface for generating Generator.
* Fix hashing of derived info plist.
* Introduce cache profiles
* Add changelog entry
* Fix unit tests for content hashing
* Apply review feedback
* Move cache options to a separate file
* Fix unit tests after merge conflicts
* Cleanup the docs after main rebase
- Add logic for loading Plugin manifests.
- Add build step for building helper plugins as part of
ProjectDescriptionHelpers.
- Update tests
- Add fixture to test plugins workflow.
* Send events to https://stats.tuist.io/
* Update TuistComand to send event
* Update AsyncQueue tests to reflect changes in API
* Add CommandEventFactoryTests
* Fix trackable command tests
* Swift format/lint
* Format
* Removed unused class
* Update documentation comment
* Update Changelog
* Allow opt-out via TUIST_STATS_OPT_OUT env variable
* Make duration in ms
* Clean Environment.shared.isStatsEnabled
* Make async queue completion more explicit
* Add AsyncExit