2121 Commits

Author SHA1 Message Date
tzxdtc10 aa7fed0f5b Fix typo in 'addtional' (#1328)
* fix typo

* rename to included_additional.yml

* remove one

* fix typo

* Update Tests/ProjectSpecTests/SpecLoadingTests.swift

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2.34.0
2023-02-24 09:54:58 +11:00
Yonas Kolb 39739b4efd ignore user data 2023-02-24 09:53:06 +11:00
Yonas Kolb 271ad593b8 Update to 2.34.0 2023-02-24 09:52:16 +11:00
Wendy Liga 43e40a9efc Added support for scheme management (#1142)
* wip

* Added scheme management metadata properties to TargetScheme

* wip

* Added Scheme.Management for metadata

* use sharedDefault

* move generateSchemeManagement to SchemeGenerator

* revert

* update changelog

* update docs

* update test case

* remove

* remove unused file

* revert

* changed on fixtures project

* Updated ProjectSpec docs index

* User Scheme.Management also for TargetSchemes, use XCUserData

* Changelog

* Switch XcodeProj back tuist/XcodeProj - 8.9.0

* Reindent TOC Docs/ProjectSpec.md

* Revert swift tools version

---------

Co-authored-by: Tieme van Veen <tiemevanveen@hotmail.com>
2023-02-24 09:49:57 +11:00
Marcin Chojnacki 80e317206b Remove SPM configurations warning from ProjectSpec (#1329)
ProjectSpec states that Swift Packages don't work in projects with configurations other than `Debug` and `Release`. It provides a link to Swift bugtracker to issue marked as duplicate. Original issue that it points to is closed and fixed since 2020 with Xcode 12.

Let's remove misleading note from ProjectSpec.

https://github.com/apple/swift-package-manager/issues/4674
2023-02-18 20:32:16 +11:00
Hesham Salman 366981ba2e Support for swiftcrossimport folders (#1317)
* Naive support for swiftcrossimport

* Update SourceGenerator.swift

* Add changelog entry

* Update CHANGELOG.md

* Add test fixture

* Check-in generated diffs
2023-01-25 11:36:25 +11:00
Yonas Kolb 9551979e54 Update RELEASE.md 2023-01-24 13:08:09 +11:00
Hesham Salman 6caacce3df Fix typo in 'fixtures' (#1316) 2023-01-22 01:32:22 +11:00
Yonas Kolb 386de7375e Update CHANGELOG.md 2023-01-16 20:08:11 +11:00
Casper Riboe 15f3186731 Renamed Embed step to 'Embed Foundation Extensions' (#1310)
* Renamed Embed step

* Add changelog entry

* Add project diffs
2023-01-16 20:07:26 +11:00
Yonas Kolb b6bc2a8d88 Update CHANGELOG.md 2023-01-16 17:58:33 +11:00
Craig Siemens 0500db212d Handle imports with same relative path (#1262)
* Added test for when includes contain relative paths with the same name.

* Updated mergedDictionary to handle includes with the same file path.

* Removed the need to multiple places to pass in cachedSpecFiles.

* Converts the projectRoot into a absolute path before loading a project.

* Updated changelog.
2023-01-16 17:57:43 +11:00
Yonas Kolb 3327c44ad7 Update to 2.33.0 2.33.0 2022-12-09 21:35:49 +11:00
Yonas Kolb fd24307120 add a dependency test case 2022-12-09 21:35:17 +11:00
Kazumasa Shimomura a607d0a0d2 Delete ignored try keyword. (#1298) 2022-12-09 18:11:20 +11:00
Kazumasa Shimomura b142998dbb Update Yams to 5.0.1 (#1297)
* Update yams

* Update CHANGELOG.md
2022-12-09 18:10:33 +11:00
Yonas Kolb ad971a545a split variable 2022-12-07 11:20:24 +11:00
Mathieu Olivari e7f753785e Fix includes related issues and improve their performances (#1275)
* Fix recursive include path when relativePath is not set

If relativePath is not set on a particular include, the first level of
include will currently work, but starting at the second level of
iteration, the computed include path will fail as relativePath will be
appended over and over onto the filePath. We're fixing that recursion
problem here and adding the corresponding tests to make sure it doesn't
happen again.

* Include projectRoot in include paths

The projectRoot setting (when specified) is currently ignored when
computing the include paths. We're fixing that in that commit.

* Use memoization during recursive SpecFiles creation

SpecFile objects are created by recursive through includes. On a large
project with programatically generated SpecFile, it is not rare to have
hundreds of SpecFiles, creating a large web of include dependencies.
In such a case, it is not rare either for a particular SpecFile to be
included by multiple other SpecFiles. When that happens, XcodeGen
currently creates a SpecFile object every time a SpecFile gets included,
which can lead to an exponential growth of includes.

I have seen hundreds of files being turned into hundred of thousands of
SpecFile object creations, which leads to an impractical XcodeGen run of
tens of minutes.

This change adds memoization during SpecFile recursion, in order to
reuse the previously created SpecFiles, if available, instead of
re-creating them.

* Update CHANGELOG.md

Add the following changes to the changelog:
* b97bdc4 - Use memoization during recursive SpecFiles creation
* a6b96ad - Include projectRoot in include paths
* 557b074 - Fix recursive include path when relativePath is not set
2022-11-03 19:05:46 +11:00
Roland 3e9fd048ef allow multiple spec files to be provided to XcodeGen (#1270)
* allow spec to be a comma separated list of specs instead of one

* update readme and --spec command documentation

* update Changelog

* print project name
2022-11-02 17:42:22 +11:00
Yonas Kolb 87d7c7e136 Update CHANGELOG.md 2022-10-01 20:50:18 +10:00
SofteqDG 435c19443a Extend possible paths for SettingsPresets (#1135)
* Search for presets in Bundle.main.resourcesPath dir (if exists)
2022-10-01 18:23:09 +10:00
Craig Siemens ed5ec74668 Added scheme generation for aggregate targets (#1250)
* Updated SchemeGenerator to generate schemes for all projectTargets.

* Added changelog entry
2022-09-29 14:08:37 +10:00
Bobby Sudekum 6f331720c9 Add enableGPUFrameCaptureMode to Scheme (#1251) 2022-09-09 18:43:39 +10:00
Yonas Kolb ebf70f1a71 Update to 2.32.0 2.32.0 2022-08-19 00:53:34 +10:00
freddi(Yuki Aki) 594c67fbe9 Add enable option for include to enable optional including for addtional spec (#1242)
* add new option enable for include of spec

* fix to see the environment variable when parsing include

* add test for include with environment variable

* fix how to parse boolean value

* add spec about enable for include

* add Change Log

* fix the number of PR in changelog

* fix include test to make more clear

* fix test to focus enable option more

* fix english error

* fix to expand variable only one time

* add new test case by setting environment object as NO
2022-08-12 16:21:43 +10:00
Steven Sheldon e9295f1ff3 Fix profile action to not run frameworks (#1245)
* Fix profile action to not run frameworks

* Add PR number to changelog

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-08-11 22:45:06 +10:00
Shinolr ac525a445e remove redundant bracket (#1243) 2022-08-10 00:32:33 +10:00
Isaac Halvorson 34f50d645e Correct name of package in example yaml (#1240)
Hey there, I just noticed that one of the example yaml snippets had the wrong package name specified.
2022-08-02 08:27:14 +10:00
antonsergeev88 ff552f3880 Handle mlmodelc as a single unit (#1237)
* Handle mlmodelc as a single unit

* Add mlmodelc support in changelog
2022-07-31 18:33:20 +10:00
Yonas Kolb de2a537ab4 Update to 2.31.0 2.31.0 2022-07-24 16:10:15 +10:00
Aleksei Sapitskii 24572daeb5 Added duplicate dependencies validation (#1234)
**Reason**
 - More strict validation of added dependencies

**Contents**
 - Added changelog entry
 - Added check for duplicates in validation stage
 - Added test
2022-07-24 16:08:33 +10:00
matsuji da8aad004f Add a new CopyFilesBuildPhase, "Embed ExtensionKit Extensions" (#1230)
* Embed ExtensionKit Extensions

* Fix explicitFileType for extensionKit

* Update ChangeLog

* Fix if statement structure

* Add a new example extension to Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj

* Comment out example for extension kit extension in Tests/Fixtures/TestProject/

* Update Tests/Fixtures/TestProject/Project.xcodeproj
2022-07-21 21:25:34 +10:00
Yonas Kolb c1d5c65ae4 Update to 2.30.0 2.30.0 2022-07-16 16:57:26 +10:00
Aleksei Sapitskii c082bc0c7c Fix XcodeGen building after XcodeProj update to 8.8.0 (#1228)
* Fix XcodeGen building after XcodeProj update to 8.8.0

**Reason**
- XcodeProj has been updated and has API breaking changes

**Content**
- Added new enum case handling in `Linkage`
- Renamed the enum case name for `XCWorkspaceDataFileRef.init`

* add new product type to docs

* update changelog

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
2022-07-16 16:46:42 +10:00
Luca Bartoletti 19817f3192 Fix watchapp2-container product name (#1219)
The correct name is `application.watchapp2-container`
2022-07-16 16:46:31 +10:00
JP Simard f65dad7625 Speed up SettingsBuilder (#1221)
* Speed up SettingsBuilder

It's unnecessary to build up a whole grouped dictionary only to check
if all platforms are identical and then immediately discard the
dictionary.

Instead we can check if all targets match the first platform, which
avoids creating a new dictionary but also allows bailing early as soon
as a non-matching platform is found.

Generating a large project (36MB json spec) on an M1 Max machine leads
to a ~6% total speedup: 28.48s vs 30.07s.

* Add changelog entry
2022-06-16 13:54:28 +10:00
Mark Turner a2348d0cfa Example of vscode usage as a development environment (#1218) 2022-06-15 13:33:42 +10:00
yonaskolb 29bcb92591 Update to 2.29.0 2.29.0 2022-05-10 15:04:43 +10:00
Yonas Kolb 0822efa5bd update xcodeproj (#1213) 2022-05-10 15:03:39 +10:00
Yonas Kolb e35f7df14d Add Test Plans (#716)
* upgrade scheme and project versions

* parse test plans

* remove xctestplan from resources

* generate test plan references in schemes

* add test plan to fixture

* non-mutable way of creating [XCScheme.TestPlanReference]

* update fixture version

* Add documentation

* Add default test plan option

# Conflicts:
#	Sources/ProjectSpec/Scheme.swift
#	Tests/Fixtures/paths_test/included_paths_test.yml
#	Tests/ProjectSpecTests/SpecLoadingTests.swift

* Add test plan validation

# Conflicts:
#	Tests/ProjectSpecTests/ProjectSpecTests.swift

* Check for multiple default test plans

* set first plan as default default plan

* small tweaks

* fix test plan path properties

* add test plants to target scheme

* docs

* fix fixture test plan path

* update changelog

* added ability to disable test plan path validation

Co-authored-by: Ota Mares <ota@rebuy.com>
2022-05-10 13:27:31 +10:00
Yuya Hirayama 047e9968d6 Fix docc support (#1202)
* Update FileType.swift

* Update SourceGeneratorTests.swift

* Update fixture

* Update CHANGELOG.md
2022-04-05 14:08:02 +10:00
yonaskolb fd8aa8faf9 simplify changelog and remove commit links
github can compare diffs
2022-03-31 16:43:32 +11:00
yonaskolb 958ae1b744 simplify changelog PR links
Github now makes these links in more contexts
2022-03-31 16:41:05 +11:00
yonaskolb 322c5658f3 update changelog 2.28.0 2022-03-31 16:24:02 +11:00
yonaskolb 4fbdc9da35 Update to 2.28.0 2022-03-31 16:22:09 +11:00
Alvar Hansen 17e7b03278 Run target source pattern matching in parallel (#1197)
As this transform closure does not access anything outside of its
closure and does not mutate any singletons, then it seems to be safe
to run this mapping in parallel.
2022-03-31 16:16:31 +11:00
Vladislav Lisyanskiy 50aa8c51cc Fixed segmentation fault crash (#1198)
* Fixed glob segmentation fault

* Renamed AtomicDictionary to ThreadSafeDictionary

* Refactored ThreadSafeDictionary

* ThreadSafeDictionary replaced with ThreadSafeContainer

* Removed reader/writer

* ThreadSafeContainer replaced with Atomic
2022-03-31 16:15:58 +11:00
John Connolly be0c3c3926 Added ability to use custom location for local Swift packages (#1175)
* Added xcodePath functionality

* Added xcodePath functionality

* Renamed Xcode path to group

* Updated change log and added fixture tests
2022-03-25 11:26:06 +11:00
Yonas Kolb 5350e26cd5 Update CHANGELOG.md 2022-03-22 10:25:44 +11:00
Maxim Bunkov 8530da5d00 fix(carthage): shell login (#1179)
* fix(carthage): shell login

* tests(fixtures): update fixtures

* tests(changelog): update changelog
2022-03-22 10:24:41 +11:00