[jira] [Commented] (THRIFT-4478) Thrift will not build with dlang 2.078 or later

2018-04-03 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16424321#comment-16424321
 ] 

James E. King, III commented on THRIFT-4478:


As a result of this, dlang will be disabled in the upcoming bionic dockerfile 
because it won't install properly:
{noformat}
Step 16/43 : RUN `# D dependencies` wget -q 
http://downloads.dlang.org/releases/2.x/${D_VERSION}/${DMD_DEB} && dpkg 
--install ${DMD_DEB} && rm -f ${DMD_DEB} && mkdir -p 
/usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && 
curl -sSL 
https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz 
&& mv libevent-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && mv 
libevent-master/C/* /usr/include/dmd/druntime/import/C/ && rm -rf 
libevent-master && curl -sSL 
https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz 
&& mv openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && mv 
openssl-master/C/* /usr/include/dmd/druntime/import/C/ && rm -rf openssl-master
---> Running in 7323d82d3bc9
Selecting previously unselected package dmd.
(Reading database ... 50152 files and directories currently installed.)
Preparing to unpack dmd_2.077.1-0_amd64.deb ...
Unpacking dmd (2.077.1-0) ...
Processing triggers for mime-support (3.60ubuntu1) ...
dpkg: dependency problems prevent configuration of dmd:
dmd depends on libcurl3; however:
Package libcurl3 is not installed.

dpkg: error processing package dmd (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.8.2-1) ...
Errors were encountered while processing:
dmd
{noformat}

> Thrift will not build with dlang 2.078 or later
> ---
>
> Key: THRIFT-4478
> URL: https://issues.apache.org/jira/browse/THRIFT-4478
> Project: Thrift
>  Issue Type: Bug
>  Components: D - Compiler
>Affects Versions: 0.11.0
>Reporter: James E. King, III
>Priority: Critical
>
> I tried to move the ubuntu-artful dlang version up from 2.076.0 to 2.078.1 
> and the build failed here:
> {noformat}
> dmd -L-fuse-ld=gold -L-levent ../libthriftd-event.a -L-fuse-ld=gold -L-lssl 
> -L-lcrypto ../libthriftd-ssl.a -w -wi -O -release -inline 
> -I../../../lib/d/src -Igen-d ../../../lib/d/libthriftd.a 
> -ofserialization_benchmark serialization_benchmark.d 
> gen-d/DebugProtoTest_types.d
> thrift_test_client.d(128): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(128): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(16): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> serialization_benchmark.d(16): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> serialization_benchmark.d(16): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(16): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(338): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(338): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> thrift_test_client.d(338): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(42): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(60): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> ../../../lib/d/src/thrift/codegen/base.d(466): Error: template 
> instance 
> object.__equals!(const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)]),
>  const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])) 
> error instantiating
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 'const(HashSet!string[int])'
> /usr/include/dmd/druntime/import/object.d(3461): 

[jira] [Updated] (THRIFT-4478) Thrift will not build with dlang 2.078 or later

2018-04-03 Thread James E. King, III (JIRA)

 [ 
https://issues.apache.org/jira/browse/THRIFT-4478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-4478:
---
Priority: Critical  (was: Major)

> Thrift will not build with dlang 2.078 or later
> ---
>
> Key: THRIFT-4478
> URL: https://issues.apache.org/jira/browse/THRIFT-4478
> Project: Thrift
>  Issue Type: Bug
>  Components: D - Compiler
>Affects Versions: 0.11.0
>Reporter: James E. King, III
>Priority: Critical
>
> I tried to move the ubuntu-artful dlang version up from 2.076.0 to 2.078.1 
> and the build failed here:
> {noformat}
> dmd -L-fuse-ld=gold -L-levent ../libthriftd-event.a -L-fuse-ld=gold -L-lssl 
> -L-lcrypto ../libthriftd-ssl.a -w -wi -O -release -inline 
> -I../../../lib/d/src -Igen-d ../../../lib/d/libthriftd.a 
> -ofserialization_benchmark serialization_benchmark.d 
> gen-d/DebugProtoTest_types.d
> thrift_test_client.d(128): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(128): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(16): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> serialization_benchmark.d(16): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> serialization_benchmark.d(16): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(16): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(338): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> thrift_test_client.d(338): Deprecation: alias 
> std.datetime.AutoStart is deprecated - Use std.datetime.stopwatch.AutoStart.
> thrift_test_client.d(338): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(42): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> serialization_benchmark.d(60): Deprecation: struct 
> std.datetime.StopWatch is deprecated - Use std.datetime.stopwatch.StopWatch.
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> ../../../lib/d/src/thrift/codegen/base.d(466): Error: template 
> instance 
> object.__equals!(const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)]),
>  const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])) 
> error instantiating
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 'const(HashSet!string[int])'
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 'const(HashSet!string[int])'
> ../../../lib/d/src/thrift/codegen/base.d(466): Error: template 
> instance object.__equals!(const(HashSet!string[int]), 
> const(HashSet!string[int])) error instantiating
> Makefile:803: recipe for target 'thrift_test_client' failed
> make[5]: *** [thrift_test_client] Error 1
> make[5]: *** Waiting for unfinished jobs
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 
> 'const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])'
> ../../../lib/d/src/thrift/codegen/base.d(466): Error: template 
> instance 
> object.__equals!(const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)]),
>  const(HashSet!(string[immutable(Insanity)][])[int][immutable(HashSet!int)])) 
> error instantiating
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 'const(HashSet!string[int])'
> /usr/include/dmd/druntime/import/object.d(3461): Error: no 
> property 'tupleof' for type 'const(HashSet!string[int])'
> ../../../lib/d/src/thrift/codegen/base.d(466): Error: template 
> instance 

[RESULT][VOTE]: Move from legacy asf git to Apache GitBox

2018-04-03 Thread Jake Farrell
result vote never sent for this, closing it out.

With 6 positive votes (4 binding, 2 non binding), and zero negative votes
the vote to move to Apache GitBox for core development passes. I'll submit
the request and keep everyone updated as INFRA moves us over

-Jake


Binding positive votes:
Randy Abernethy
Jake Farrell
James King
Aki Sukegawa

Non Binding positive votes:
Duru Can Celasun
Wang Xin


On Wed, Mar 21, 2018 at 8:18 AM, James E. King, III 
wrote:

> Apache GitBox provides the Thrift project more control over the lifecycle
> of pull requests and improve the team's ability to get things done in a
> timely manner.  The goal is to improve team self-service in GitHub and
> integrated CI workflows.  One important improvement for committers is that
> it allows them to "Rebase and Merge" directly in GitHub, assuming the
> commit description meets published guidelines.It also allows for more
> control over GitHub features such as issues (note there are no plans to
> switch from Apache Hira to GitHub Issues right now), and it allows pull
> requests to be assigned to committers and labelled.
>
> I found one discussion link for reference from another Apache project
> considering conversion back in July 2017:
>
> http://apache-nifi.1125220.n5.nabble.com/DISCUSS-Apache-
> Gitbox-td18273.html
>
> Please VOTE:
>
> [ ] +1 Move to Apache GitBox
> [ ] +0
> [ ] -1 Don't move to  Apache  GitBox because...
>
> Voting will end in 72 hours (excluding the weekend), March 26, 2018 at
> 9:00:00 AM EDT
> https://www.timeanddate.com/countdown/to?iso=20180326T09
>
> - Jim King (PMC Member)
>


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread Jens Geyer (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16424012#comment-16424012
 ] 

Jens Geyer commented on THRIFT-4541:


I just made this an "Umbrella". The idea is to create sub-tasks for every PR 
that we plan to merge. 

> Use new project system in "lib/csharp" and define supported platforms
> -
>
> Key: THRIFT-4541
> URL: https://issues.apache.org/jira/browse/THRIFT-4541
> Project: Thrift
>  Issue Type: Umbrella
>  Components: C# - Library
>Reporter: Christian Weiss
>Priority: Major
>
> As discussed in THRIFT-4535, it would be great if we could update 
> "lib/csharp" to use the new "csproj" project system. This will allow us to 
> target multiple platforms and the new ".NET Standard" with a single project.
> It's possible to support pretty much every platform there is with this new 
> project format (see e.g. 
> [Newtonsoft.Json|https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Newtonsoft.Json.csproj]),
>  however supporting older platforms requires more work as this requires more 
> #if statements etc.
> This means that we have to decide which platforms we want to support!
> Targeting ".NET Standard 2.0" would be the easiest option as this version 
> [covers a much larger API 
> surface|https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/].
>  However, this would also mean that people have to use rather recent versions 
> of their platforms to use it, as .NET Standard 2.0 requires the following 
> minimum versions:
>  * .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
>  * .NET Core 2.0
>  * Mono 5.4
>  * Xamarin.iOS 10.14
>  * Xamarin.Mac 3.8
>  * Xamarin.Android 8.0
>  * UWP 10.0.16299
> I will create a PR that targets .NET Standard 2.0 and .NET 4.5 to show what 
> the new project files would look like. If the approach is OK for you in 
> general, then I can try to add support for whatever minimum versions you'd 
> like to support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread Jens Geyer (JIRA)

 [ 
https://issues.apache.org/jira/browse/THRIFT-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer updated THRIFT-4541:
---
Issue Type: Umbrella  (was: Improvement)

> Use new project system in "lib/csharp" and define supported platforms
> -
>
> Key: THRIFT-4541
> URL: https://issues.apache.org/jira/browse/THRIFT-4541
> Project: Thrift
>  Issue Type: Umbrella
>  Components: C# - Library
>Reporter: Christian Weiss
>Priority: Major
>
> As discussed in THRIFT-4535, it would be great if we could update 
> "lib/csharp" to use the new "csproj" project system. This will allow us to 
> target multiple platforms and the new ".NET Standard" with a single project.
> It's possible to support pretty much every platform there is with this new 
> project format (see e.g. 
> [Newtonsoft.Json|https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Newtonsoft.Json.csproj]),
>  however supporting older platforms requires more work as this requires more 
> #if statements etc.
> This means that we have to decide which platforms we want to support!
> Targeting ".NET Standard 2.0" would be the easiest option as this version 
> [covers a much larger API 
> surface|https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/].
>  However, this would also mean that people have to use rather recent versions 
> of their platforms to use it, as .NET Standard 2.0 requires the following 
> minimum versions:
>  * .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
>  * .NET Core 2.0
>  * Mono 5.4
>  * Xamarin.iOS 10.14
>  * Xamarin.Mac 3.8
>  * Xamarin.Android 8.0
>  * UWP 10.0.16299
> I will create a PR that targets .NET Standard 2.0 and .NET 4.5 to show what 
> the new project files would look like. If the approach is OK for you in 
> general, then I can try to add support for whatever minimum versions you'd 
> like to support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16424001#comment-16424001
 ] 

ASF GitHub Bot commented on THRIFT-4541:


GitHub user cwe1ss opened a pull request:

https://github.com/apache/thrift/pull/1532

[WIP] THRIFT-4541: Use new project system in lib/csharp

See [THRIFT-4541](https://issues.apache.org/jira/browse/THRIFT-4541). 

This is a WIP/PoC and **MUST NOT BE MERGED** (because supported versions 
must be defined first etc).

This PR updates all project files to the new project system and targets 
".NET Standard 2.0" and ".NET 4.5". (Except for the MSBuild-task which 
currently can't target .NET 4.5 due to its dependencies)

Some notes about it:
* The solution can now be built using the cross-platform .NET Core SDK 
(v2.0+). (using the cmd `dotnet build`)
* I have not changed the MAKE files yet as I don't yet know how they work. 
I'll look into this once I know that we'll actually do this change.
* NuGet packages for the main Thrift library and for the MSBuild library 
can be created with `dotnet pack -c Release`. They will be placed in the 
"lib\csharp\artifacts" folder.
* `AssemblyInfo.cs` files are no longer required as most things are now 
defined either in `Directory.Build.props` or directly in the `*.csproj` files.
* **Thrift** project:
  * As there's some classes that depend on "System.Web" I already had to 
add some #if statements. These classes are only available when the package is 
consumed on the full .NET framework.
  * I also had to change something in `TNamedPipeServerTransport` as .NET 
standard doesn't have a NamedPipeServerStream constructor that accepts a 
PipeSecurity. We'll have to look into how to test this.
* **ThriftMSBuildTask** project:
  * I had to reference NuGet packages for MSBuild and these no longer 
contain the "Csc" class. I therefore had to change the implementation to 
manually call "csc". **This is not yet tested though!!** I wanted to show you 
the general approach first before I invest more time.
  * The project now creates a NuGet package that includes props files etc. 
I got this from [this 
how-to](https://www.natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/).
* The test projects contain `PreBuildEvents` that generate `*.cs` files for 
`thrift` files. This currently is executed too late which results in the first 
build to fail. I still have to look into this or we should discuss using a 
different approach (e.g. using the MSBuild task)

I'm looking for general feedback on this approach. If the approach is ok, 
we should discuss in THRIFT-4541, which platforms we'd like to support. We can 
then either merge this into a branch or I can create a new PR with all changes.

/cc @Jens-G @jeking3 

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cwe1ss/thrift cweiss/Netstd

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1532.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1532


commit 550df5b23dc9ba28198b8ccb92db46fb41be64e3
Author: Christian Weiss 
Date:   2018-04-03T11:49:53Z

Target netstandard2.0 and net45




> Use new project system in "lib/csharp" and define supported platforms
> -
>
> Key: THRIFT-4541
> URL: https://issues.apache.org/jira/browse/THRIFT-4541
> Project: Thrift
>  Issue Type: Improvement
>  Components: C# - Library
>Reporter: Christian Weiss
>Priority: Major
>
> As discussed in THRIFT-4535, it would be great if we could update 
> "lib/csharp" to use the new "csproj" project system. This will allow us to 
> target multiple platforms and the new ".NET Standard" with a single project.
> It's possible to support pretty much every platform there is with this new 
> project format (see e.g. 
> [Newtonsoft.Json|https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Newtonsoft.Json.csproj]),
>  however supporting older platforms requires more work as this requires more 
> #if statements etc.
> This means that we have to decide which platforms we want to support!
> Targeting ".NET Standard 2.0" would be the easiest option as this version 
> [covers a much larger API 
> surface|https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/].
>  However, this would also mean that people have to use rather recent versions 
> of their platforms to use it, as .NET Standard 2.0 requires the following 
> minimum versions:
>  * .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
>  * .NET Core 

[GitHub] thrift pull request #1532: [WIP] THRIFT-4541: Use new project system in lib/...

2018-04-03 Thread cwe1ss
GitHub user cwe1ss opened a pull request:

https://github.com/apache/thrift/pull/1532

[WIP] THRIFT-4541: Use new project system in lib/csharp

See [THRIFT-4541](https://issues.apache.org/jira/browse/THRIFT-4541). 

This is a WIP/PoC and **MUST NOT BE MERGED** (because supported versions 
must be defined first etc).

This PR updates all project files to the new project system and targets 
".NET Standard 2.0" and ".NET 4.5". (Except for the MSBuild-task which 
currently can't target .NET 4.5 due to its dependencies)

Some notes about it:
* The solution can now be built using the cross-platform .NET Core SDK 
(v2.0+). (using the cmd `dotnet build`)
* I have not changed the MAKE files yet as I don't yet know how they work. 
I'll look into this once I know that we'll actually do this change.
* NuGet packages for the main Thrift library and for the MSBuild library 
can be created with `dotnet pack -c Release`. They will be placed in the 
"lib\csharp\artifacts" folder.
* `AssemblyInfo.cs` files are no longer required as most things are now 
defined either in `Directory.Build.props` or directly in the `*.csproj` files.
* **Thrift** project:
  * As there's some classes that depend on "System.Web" I already had to 
add some #if statements. These classes are only available when the package is 
consumed on the full .NET framework.
  * I also had to change something in `TNamedPipeServerTransport` as .NET 
standard doesn't have a NamedPipeServerStream constructor that accepts a 
PipeSecurity. We'll have to look into how to test this.
* **ThriftMSBuildTask** project:
  * I had to reference NuGet packages for MSBuild and these no longer 
contain the "Csc" class. I therefore had to change the implementation to 
manually call "csc". **This is not yet tested though!!** I wanted to show you 
the general approach first before I invest more time.
  * The project now creates a NuGet package that includes props files etc. 
I got this from [this 
how-to](https://www.natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/).
* The test projects contain `PreBuildEvents` that generate `*.cs` files for 
`thrift` files. This currently is executed too late which results in the first 
build to fail. I still have to look into this or we should discuss using a 
different approach (e.g. using the MSBuild task)

I'm looking for general feedback on this approach. If the approach is ok, 
we should discuss in THRIFT-4541, which platforms we'd like to support. We can 
then either merge this into a branch or I can create a new PR with all changes.

/cc @Jens-G @jeking3 

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cwe1ss/thrift cweiss/Netstd

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1532.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1532


commit 550df5b23dc9ba28198b8ccb92db46fb41be64e3
Author: Christian Weiss 
Date:   2018-04-03T11:49:53Z

Target netstandard2.0 and net45




---


[jira] [Created] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread Christian Weiss (JIRA)
Christian Weiss created THRIFT-4541:
---

 Summary: Use new project system in "lib/csharp" and define 
supported platforms
 Key: THRIFT-4541
 URL: https://issues.apache.org/jira/browse/THRIFT-4541
 Project: Thrift
  Issue Type: Improvement
  Components: C# - Library
Reporter: Christian Weiss


As discussed in THRIFT-4535, it would be great if we could update "lib/csharp" 
to use the new "csproj" project system. This will allow us to target multiple 
platforms and the new ".NET Standard" with a single project.

It's possible to support pretty much every platform there is with this new 
project format (see e.g. 
[Newtonsoft.Json|https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Newtonsoft.Json.csproj]),
 however supporting older platforms requires more work as this requires more 
#if statements etc.

This means that we have to decide which platforms we want to support!

Targeting ".NET Standard 2.0" would be the easiest option as this version 
[covers a much larger API 
surface|https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/].
 However, this would also mean that people have to use rather recent versions 
of their platforms to use it, as .NET Standard 2.0 requires the following 
minimum versions:
 * .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
 * .NET Core 2.0
 * Mono 5.4
 * Xamarin.iOS 10.14
 * Xamarin.Mac 3.8
 * Xamarin.Android 8.0
 * UWP 10.0.16299

I will create a PR that targets .NET Standard 2.0 and .NET 4.5 to show what the 
new project files would look like. If the approach is OK for you in general, 
then I can try to add support for whatever minimum versions you'd like to 
support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4538) TZLibTransport for C#

2018-04-03 Thread Jens Geyer (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16423633#comment-16423633
 ] 

Jens Geyer commented on THRIFT-4538:


Resolution = LATER, not FIXED

> TZLibTransport for C#
> -
>
> Key: THRIFT-4538
> URL: https://issues.apache.org/jira/browse/THRIFT-4538
> Project: Thrift
>  Issue Type: Improvement
>  Components: C# - Library
>Reporter: Jens Geyer
>Assignee: Jens Geyer
>Priority: Major
>  Labels: todo
>
> Implement a TZlibTransport according to the C++ implementation.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)