Skip to content

[build-script] use explicit build/test list between build-script and build-script-impl #2804

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

Closed
wants to merge 2 commits into from

Conversation

karwa
Copy link
Contributor

@karwa karwa commented Jun 1, 2016

What's in this pull request?

Instead of having lots of different skip-[platform] and skip-test-[platform] flags for every stdlib SDK, use an explicit list of targets to build and test.

There are no outward-facing changes (besides a more verbose and obvious configuration message). The build and test list are calculated from the same --ios, etc flags as they are today. This only affects how build-script tells build-script-impl which targets to build/test. It simplifies stdlib target calculation, and gives us the opportunity to override it with more granular options (e.g. just building one stdlib deployment target, not a whole SDK, or just building tests for one target).

Reopened from #2780

Resolved bug number: (SR-)


Before merging this pull request to apple/swift repository:

  • Test pull request on Swift continuous integration.

Triggering Swift CI

The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:

Smoke Testing

Platform Comment
All supported platforms @swift-ci Please smoke test
All supported platforms @swift-ci Please smoke test and merge
OS X platform @swift-ci Please smoke test OS X platform
Linux platform @swift-ci Please smoke test Linux platform

Validation Testing

Platform Comment
All supported platforms @swift-ci Please test
All supported platforms @swift-ci Please test and merge
OS X platform @swift-ci Please test OS X platform
OS X platform @swift-ci Please benchmark
Linux platform @swift-ci Please test Linux platform

Lint Testing

Language Comment
Python @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

(and appropriate test flags) with an explicit build and test list.

Made configuration message more visible and obvious

@karwa karwa force-pushed the swift-build-test-list branch 2 times, most recently from f99dd53 to 7b8d70b Compare June 1, 2016 06:35
(and appropriate test flags) with an explicit build and test list.

Made configuration message more visible and obvious
@karwa karwa force-pushed the swift-build-test-list branch from 7b8d70b to 0a0fe14 Compare June 1, 2016 06:53
@gribozavr
Copy link
Contributor

@swift-ci Please test

@gribozavr
Copy link
Contributor

@swift-ci Please smoke test

@gribozavr
Copy link
Contributor

Not a review, just triggering the CI.

if not args.ios or args.skip_build_ios:
# --long-test implies --test.
if args.long_test:
args.test = True
Copy link
Member

Choose a reason for hiding this comment

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

This is not true.
See 457f2b9 for intent of --long-test

@rintaro
Copy link
Member

rintaro commented Jun 2, 2016

This only affects how build-script tells build-script-impl which targets to build/test.

If so, you shouldn't have to modify args tweak block.
That said, I also think these lines are redundant or even harmful.

@karwa
Copy link
Contributor Author

karwa commented Jun 6, 2016

@rintaro You're right that I don't have to, but lots of the calculations there were redundant from a perspective of an explicit build list derived from a restricted list of configured targets, and then a test list derived from a restricted list of build targets.

Not only that, but it hid away some vital details, like the fact that iOS targets are sort configured backwards - rather than being configured and built by default, they are configured by default and skipped from building unless you add the --ios flag. I believe that's a lot clearer after the changes.

it may be possible to put some of the other argument-shuffling back, but actually breaking build/test list generation out is probably a better idea. I'm going to change this to create some sort of TargetList class, which consists of 3 lists for 3 types of targets - targets to configure, to build and to test.

@ddunbar
Copy link
Contributor

ddunbar commented Jun 6, 2016

This and #2880 are going to conflict heavily, so we should probably figure out which makes sense to land first if we are going to go both directions.

@ddunbar ddunbar mentioned this pull request Jun 6, 2016
1 task
@gribozavr
Copy link
Contributor

I would suggest that we go with #2880. It is more aggressive, but it should allow us to get rid of the shell script quicker. Any concerns?

@karwa
Copy link
Contributor Author

karwa commented Jun 11, 2016

Shelved until build-script-impl is removed

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.

5 participants