Skip to content
This repository has been archived by the owner on Aug 2, 2023. It is now read-only.

Add buildtools to CoreFXLab. #1095

Merged
merged 1 commit into from Jan 19, 2017
Merged

Conversation

crummel
Copy link
Contributor

@crummel crummel commented Jan 4, 2017

  • Build stuff is mostly copied from CoreFX.
  • We retain the ability to build the old way for now.
  • .xprojs are replaced by .csprojs.
  • Product changes were bruteforced to make it build, they definitely require review.

@dnfclas
Copy link

dnfclas commented Jan 4, 2017

Hi @crummel, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!

The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.

TTYL, DNFBOT;

@crummel
Copy link
Contributor Author

crummel commented Jan 4, 2017

I'm going to clean up the .csprojs a bit, they were copied from CoreFX as well and I don't think everything in them applies to CoreFXLab.
Source changes and other concerns:

  • Adding netcoreapp1.0 as a target framework was needed to get several of the projects to compile. I don't know why this is. Is it a problem?
  • System.IO.Pipelines.File gave me "System.Threading.Overlapped 4.3.0 is not compatible with net451" so I upgraded it to net46, which cascaded back through the System.IO.Pipelines projects. Is this a real problem or is something wrong with how I'm building it?
  • Buildtools includes analyzers that catch some DLL imports that aren't cross-platform. I've disabled these in those source files, but we could also turn the analyzers off globally.
  • Some projects needed more dependencies declared. I'm not sure why this is.
  • Tests are not yet converted.
  • Would someone mind trying the debugging scenario that we were concerned this would break?
    @joshfree @KrzysztofCwalina @shiftylogic @ahsonkhan

@davidfowl
Copy link
Member

@crummel are these 2017 enabled? I'm not a fan of using completely custom everything.

@crummel
Copy link
Contributor Author

crummel commented Jan 5, 2017

@davidfowl I haven't tried with 2017, I'll spin up a machine and see if it works. Is your concern just using the projects in VS? That should work, although we weren't sure if we needed to extra work to support debugging.

@davidfowl
Copy link
Member

@davidfowl I haven't tried with 2017, I'll spin up a machine and see if it works. Is your concern just using the projects in VS? That should work, although we weren't sure if we needed to extra work to support debugging.

More concerned that we're not dogfooding what people are using in real life. CoreFx and CoreCLR builds are very special compared to corefxlab. These are regular class libraries that should be using the regular .NET Core tooling that we're shipping with VS2017.

@joshfree
Copy link
Member

joshfree commented Jan 5, 2017

Thanks for bringing the latest build tools to corefxlab @crummel

@KrzysztofCwalina any concerns before this gets merged in?

@KrzysztofCwalina
Copy link
Member

@joshfree, I would like @crummel to verify that VS 2017 is working, including debugging. I thought we agreed that this is pri 0 requirement.

@crummel
Copy link
Contributor Author

crummel commented Jan 5, 2017

@joshfree @KrzysztofCwalina I do get a build error in 2017, I'm looking into it.

@@ -0,0 +1,138 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Copy link
Member

Choose a reason for hiding this comment

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

What is this?

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Copy link
Member

Choose a reason for hiding this comment

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

These files should be using the new SDK syntax.

<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<ProjectGuid>b9ecbaf7-524d-4134-ae37-eff7802b221f</ProjectGuid>
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Member

@weshaggard weshaggard Jan 9, 2017

Choose a reason for hiding this comment

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

You will need to pull in a newer CLI in order to use the new SDK syntax. I think CoreFxLab would be a great candidate for dogfooding that build portion of the CLI, that is a little trickier to do in CoreFx right now.

Copy link
Member

Choose a reason for hiding this comment

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

DOG FOOOD!

@@ -0,0 +1,83 @@
@if not defined _echo @echo off
Copy link
Member

Choose a reason for hiding this comment

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

Why aren't you using the bootstraping scripts?

@joshfree
Copy link
Member

I do get a build error in 2017, I'm looking into it.

@crummel how is this going?

@crummel
Copy link
Contributor Author

crummel commented Jan 10, 2017

@joshfree I can push out a new version that's just the SDK 15.0 changes, but I'm still getting errors with adding buildtools to that. If we just want the project changes and come back later to actually add buildtools to the projects I can get an updated PR out today.

@joshfree
Copy link
Member

If you want to break up the work into multiple PRs that's fine - so long as VS use isn't regressed in the repo.

- Build stuff is mostly copied from CoreFX.
- We retain the ability to build the old way for now.
- .xprojs are replaced by .csprojs.
- Product changes were bruteforced to make it build, they definitely require review.
@crummel
Copy link
Contributor Author

crummel commented Jan 17, 2017

@davidfowl @joshfree @weshaggard I've updated to use the latest project syntax and confirmed debugging in VS2017 works. I'll do the bootstrap change separately.

@joshfree
Copy link
Member

I've updated to use the latest project syntax and confirmed debugging in VS2017 works. I'll do the bootstrap change separately.

OK sounds good. Thanks @crummel

@KrzysztofCwalina
Copy link
Member

Sounds good. Let's merge the change once if passes the tests.

@KrzysztofCwalina
Copy link
Member

@dotnet-bot test this please

@KrzysztofCwalina KrzysztofCwalina merged commit 33548e9 into dotnet:master Jan 19, 2017
crummel added a commit to crummel/dotnet_corefxlab that referenced this pull request Jan 20, 2017
This reverts commit 33548e9.

Additional build errors showing up in VS vs MSBuild for some reason.
Reverting for now and I'll fix them.
KrzysztofCwalina pushed a commit that referenced this pull request Jan 20, 2017
This reverts commit 33548e9.

Additional build errors showing up in VS vs MSBuild for some reason.
Reverting for now and I'll fix them.
ahsonkhan pushed a commit to ahsonkhan/corefxlab that referenced this pull request Jan 28, 2017
- Build stuff is mostly copied from CoreFX.
- We retain the ability to build the old way for now.
- .xprojs are replaced by .csprojs.
- Product changes were bruteforced to make it build, they definitely require review.
ahsonkhan pushed a commit to ahsonkhan/corefxlab that referenced this pull request Jan 28, 2017
This reverts commit 33548e9.

Additional build errors showing up in VS vs MSBuild for some reason.
Reverting for now and I'll fix them.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants