Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update spec generation with latest releases #1249

Open
wants to merge 56 commits into
base: spec-generation
Choose a base branch
from

Conversation

skofgar
Copy link
Contributor

@skofgar skofgar commented Aug 19, 2022

In order to test new features like external test targets, spec generation needs branch needs to be brought up to date.

I'm working on correctly implementing TestableTargetReference via a different PR, but I'm currently not sure how to do it right.

This PR relates to #1248

RomanPodymov and others added 30 commits July 15, 2021 11:41
…askolb#1038) (yonaskolb#1039)

* Added support for dependency destination specification. (Resolves yonaskolb#1038)

* More generic way covering more different dependency types. (yonaskolb#1038)

* Added unit-test for each possible dependency combination. First test current embeding then the new one with custom copy spec. (yonaskolb#1038)

* Review fixes. (yonaskolb#1038)

* Minimized unit-test boiler-plate (yonaskolb#1038)

* Update CHANGELOG.md

Co-authored-by: Jakub Bednář <[email protected]>
Co-authored-by: Yonas Kolb <[email protected]>
* Fix missing codesign option for bundle dependency

* Add codeSign: false test case for bundle dependency

* Update CHANGELOG.md
* Ensure fileTypes are mapped to JSON value

* Add CHANGELOG entry
This actually was meant to link in to ProjectSpec.md#options
* Update tuist/XcodeProj

* Add changed entry
* Fix Xcode 13 build

* Extend Xcode 12 workaround to Xcode 13

* Update CHANGELOG

* Moved CHANGELOG into 'Next Version' section

Co-authored-by: Kryštof Matěj <[email protected]>
…g files checks (yonaskolb#1122)

* Use binary searchi for Checking if path is included in included files

* Do not run glob in parallel on Linux systems
* Added location option to test target

* Updated XcodeProj

* Updated packages

* Removed extra toJSONValue()

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <[email protected]>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <[email protected]>

* Update Sources/ProjectSpec/Scheme.swift

Co-authored-by: Yonas Kolb <[email protected]>

* Removed optional location

* Renamed SimulateLocation to Location

* Removed Location struct and just pass location string directly

* Added tests for location with a test target

* Added example of location inside test target to project.yml

* Removed extra test target and add location to existing target

* Updated App_Scheme.xcscheme

Co-authored-by: Yonas Kolb <[email protected]>
* Changes

* Tests and docs

* Update fixtures

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <[email protected]>

Co-authored-by: Yonas Kolb <[email protected]>
* Skip compile sources build phase for watch2 apps if empty

* add changelog entry

* Fix tests

Co-authored-by: Yonas Kolb <[email protected]>
* add .gyb to source files

* Update CHANGELOG.md

Co-authored-by: Christian Huck <[email protected]>
* support local Swift Package test case into test scheme

* update test

* add test

* update CHABGELOG.md

* Update CHANGELOG.md

* revert resolved package test

* Update Sources/XcodeGenKit/SchemeGenerator.swift

Co-authored-by: Kohki Miki <[email protected]>

* make TargetReference convert from new JSON format

* add .package for location of target reference

* receive target reference format at target of scheme

* update test

* update XcodeProj

* add test and fix small bugs

* update docs

* support multiple style of coverageTargets

* add edge case of parsing test targets

* fix docs

* Update Docs/ProjectSpec.md

Co-authored-by: Yonas Kolb <[email protected]>

* create TestableTargetReference for not making API complex

* fix code format

* fix parameter name to Testable Target Reference

* support directly writing key of Testable Target Reference

* fix compile error in build

Co-authored-by: Kohki Miki <[email protected]>
Co-authored-by: Yonas Kolb <[email protected]>
* fix(carthage): shell login

* tests(fixtures): update fixtures

* tests(changelog): update changelog
…olb#1175)

* Added xcodePath functionality

* Added xcodePath functionality

* Renamed Xcode path to group

* Updated change log and added fixture tests
tr1ckyf0x and others added 26 commits March 31, 2022 16:15
* Fixed glob segmentation fault

* Renamed AtomicDictionary to ThreadSafeDictionary

* Refactored ThreadSafeDictionary

* ThreadSafeDictionary replaced with ThreadSafeContainer

* Removed reader/writer

* ThreadSafeContainer replaced with Atomic
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.
Github now makes these links in more contexts
* Update FileType.swift

* Update SourceGeneratorTests.swift

* Update fixture

* Update CHANGELOG.md
* 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 <[email protected]>
* 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
The correct name is `application.watchapp2-container`
* 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 <[email protected]>
…kolb#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
**Reason**
 - More strict validation of added dependencies

**Contents**
 - Added changelog entry
 - Added check for duplicates in validation stage
 - Added test
* Handle mlmodelc as a single unit

* Add mlmodelc support in changelog
Hey there, I just noticed that one of the example yaml snippets had the wrong package name specified.
* Fix profile action to not run frameworks

* Add PR number to changelog

* Update CHANGELOG.md

Co-authored-by: Yonas Kolb <[email protected]>
…dtional spec (yonaskolb#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
# Conflicts:
#	Package.resolved
#	Tests/ProjectSpecTests/ProjectSpecTests.swift
@skofgar skofgar marked this pull request as ready for review August 19, 2022 19:04
@@ -587,7 +587,7 @@ private extension Scheme {
self.init(
name: scheme.name,
build: Scheme.Build(
targets: [BuildTarget(target: TargetReference(name: buildableReference.blueprintName, location: .local))],
targets: [BuildTarget(target: TestableTargetReference(name: buildableReference.blueprintName, location: .local))],
Copy link
Contributor Author

@skofgar skofgar Aug 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm trying to figure out the correct implementation of this section in a seprate branch. See this commit: skofgar@49a35a0

@yonaskolb (or anyone else) If you have any suggestions, please let me know

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.