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

Intention of Transition: Default framework for desktop platforms to change to .NET Core #87

Open
hach-que opened this issue Feb 3, 2015 · 0 comments
Assignees
Projects

Comments

@hach-que
Copy link
Member

hach-que commented Feb 3, 2015

What is an intention of transition?

When developing Protobuild, we strive to ensure that changes are forward compatible and don't break existing uses. However, sometimes we need to change the default behaviour of Protobuild, either because of changing circumstances, new features or because the existing default behaviour is incorrect or faulty.

An intention of transition indicates that a default will be changing in a future of Protobuild, and outlines the reason for the change.

What is changing?

With the release of .NET Core, there is an officially supported .NET framework for Windows, Mac and Linux desktop platforms. The intention is to change from the current default framework of .NET 4.0 / Mono 4.0 over to .NET Core for these desktop platforms.

For a long time now, Mono has been distributed inconsistently in different Linux distributions. In particular, the 4.5 framework has been badly shipped in multiple distros, preventing usage of .NET 4.5 on Linux in any safe way (despite Mono having implemented it first). With .NET Core, we expect that a lot of these issues will be cleared up, and there'll be a stable way of shipping .NET code on the latest framework on multiple platforms.

We don't have any intention of changing the defaults for mobile platforms (iOS or Android) at this time. If Xamarin announces .NET Core support for these platforms, we'll investigate whether it's feasible to change the defaults for these platforms in a separate intention of transition.

When is the change occurring?

The change will occur when .NET Core stabilizes on all 3 major desktop platforms (Windows, Mac and Linux), and once we've been able to test some major code bases on .NET Code that are currently using Protobuild.

It will be at least one month from the filing of this issue (but most likely longer).

What is affected?

This will change the default .NET framework for the Windows, MacOS and Linux platforms. No other platforms are affected (including variants of the Windows platform).

What do I need to do to keep the existing behaviour?

The behaviour will only change when you start using a version of Protobuild.exe that includes the new behaviour. If you keep your existing version of Protobuild, the behaviour will not change.

If you are intending to use a version of Protobuild.exe after the change is made, you can keep the existing behaviour by explicitly specifying the .NET framework for a platform through the <FrameworkVersions> option, detailed at http://protobuild.readthedocs.org/en/latest/project_properties.html#frameworkversions. In particular, you'll need to add the following section to the <Properties> section of all projects that you want to keep on .NET 4.0:

<Properties>
  <!-- ... -->
  <FrameworkVersions>
    <Platform Name="Windows">
      <Version>4.0</Version>
    </Platform>
    <Platform Name="MacOS">
      <Version>4.0</Version>
    </Platform>
    <Platform Name="Linux">
      <Version>4.0</Version>
    </Platform>
  </FrameworkVersions>
  <!-- ... -->
</Properties>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Roadmap
Medium Term (2 - 4 Months)
Development

No branches or pull requests

1 participant