2018-04-16 17:01:02 +08:00
# Changelog
2018-04-21 18:37:33 +08:00
2018-04-17 21:08:28 +08:00
Please, check out guidelines: https://keepachangelog.com/en/1.0.0/
2018-04-16 17:01:02 +08:00
2019-06-26 15:44:44 +08:00
## Next
2019-12-24 01:18:25 +08:00
- Support ignoring specific source file pattern when adding them to the target https://github.com/tuist/tuist/pull/811 by @vytis .
- Made targets testable if there is a corresponding test target https://github.com/tuist/tuist/pull/818 by @vytis .
2019-12-18 20:41:38 +08:00
2019-12-19 23:07:10 +08:00
### Added
- `TuistGalaxy` & `TuistAutomation` targets https://github.com/tuist/tuist/pull/817 by @pepibumur .
2019-12-17 19:12:42 +08:00
## 1.0.1
### Fixed
- Pass through `DEVELOPER_DIR` when set by the environment when determining the path to the currently selected Xcode. @ollieatkinson
2019-12-17 17:30:59 +08:00
## 1.0.0
2019-12-05 22:12:14 +08:00
### Changed
2019-12-11 19:14:42 +08:00
2019-12-05 22:12:14 +08:00
- Run pipelines with Xcode 11.2.1 on CI @pepibumur .
2019-11-26 22:49:32 +08:00
### Removed
2019-11-28 22:22:51 +08:00
2019-11-26 23:02:48 +08:00
- **Breaking** Generate manifests target as part of the generated project https://github.com/tuist/tuist/pull/724 by @pepibumur .
2019-11-28 21:10:01 +08:00
- The installation no longer checks if the Swift version is compatible https://github.com/tuist/tuist/pull/727 by @pepibumur .
2019-12-07 01:13:51 +08:00
- Don't include the manifests in the generated workspace https://github.com/tuist/tuist/pull/754 by @pepibumur .
2019-11-26 22:49:32 +08:00
2019-11-22 17:05:12 +08:00
### Added
- Add `ProjectDescription.Settings.defaultSettings` none case that don't override any `Project` or `Target` settings. https://github.com/tuist/tuist/pull/698 by @rowwingman .
- `ProjectEditor` utility https://github.com/tuist/tuist/pull/702 by @pepibumur .
2019-11-24 06:21:19 +08:00
- Fix warnings in the project, refactor SHA256 diegest code https://github.com/tuist/tuist/pull/704 by @rowwingman .
2019-10-03 18:39:44 +08:00
- Define `ArchiveAction` on `Scheme` https://github.com/tuist/tuist/pull/697 by @grsouza .
2019-11-26 01:17:29 +08:00
- `tuist edit` command https://github.com/tuist/tuist/pull/703 by @pepibumur .
2019-11-27 01:36:56 +08:00
- Support interpolating formatted strings in the printer https://github.com/tuist/tuist/pull/726 by @pepibumur .
2019-11-28 01:54:31 +08:00
- Support for paths relative to root https://github.com/tuist/tuist/pull/727 by @pepibumur .
2019-11-28 07:10:24 +08:00
- Replace `Sheme.testAction.targets` type from `String` to `TestableTarget` is a description of target that adds to the `TestAction` , you can specify execution tests parallelizable, random execution order or skip tests https://github.com/tuist/tuist/pull/728 by @rowwingman .
2019-11-28 22:22:51 +08:00
- Galaxy manifest model https://github.com/tuist/tuist/pull/729 by @pepibumur .
2019-12-07 01:13:51 +08:00
- Make scheme generation methods more generic https://github.com/tuist/tuist/pull/730 by @adamkhazi @kwridan .
2019-12-11 00:05:52 +08:00
- Workspace Schemes https://github.com/tuist/tuist/pull/752 by @adamkhazi @kwridan .
2019-12-03 15:07:22 +08:00
- `SimulatorController` with method to fetch the runtimes https://github.com/tuist/tuist/pull/746 by @pepibumur .
2019-12-07 20:57:43 +08:00
- Add RxSwift as a dependency of `TuistKit` https://github.com/tuist/tuist/pull/760 by @pepibumur .
2019-12-07 22:01:34 +08:00
- Add cache command https://github.com/tuist/tuist/pull/762 by @pepibumur .
2019-12-07 20:45:39 +08:00
- Utility to build xcframeworks https://github.com/tuist/tuist/pull/759 by @pepibumur .
2019-12-08 00:13:15 +08:00
- Add `CacheStoraging` protocol and a implementation for a local cache https://github.com/tuist/tuist/pull/763 by @pepibumur .
2019-12-08 01:32:45 +08:00
- Add support for changing the cache and versions directory using environment variables https://github.com/tuist/tuist/pull/765 by @pepibumur .
2019-12-09 09:50:21 +08:00
- Reactive interface to the System utility https://github.com/tuist/tuist/pull/770 by @pepibumur
2019-12-11 19:14:42 +08:00
- Workflow to make sure that documentation and website build https://github.com/tuist/tuist/pull/783 by @pepibumur .
2019-12-17 17:30:59 +08:00
- Support for `xcframework` https://github.com/tuist/tuist/pull/769 by @lakpa
2019-12-16 04:40:12 +08:00
- Support generating info.plist for Watch Apps & Extensions https://github.com/tuist/tuist/pull/756 by @kwridan
2019-11-20 07:31:01 +08:00
2019-12-05 21:53:14 +08:00
### Fixed
- Ensure custom search path settings are included in generated projects https://github.com/tuist/tuist/pull/751 by @kwridan
Remove duplicate HEADER_SEARCH_PATHS (#787)
- In the even two library dependencies shared the same `publicHeaders` path (e.g. `libcrypto.a` and `libssl.a` in OpenSSL) duplicate entries were added to the `HEADER_SEARCH_PATHS` build setting
- This was regressed due to an earlier change https://github.com/tuist/tuist/pull/751
- previously the uniquing was happening in the settings helper when build settings were extended multiple times
- To resolve this, we now ensure we unique paths being added
- Additionally a test is included to ensure this doesn't regress in the future
Test Plan:
- Verify the unit tests pass
A bit of a contrived manual test case
update the fixture in `fixtures/ios_app_with_static_libraries/Modules/A/Project.swift`
```swift
let project = Project(name: "A",
targets: [
Target(name: "A",
platform: .iOS,
product: .staticLibrary,
bundleId: "io.tuist.A",
infoPlist: "Info.plist",
sources: "Sources/**",
dependencies: [
.project(target: "B", path: "../B"),
.library(path: "../C/prebuilt/C/libC.a",
publicHeaders: "../C/prebuilt/C",
swiftModuleMap: "../C/prebuilt/C/C.swiftmodule"),
// Add a duplicate
.library(path: "../C/prebuilt/C/libC.a",
publicHeaders: "../C/prebuilt/C",
swiftModuleMap: "../C/prebuilt/C/C.swiftmodule")
])
])
```
This of course causes a duplicate binary (hence why it wasn't included) but can help illustrate a situation where two `.library` dependencies point to the same `publicHeaders` path.
2019-12-13 01:33:41 +08:00
- Remove duplicate HEADER_SEARCH_PATHS https://github.com/tuist/tuist/pull/787 by @kwridan
2019-12-16 03:06:11 +08:00
- Fix unstable scheme generation https://github.com/tuist/tuist/pull/790 by @marciniwanicki
2019-12-16 05:12:24 +08:00
- Add defaultConfigurationName to generated projects https://github.com/tuist/tuist/pull/793 by @kwridan
2019-12-17 00:21:42 +08:00
- Add knownRegions to generated projects https://github.com/tuist/tuist/pull/792 by @kwridan
2019-12-05 21:53:14 +08:00
2019-11-15 01:17:07 +08:00
## 0.19.0
2019-10-08 21:14:31 +08:00
### Added
2019-10-10 22:53:46 +08:00
- XCTAssertThrowsSpecific convenient function to test for specific errors https://github.com/tuist/tuist/pull/535 by @fortmarek
2019-10-08 21:14:31 +08:00
- `HTTPClient` utility class to `TuistEnvKit` https://github.com/tuist/tuist/pull/508 by @pepibumur .
2019-10-30 02:42:21 +08:00
- **Breaking** Allow specifying a deployment target within project manifests https://github.com/tuist/tuist/pull/541 by @mollyIV
- Add support for sticker pack extension & app extension products https://github.com/tuist/tuist/pull/489 by @Rag0n
2019-11-06 21:36:43 +08:00
- Utility to locate the root directory of a project https://github.com/tuist/tuist/pull/622 by @pepibumur .
- Adds `codeCoverageTargets` to `TestAction` to make XCode gather coverage info only for that targets https://github.com/tuist/tuist/pull/619 by @abbasmousavi
2019-11-04 20:49:36 +08:00
- Enable the library evololution for the ProjectDescription framework https://github.com/tuist/tuist/pull/625 by @pepibumur .
2019-11-06 21:36:43 +08:00
- Add support for watchOS apps https://github.com/tuist/tuist/pull/623 by @kwridan
2019-11-11 18:37:50 +08:00
- Add linting for duplicate dependencies https://github.com/tuist/tuist/pull/629 by @lakpa
2019-10-08 21:14:31 +08:00
2019-10-10 17:28:51 +08:00
### Changed
2019-11-11 18:33:17 +08:00
- Change dependencies in `Package.resolved` to version from branch https://github.com/tuist/tuist/pull/631 by @fortmarek
2019-11-01 15:35:06 +08:00
- Rename `TuistCore` to `TuistSupport` https://github.com/tuist/tuist/pull/621 by @pepibumur .
2019-10-10 17:28:51 +08:00
- Introduce `Systems.shared` , `TuistTestCase` , and `TuistUnitTestCase` https://github.com/tuist/tuist/pull/519 by @pepibumur .
2019-10-29 16:16:47 +08:00
- Change generated object version behaviour to mimic Xcode 11 by @adamkhazi
2019-10-30 00:13:00 +08:00
- **Breaking** Refine API for Swift Packages https://github.com/tuist/tuist/pull/578 by @ollieatkinson
2019-11-11 22:22:07 +08:00
- Support ability to locate multiple Tuist directories https://github.com/tuist/tuist/pull/630 by @kwridan
2019-10-10 17:28:51 +08:00
2019-10-15 21:26:07 +08:00
### Fixed
- Fix false positive cycle detection https://github.com/tuist/tuist/pull/546 by @kwridan
2019-11-13 22:06:30 +08:00
- Fix test target build settings https://github.com/tuist/tuist/pull/661 by @kwridan
2019-11-14 19:24:09 +08:00
- Fix hosted unit test dependencies https://github.com/tuist/tuist/pull/664/ by @kwridan
2019-10-15 21:26:07 +08:00
2019-09-30 16:35:07 +08:00
## 0.18.1
2019-09-30 16:30:29 +08:00
### Removed
2019-09-30 16:35:07 +08:00
- Reverting https://github.com/tuist/tuist/pull/494 using variables in `productName` doesn't evaluate in all usage points within the generated project
2019-09-30 16:30:29 +08:00
2019-09-29 03:12:09 +08:00
## 0.18.0
2019-09-03 23:50:26 +08:00
### Added
- New InfoPlist type, `.extendingDefault([:])` https://github.com/tuist/tuist/pull/448 by @pepibumur
2019-09-10 17:41:39 +08:00
- Forward the output of the `codesign` command to make debugging easier when the copy frameworks command fails https://github.com/tuist/tuist/pull/492 by @pepibumur .
2019-09-11 19:13:18 +08:00
- Support for multi-line settings (see [how to migrate ](https://github.com/tuist/tuist/pull/464#issuecomment-529673717 )) https://github.com/tuist/tuist/pull/464 by @marciniwanicki
2019-09-23 01:32:34 +08:00
- Support for SPM https://github.com/tuist/tuist/pull/394 by @pepibumur & @fortmarek & @kwridan & @ollieatkinson
2019-09-24 16:28:58 +08:00
- Xcode 11 Support by @ollieatkinson
2019-09-03 23:50:26 +08:00
2019-08-21 18:29:23 +08:00
### Fixed
2019-09-03 23:50:26 +08:00
2019-08-21 18:29:23 +08:00
- Transitively link static dependency's dynamic dependencies correctly https://github.com/tuist/tuist/pull/484 by @adamkhazi
2019-08-30 18:11:19 +08:00
- Prevent embedding static frameworks https://github.com/tuist/tuist/pull/490 by @kwridan
2019-09-19 03:34:03 +08:00
- Output losing its format when tuist is run through `tuistenv` https://github.com/tuist/tuist/pull/493 by @pepibumur
2019-09-19 21:31:10 +08:00
- Product name linting failing when it contains variables https://github.com/tuist/tuist/pull/494 by @dcvz
2019-09-20 14:48:09 +08:00
- Build phases not generated in the right position https://github.com/tuist/tuist/pull/506 by @pepibumur
2019-09-25 05:41:05 +08:00
- Remove \$(SRCROOT) from being included in `Info.plist` path https://github.com/tuist/tuist/pull/511 by @dcvz
2019-10-04 04:51:09 +08:00
- Prevent generation of redundant file elements https://github.com/tuist/tuist/pull/515 by @kwridan
2019-08-21 18:29:23 +08:00
2019-08-14 23:25:38 +08:00
## 0.17.0
2019-07-02 22:13:27 +08:00
### Added
2019-07-18 21:48:45 +08:00
2019-07-02 22:13:27 +08:00
- `tuist graph` command https://github.com/tuist/tuist/pull/427 by @pepibumur .
2019-07-04 20:47:11 +08:00
- Allow customisation of `productName` in the project Manifest https://github.com/tuist/tuist/pull/435 by @ollieatkinson
2019-07-10 17:58:00 +08:00
- Adding support for static products depending on dynamic frameworks https://github.com/tuist/tuist/pull/439 by @kwridan
2019-07-18 21:48:45 +08:00
- Support for executing Tuist by running `swift project ...` https://github.com/tuist/tuist/pull/447 by @pepibumur .
2019-07-22 15:05:23 +08:00
- New manifest model, `TuistConfig` , to easily configure Tuist's functionalities https://github.com/tuist/tuist/pull/446 by @pepibumur .
2019-07-24 18:39:04 +08:00
- Adding ability to re-generate individual projects https://github.com/tuist/tuist/pull/457 by @kwridan
2019-07-25 20:56:40 +08:00
- Support multiple header paths https://github.com/tuist/tuist/pull/459 by @adamkhazi
2019-08-01 03:44:11 +08:00
- Allow specifying multiple configurations within project manifests https://github.com/tuist/tuist/pull/451 by @kwridan
2019-08-04 17:01:57 +08:00
- Add linting for mismatching build configurations in a workspace https://github.com/tuist/tuist/pull/474 by @kwridan
2019-08-04 19:22:49 +08:00
- Support for CocoaPods dependencies https://github.com/tuist/tuist/pull/465 by @pepibumur
2019-08-07 19:48:29 +08:00
- Support custom .xcodeproj name at the model level https://github.com/tuist/tuist/pull/462 by @adamkhazi
2019-08-08 01:44:44 +08:00
- `TuistConfig.compatibleXcodeVersions` support https://github.com/tuist/tuist/pull/476 by @pepibumur .
2019-08-14 14:03:40 +08:00
- Expose the `.bundle` product type https://github.com/tuist/tuist/pull/479 by @kwridan
2019-07-02 22:13:27 +08:00
2019-06-26 15:44:44 +08:00
### Fixed
2019-07-13 02:27:10 +08:00
- Ensuring transitive SDK dependencies are added correctly https://github.com/tuist/tuist/pull/441 by @adamkhazi
2019-06-26 15:44:44 +08:00
- Ensuring the correct platform SDK dependencies path is set https://github.com/tuist/tuist/pull/419 by @kwridan
2019-07-04 06:09:57 +08:00
- Update manifest target name such that its product has a valid name https://github.com/tuist/tuist/pull/426 by @kwridan
2019-07-24 15:58:37 +08:00
- Do not create `Derived/InfoPlists` folder when no InfoPlist dictionary is specified https://github.com/tuist/tuist/pull/456 by @adamkhazi
2019-08-14 14:03:15 +08:00
- Set the correct lastKnownFileType for localized files https://github.com/tuist/tuist/pull/478 by @kwridan
2019-06-26 15:44:44 +08:00
2019-06-26 17:41:28 +08:00
### Changed
2019-07-18 21:48:45 +08:00
2019-06-26 17:41:28 +08:00
- Update XcodeProj to 7.0.0 https://github.com/tuist/tuist/pull/421 by @pepibumur .
2019-06-21 15:50:31 +08:00
## 0.16.0
2018-08-01 05:13:38 +08:00
2019-06-08 10:52:45 +08:00
### Added
2019-07-18 21:48:45 +08:00
2019-06-08 10:52:45 +08:00
- `DefaultSettings.none` to disable the generation of default build settings https://github.com/tuist/tuist/pull/395 by @pepibumur .
2019-06-08 04:44:36 +08:00
- Version information for tuistenv https://github.com/tuist/tuist/pull/399 by @ollieatkinson
2019-06-10 04:03:30 +08:00
- Add input & output paths for target action https://github.com/tuist/tuist/pull/353 by Rag0n
Adding support for linking system libraries and frameworks (#406)
Resolves https://github.com/tuist/tuist/issues/174
Continuation of https://github.com/tuist/tuist/pull/272 by @steprescott
### Short description
In some cases specifying the status of the frameworks or libraries to link against is needed (e.g. weakly linking frameworks).
### Solution
- A new `.sdk` dependency type is being introduced
usage:
```swift
Target(name: "App",
platform: .iOS,
product: .app,
bundleId: "io.tuist.App",
infoPlist: "Info.plist",
sources: "Sources/**",
dependencies: [
.sdk(name: "CloudKit.framework", status: .required),
.sdk(name: "StoreKit.framework", status: .optional),
.sdk(name: "libc++.tbd"),
])
```
### Test Plan
- Verify unit tests pass via `swift test`
- Verify acceptance tests pass via `bundle rake exec features`
- Manually generate `fixtures/ios_app_with_sdk` via `tuist generate`
- Verify the appropriate libraries are included in the generated project
### Notes
Credit goes to @steprescott and [`XcodeGen`](https://github.com/yonaskolb/XcodeGen) - this PR is based on their work!
2019-06-19 20:25:46 +08:00
- Adding support for linking system libraries and frameworks https://github.com/tuist/tuist/pull/353 by @steprescott
2019-07-16 00:05:52 +08:00
- Support passing the `Info.plist` as a dictionary https://github.com/tuist/tuist/pull/380 by @pepibumur .
2019-06-08 10:52:45 +08:00
2019-06-04 22:41:19 +08:00
### Fixed
- Ensuring the correct default settings provider dependency is used https://github.com/tuist/tuist/pull/389 by @kwridan
2019-06-19 03:50:19 +08:00
- Fixing build settings repeated same value https://github.com/tuist/tuist/pull/391 by @platonsi
2019-06-06 00:01:03 +08:00
- Duplicated files in the sources build phase when different glob patterns match the same files https://github.com/tuist/tuist/pull/388 by @pepibumur .
2019-06-07 22:21:02 +08:00
- Support `.d` source files https://github.com/tuist/tuist/pull/396 by @pepibumur .
2019-06-08 04:45:29 +08:00
- Codesign frameworks when copying during the embed phase https://github.com/tuist/tuist/pull/398 by @ollieatkinson
2019-06-10 04:37:41 +08:00
- 'tuist local' failed when trying to install from source https://github.com/tuist/tuist/pull/402 by @ollieatkinson
2019-06-11 03:53:10 +08:00
- Omitting unzip logs during installation https://github.com/tuist/tuist/pull/404 by @kwridan
2019-06-19 03:50:19 +08:00
- Fix "The file couldn’ t be saved." error https://github.com/tuist/tuist/pull/408 by @marciniwanicki
2019-06-17 03:37:15 +08:00
- Ensure generated projects are stable https://github.com/tuist/tuist/pull/410 by @kwridan
2019-06-19 03:50:19 +08:00
- Stop generating empty `PBXBuildFile` settings https://github.com/tuist/tuist/pull/415 by @marciniwanicki
2019-06-04 22:41:19 +08:00
2019-06-02 23:35:46 +08:00
## 0.15.0
2019-05-27 14:29:57 +08:00
### Changed
2019-07-18 21:48:45 +08:00
2019-05-27 14:29:57 +08:00
- Introduce the `InfoPlist` file https://github.com/tuist/tuist/pull/373 by @pepibumur .
2019-05-31 16:30:38 +08:00
- Add `defaultSettings` option to `Settings` definition to control default settings generation https://github.com/tuist/tuist/pull/378 by @marciniwanicki
2019-05-27 14:29:57 +08:00
2019-03-30 20:22:47 +08:00
### Added
2019-04-03 16:43:23 +08:00
2019-05-05 16:59:27 +08:00
- Adding generate command timer https://github.com/tuist/tuist/pull/335 by @kwridan
2019-05-07 01:38:39 +08:00
- Support Scheme manifest with pre/post action https://github.com/tuist/tuist/pull/336 by @dangthaison91
2019-05-17 02:55:54 +08:00
- Support local Scheme (not shared) flag https://github.com/tuist/tuist/pull/341 by @dangthaison91
2019-06-02 23:33:16 +08:00
- Support for compiler flags https://github.com/tuist/tuist/pull/386 by @pepibumur .
2019-05-05 16:59:27 +08:00
2019-05-03 00:16:16 +08:00
### Fixed
2019-05-31 16:10:52 +08:00
- Fixing unstable diff (products and embedded frameworks) https://github.com/tuist/tuist/pull/357 by @marciniwanicki
2019-05-03 00:16:16 +08:00
- Set Code Sign On Copy to true for Embed Frameworks https://github.com/tuist/tuist/pull/333 by @dangthaison91
2019-05-04 18:32:49 +08:00
- Fixing files getting mistaken for folders https://github.com/tuist/tuist/pull/338 by @kwridan
2019-07-18 21:48:45 +08:00
- Updating init template to avoid warnings https://github.com/tuist/tuist/pull/339 by @kwridan
- Fixing generation failures due to asset catalog & `**/*.png` glob patterns handling https://github.com/tuist/tuist/pull/346 by @kwridan
- Supporting bundle target dependencies that reside in different projects (in `TuistGenerator` ) https://github.com/tuist/tuist/pull/348 by @kwridan
2019-05-18 04:24:29 +08:00
- Fixing header paths including folders and non-header files https://github.com/tuist/tuist/pull/356 by @kwridan
2019-05-21 04:42:37 +08:00
- Fix duplicate localized resource files https://github.com/tuist/tuist/pull/363 by @kwridan
2019-05-22 05:14:21 +08:00
- Update static dependency lint rule https://github.com/tuist/tuist/pull/360 by @kwridan
2019-07-18 21:48:45 +08:00
- Ensure resource bundles in other projects get built https://github.com/tuist/tuist/pull/374 by @kwridan
2019-05-03 00:16:16 +08:00
## 0.14.0
### Changed
### Added
2019-04-03 16:43:23 +08:00
- Adding support for project additional files https://github.com/tuist/tuist/pull/314 by @kwridan
2019-04-08 17:29:26 +08:00
- Adding support for resource folder references https://github.com/tuist/tuist/pull/318 by @kwridan
2019-04-10 14:18:52 +08:00
- **Breaking** Swift 5 support https://github.com/tuist/tuist/pull/317 by @pepibumur .
2019-04-03 16:43:23 +08:00
2019-03-30 20:22:47 +08:00
### Fixed
2019-04-13 02:39:31 +08:00
- Ensuring target product names are consistent with Xcode https://github.com/tuist/tuist/pull/323 by @kwridan
2019-04-18 14:09:57 +08:00
- Ensuring generate works on additional disk volumes https://github.com/tuist/tuist/pull/327 by @kwridan
2019-04-28 17:17:09 +08:00
- Headers build phase should be put on top of Compile build phase https://github.com/tuist/tuist/pull/332 by @dangthaison91
2019-04-13 02:39:31 +08:00
2019-03-30 20:22:47 +08:00
## 0.13.0
2019-03-13 01:48:37 +08:00
2019-03-11 21:33:00 +08:00
### Added
2019-03-13 01:48:37 +08:00
2019-03-13 16:56:52 +08:00
- Add Homebrew tap up https://github.com/tuist/tuist/pull/281 by @pepibumur
2019-03-13 17:39:46 +08:00
- Create a Setup.swift file when running the init command https://github.com/tuist/tuist/pull/283 by @pepibumur
2019-03-19 16:40:58 +08:00
- Update `tuistenv` when running `tuist update` https://github.com/tuist/tuist/pull/288 by @pepibumur .
2019-03-22 22:40:08 +08:00
- Allow linking of static products into dynamic frameworks https://github.com/tuist/tuist/pull/299 by @ollieatkinson
Workspace Improvements (#298)
Resolves https://github.com/tuist/tuist/issues/258
### Short description
Workspace manifests allow users to customize which project are included in their workspace however doesn't yet offer the ability to add arbitrary files and folder references (to support included things like Documentation and README files).
### Solution
Extend the workspace manifest to allow specifying `additionalFiles`
e.g.
```swift
import ProjectDescription
let workspace = Workspace(name: "Workspace",
projects: [
"App",
"Frameworks/FrameworkA",
"Frameworks/FrameworkB",
],
additionalFiles: [
"Documentation/**",
.folderReference(path: "Website")
])
```
As an added bonus of these changes, we can add the ability to specify glob patterns for `projects` to make it easier to include new projects without needing to constantly update the workspace manifest.
e.g.
```swift
import ProjectDescription
let workspace = Workspace(name: "Workspace",
projects: [
"App",
"Frameworks/**",
],
additionalFiles: [
"Documentation/**",
.folderReference(path: "Website")
])
```
### Implementation
- [x] Update workspace manifests
- [x] Parse workspace manifests > models
- [x] Add workspace structure generator
- [x] Integrate workspace structure
- [x] Include fixture
- [x] Update documentation
### Test Plan
- Run `tuist generate` on the following fixtures:
- `fixture/ios_app_with_custom_workspace`
<img width="254" alt="custom-workspace" src="https://user-images.githubusercontent.com/11914919/54780257-36db2f80-4c11-11e9-8fda-5f59554533c0.png">
- `fixture/ios_app_with_custom_workspace/App`
<img width="161" alt="custom-workspace-app" src="https://user-images.githubusercontent.com/11914919/54780299-4a869600-4c11-11e9-9637-cdfaa20bb8c8.png">
- `fixture/ios_app_with_setup`
<img width="175" alt="setup" src="https://user-images.githubusercontent.com/11914919/54780315-540ffe00-4c11-11e9-99fd-e9175ee4de27.png">
- `fixture/ios_app_with_frameworks`
<img width="184" alt="frameworks" src="https://user-images.githubusercontent.com/11914919/54780335-5d00cf80-4c11-11e9-906c-b53f26c36007.png">
Verify the generated workspace structure
### Notes
All this work is based on group effort and iteration from #262 - thanks @ollieatkinson, @pepibumur! 👍
2019-03-23 17:00:17 +08:00
- Workspace improvements https://github.com/tuist/tuist/pull/298 by @ollieatkinson & @kwridan .
2019-03-13 16:56:52 +08:00
2019-03-11 21:33:00 +08:00
### Removed
2019-03-13 01:48:37 +08:00
2019-03-24 21:13:58 +08:00
- **Breaking** Removed "-Project" shared scheme from being generated https://github.com/tuist/tuist/pull/303 by @ollieatkinson
2019-03-24 04:57:25 +08:00
2019-03-11 21:33:00 +08:00
### Fixed
2019-03-13 01:48:37 +08:00
- Fix duplicated embedded frameworks https://github.com/tuist/tuist/pull/280 by @pepibumur
2019-03-14 14:49:59 +08:00
- Fix manifest target linker errors https://github.com/tuist/tuist/pull/287 by @kwridan
2019-03-14 15:40:23 +08:00
- Build settings not being generated properly https://github.com/tuist/tuist/pull/282 by @pepibumur
2019-03-17 19:50:56 +08:00
- Fix `instance method nearly matches optional requirements` warning in generated `AppDelegate.swift` in iOS projects https://github.com/tuist/tuist/pull/291 by @BalestraPatrick
2019-03-23 05:10:11 +08:00
- Fix Header & Framework search paths override project or xcconfig settings https://github.com/tuist/tuist/pull/301 by @ollieatkinson
2019-03-23 04:37:31 +08:00
- Unit tests bundle for an app target compile & run https://github.com/tuist/tuist/pull/300 by @ollieatkinson
2019-03-28 05:32:08 +08:00
- `LIBRARY_SEARCH_PATHS` and `SWIFT_INCLUDE_PATHS` are now set https://github.com/tuist/tuist/pull/308 by @kwridan
2019-03-30 19:32:27 +08:00
- Fix Generation fails in the event an empty .xcworkspace directory exists https://github.com/tuist/tuist/pull/312 by @ollieatkinson
2019-03-13 01:48:37 +08:00
2019-03-11 21:33:00 +08:00
## 0.12.0
2019-02-18 18:54:18 +08:00
### Changed
- Rename manifest group to `Manifest` https://github.com/tuist/tuist/pull/227 by @pepibumur .
- Rename manifest target to `Project-Manifest` https://github.com/tuist/tuist/pull/227 by @pepibumur .
2019-02-27 10:17:26 +08:00
- Replace swiftlint with swiftformat https://github.com/tuist/tuist/pull/239 by @pepibumur .
2019-03-02 10:48:52 +08:00
- Bump xcodeproj version to 6.6.0 https://github.com/tuist/tuist/pull/248 by @pepibumur .
2019-03-08 01:22:00 +08:00
- Fix an issue with Xcode not being able to reload the projects when they are open https://github.com/tuist/tuist/pull/247
2019-01-17 23:28:11 +08:00
- Support array for `sources` and `resources` paths https://github.com/tuist/tuist/pull/201 by @dangthaison91
2019-02-18 18:54:18 +08:00
2019-02-16 15:31:55 +08:00
### Added
- Integration tests for `generate` command https://github.com/tuist/tuist/pull/208 by @marciniwanicki & @kwridan
2019-02-16 15:47:25 +08:00
- Frequently asked questions to the documentation https://github.com/tuist/tuist/pull/223/ by @pepibumur .
2019-02-18 21:52:07 +08:00
- Generate a scheme with all the project targets https://github.com/tuist/tuist/pull/226 by @pepibumur
2019-02-19 19:43:28 +08:00
- Documentation for contributors https://github.com/tuist/tuist/pull/229 by @pepibumur
2019-02-21 23:42:18 +08:00
- Support for Static Frameworks https://github.com/tuist/tuist/pull/194 @ollieatkinson
2019-02-16 15:31:55 +08:00
2019-02-18 18:44:28 +08:00
### Removed
- Up attribute from the `Project` model https://github.com/tuist/tuist/pull/228 by @pepibumur .
2019-02-19 21:50:02 +08:00
- Support for YAML and JSON formats as Project specifications https://github.com/tuist/tuist/pull/230 by @ollieatkinson
2019-02-18 18:44:28 +08:00
2019-02-18 21:59:05 +08:00
### Fixed
- Changed default value of SWIFT_VERSION to 4.2 @ollieatkinson
2019-02-21 22:45:19 +08:00
- Added fixture tests for ios app with static libraries @ollieatkinson
2019-03-05 17:10:54 +08:00
- Bundle id linting failing when the bundle id contains variables https://github.com/tuist/tuist/pull/252 by @pepibumur
2019-03-08 07:31:43 +08:00
- Include linked library and embed in any top level executable bundle https://github.com/tuist/tuist/pull/259 by @ollieatkinson
2019-02-18 21:59:05 +08:00
2019-02-15 03:17:17 +08:00
## 0.11.0
2018-12-26 17:19:09 +08:00
### Added
2019-02-06 16:08:21 +08:00
- **Breaking** Up can now be specified via `Setup.swift` https://github.com/tuist/tuist/issues/203 by @marciniwanicki & @kwridan
2018-12-26 17:19:09 +08:00
- Schemes generation https://github.com/tuist/tuist/pull/188 by @pepibumur .
2018-12-29 15:32:42 +08:00
- Environment variables per target https://github.com/tuist/tuist/pull/189 by @pepibumur .
2019-02-07 02:40:05 +08:00
- Danger warn that reminds contributors to update the docuementation https://github.com/tuist/tuist/pull/214 by @pepibumur
2019-02-07 03:04:17 +08:00
- Rubocop https://github.com/tuist/tuist/pull/216 by @pepibumur .
2019-02-07 18:42:59 +08:00
- Fail init command if the directory is not empty https://github.com/tuist/tuist/pull/218 by @pepibumur .
2019-02-15 01:57:14 +08:00
- Verify that the bundle identifier has only valid characters https://github.com/tuist/tuist/pull/219 by @pepibumur .
2019-02-15 03:09:02 +08:00
- Merge documentation from the documentation repository https://github.com/tuist/tuist/pull/222 by @pepibumur .
2019-02-15 03:19:52 +08:00
- Danger https://github.com/tuist/tuist/pull/186 by @pepibumur .
2018-12-26 17:19:09 +08:00
2018-12-22 01:46:42 +08:00
### Fixed
2019-02-07 01:40:40 +08:00
- Swiftlint style issues https://github.com/tuist/tuist/pull/213 by @pepibumur .
2018-12-22 01:46:42 +08:00
- Use environment tuist instead of the absolute path in the embed frameworks build phase https://github.com/tuist/tuist/pull/185 by @pepibumur .
2018-12-28 05:52:33 +08:00
### Deprecated
- JSON and YAML manifests https://github.com/tuist/tuist/pull/190 by @pepibumur .
2018-12-20 22:41:05 +08:00
## 0.10.2
2018-12-20 22:38:26 +08:00
### Fixed
- Processes not stopping after receiving an interruption signal https://github.com/tuist/tuist/pull/180 by @pepibumur .
2018-12-20 20:38:42 +08:00
## 0.10.1
2018-12-20 20:36:43 +08:00
### Changed
- Replace ReactiveTask with SwiftShell https://github.com/tuist/tuist/pull/179 by @pepibumur .
### Fixed
- Carthage up command not running when the `Cartfile.resolved` file doesn't exist https://github.com/tuist/tuist/pull/179 by @pepibumur .
2018-12-20 18:58:33 +08:00
## 0.10.0
2018-12-19 16:19:27 +08:00
### Fixed
- Don't generate the Playgrounds group if there are no playgrounds https://github.com/tuist/tuist/pull/177 by @pepibumur .
2018-12-19 17:03:13 +08:00
### Added
2018-12-20 19:01:48 +08:00
- Tuist up command https://github.com/tuist/tuist/pull/158 by @pepibumur .
2018-12-19 17:03:13 +08:00
- Support `.cpp` and `.c` source files https://github.com/tuist/tuist/pull/178 by @pepibumur .
2018-12-03 16:43:03 +08:00
## 0.9.0
2018-12-03 16:37:36 +08:00
### Added
- Acceptance tests https://github.com/tuist/tuist/pull/166 by @pepibumur .
2018-12-01 17:44:49 +08:00
### Fixed
- Files and groups sort order https://github.com/tuist/tuist/pull/164 by @pepibumur .
2018-12-03 16:37:56 +08:00
### Added
- Generate both, the `Debug` and `Release` configurations https://github.com/tuist/tuist/pull/165 by @pepibumur .
2018-11-05 22:28:44 +08:00
## 0.8.0
### Added
- Swift 4.2.1 compatibility by @pepibumur .
2018-10-18 20:59:18 +08:00
### Removed
- Module loader https://github.com/tuist/tuist/pull/150/files by @pepibumur .
2018-10-06 01:10:11 +08:00
### Added
2018-10-09 15:04:51 +08:00
- Geration of projects and workspaces in the `~/.tuist/DerivedProjects` directory https://github.com/tuist/tuist/pull/146 by pepibumur.
## 0.7.0
### Added
2018-10-06 01:10:11 +08:00
- Support for actions https://github.com/tuist/tuist/pull/136 by @pepibumur .
2018-09-20 00:48:22 +08:00
## 0.6.0
2018-09-20 00:43:43 +08:00
### Added
- Check that the local Swift version is compatible with the version that will be installed https://github.com/tuist/tuist/pull/134 by @pepibumur .
2018-09-19 17:44:31 +08:00
### Changed
- Bump xcodeproj to 6.0.0 https://github.com/tuist/tuist/pull/133 by @pepibumur .
2018-09-20 00:46:49 +08:00
### Removed
- Remove `tuistenv` from the repository https://github.com/tuist/tuist/pull/135 by @pepibumur .
2018-09-12 00:21:04 +08:00
## 0.5.0
2018-08-28 16:52:17 +08:00
### Added
2018-09-05 00:39:51 +08:00
2018-08-28 16:52:17 +08:00
- Support for JSON and Yaml manifests https://github.com/tuist/tuist/pull/110 by @pepibumur .
2018-09-05 00:39:51 +08:00
- Generate `.gitignore` file when running init command https://github.com/tuist/tuist/pull/118 by @pepibumur .
2018-09-06 21:11:43 +08:00
- Git ignore Xcode and macOS files that shouldn't be included on a git repository https://github.com/tuist/tuist/pull/124 by @pepibumur .
2018-09-12 00:18:09 +08:00
- Focus command https://github.com/tuist/tuist/pull/129 by @pepibumur .
2018-09-05 00:39:51 +08:00
2018-08-27 03:01:15 +08:00
### Fixed
- Snake-cased build settings keys https://github.com/tuist/tuist/pull/107 by @pepibumur .
2018-08-24 17:11:38 +08:00
## 0.4.0
2018-08-21 02:04:05 +08:00
### Added
- Throw an error if a library target contains resources https://github.com/tuist/tuist/pull/98 by @pepibumur .
2018-08-21 21:53:34 +08:00
- Playgrounds support https://github.com/tuist/tuist/pull/103 by @pepibumur .
2018-08-24 17:11:38 +08:00
- Faster installation using bundled releases https://github.com/tuist/tuist/pull/104 by @pepibumur .
2018-08-21 02:04:05 +08:00
2018-08-21 01:01:58 +08:00
### Changed
- Don't fail if a Carthage framework doesn't exist. Print a warning instead https://github.com/tuist/tuist/pull/96 by @pepibuymur
2018-08-21 02:04:05 +08:00
- Missing file errors are printed together https://github.com/tuist/tuist/pull/98 by @pepibumur .
2018-08-21 01:01:58 +08:00
2018-08-20 16:37:24 +08:00
## 0.3.0
2018-08-06 04:45:48 +08:00
### Added
- Homebrew formula https://github.com/tuist/tuist/commit/0ab1c6e109134337d4a5e074d77bd305520a935d by @pepibumur .
2018-08-17 18:50:46 +08:00
## Changed
- Replaced ssh links with the https version of them https://github.com/tuist/tuist/pull/91 by @pepibumur .
2018-08-08 19:27:19 +08:00
## Fixed
- `FRAMEWORK_SEARCH_PATHS` build setting not being set for precompiled frameworks dependencies https://github.com/tuist/tuist/pull/87 by @pepibumur .
2018-08-06 04:12:26 +08:00
## 0.2.0
2018-08-01 05:13:38 +08:00
### Added
- Install command https://github.com/tuist/tuist/pull/83 by @pepibumur .
2018-08-02 18:43:41 +08:00
- `--help-env` command to tuistenv by @pepibumur .
2018-08-05 23:21:26 +08:00
### Fixed
- Fix missing target dependencies by @pepibumur .
2018-08-06 04:11:08 +08:00
### Removed
- Internal deprecation warnings by @pepibumur .
2018-07-21 12:10:33 +08:00
2018-08-01 04:19:26 +08:00
## 0.1.0
2018-07-21 12:10:33 +08:00
### Added
2018-07-26 05:30:18 +08:00
- Local command prints all the local versions if no argument is given https://github.com/tuist/tuist/pull/79 by @pepibumur .
2018-07-23 19:59:52 +08:00
- Platform, product, path and name arguments to the init command https://github.com/tuist/tuist/pull/64 by @pepibumur .
- Lint that `Info.plist` and `.entitlements` files are not copied into the target products https://github.com/tuist/tuist/pull/65 by @pepibumur
- Lint that there's only one resources build phase https://github.com/tuist/tuist/pull/65 by @pepibumur .
2018-08-01 03:55:26 +08:00
- Command runner https://github.com/tuist/tuist/pull/81/ by @pepibumur .
2018-07-22 06:45:33 +08:00
### Added
2018-07-23 19:59:52 +08:00
- Sources, resources, headers and coreDataModels property to the `Target` model https://github.com/tuist/tuist/pull/67 by @pepibumur .
2018-07-22 06:45:33 +08:00
2018-07-27 02:03:42 +08:00
### Changed
- `JSON` and `JSONConvertible` replaced with Swift's `Codable` conformance.
2018-07-22 06:45:33 +08:00
### Removed
2018-07-23 19:59:52 +08:00
- The scheme attribute from the `Project` model https://github.com/tuist/tuist/pull/67 by @pepibumur .
- Build phases and build files https://github.com/tuist/tuist/pull/67 by @pepibumur .