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

Port to .NET Core #1015

Closed
39 tasks done
patriksvensson opened this issue Jun 28, 2016 · 3 comments
Closed
39 tasks done

Port to .NET Core #1015

patriksvensson opened this issue Jun 28, 2016 · 3 comments
Assignees
Labels
Milestone

Comments

@patriksvensson
Copy link
Member

patriksvensson commented Jun 28, 2016

Agenda

The goal with this port is to maintain the current NET45 implementation side by side with netstandard1.6 to ensure that people who has invested in Cake can continue using it. At least until .NET 4.6.2 is widespread enough and also supported on Mono.

Supported frameworks

  • net45
  • netstandard1.6

Assemblies ported to .NET Core

  • Cake
  • Cake.Tests
  • Cake.Core
  • Cake.Core.Tests
  • Cake.Common
  • Cake.Common.Tests
  • Cake.NuGet
  • Cake.NuGet.Tests
  • Cake.Testing
  • Cake.Testing.Xunit

Other work that needs to be done

  • PowerShell bootstrapper
  • Linux/OSX bootstrapper
  • Build script
    • Update version in project.json
    • Restore
    • Build
    • Create NuGet Packages
      • Cake (net45 assemblies)
      • Cake.CoreClr (netcore assemblies)
      • Cake.Core (net45 + netstandard1.6)
      • Cake.Common (net45 + netstandard1.6)
      • Cake.Testing (net45 + netstandard1.6)
    • Create Chocolatey Package (net45 assemblies)
    • Run unit tests
    • Create zip package (coreclr assemblies)
    • Create zip package (net45 assemblies)
  • StyleCop

Known issues for .NET Core

  • Cross platform script engine (Cake)
  • Framework moniker matching (Cake.NuGet)
  • Module searching (Cake)
  • Debugging
  • CakeEnvironment.GetSpecialPath (Cake.Core)
  • CakeEnvironment.GetTargetFramework (Cake.Core)

CI working

  • AppVeyor (Windows)
  • Travis (Ubuntu)
  • Travis (OS X)
  • Bitrise (Ubuntu)
  • Bitrise (OS X)
  • TeamCity (Windows)

Questions

  • How do we remove the StyleCop.Analyzers dependency from our packages? (solved)

Removed in .NET Core port (due to lack of support)

  • XmlTransformation (Cake.Common)
  • XmlSettingsWriter.DoNotEscapeUriAttributes (Cake.Common)

Source

Check out the coreclr branch in this repository.
Going to add a PR from that branch soon.

Pull requests

I'm not accepting pull requests at the moment but will as soon as everything compiles as it used to 😄

@patriksvensson patriksvensson self-assigned this Jun 28, 2016
@patriksvensson patriksvensson changed the title Add .NET Core support Port to .NET Core Jun 28, 2016
@cake-build cake-build locked and limited conversation to collaborators Jul 9, 2016
@patriksvensson
Copy link
Member Author

patriksvensson commented Jul 9, 2016

The XmlTransform alias will not be supported on .NET Core due to lack of support in the framework.

@patriksvensson
Copy link
Member Author

patriksvensson commented Jul 9, 2016

Removed .NET 4.6.2 support in the port to keep the porting effort to a minimum. We will however add this later on when the .NET Core port has reached RTM. Supported runtimes will be .NET 4.5 and .NETStandard 1.6 until then.

@luisgoncalves
Copy link
Contributor

luisgoncalves commented Aug 5, 2016

I just tried this build against this script and I got an error on GetFiles("./src/*/project.json").First():

error CS1061: 'FilePathCollection' does not contain a definition for 'First' and no extension method 'First' accepting a first argument of type 'FilePathCollection' could be found

From the verbose output:

Processing build script...
Adding reference to System.Private.CoreLib.ni.dll...
Adding reference to System.Private.Uri.dll...
Adding reference to System.Linq.Expressions.dll...
Adding reference to System.Xml.ReaderWriter.dll...
Adding reference to System.Xml.XDocument.dll...
Adding reference to Cake.Core.dll...
Adding reference to Cake.Common.dll...
Importing namespace Cake.Common...
...
Importing namespace System.Linq...
...

Probably a missing reference.

patriksvensson pushed a commit that referenced this issue Aug 8, 2016
This commit changes a lot of the interals in Cake to
allow it to run on the CoreCLR.

Closes #1015
patriksvensson pushed a commit that referenced this issue Aug 9, 2016
This commit changes a lot of the interals in Cake to
allow it to run on the CoreCLR.

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

No branches or pull requests

3 participants