Sid S created AVRO-1431:
---------------------------

             Summary: Publish the Avro C# library to NuGet
                 Key: AVRO-1431
                 URL: https://issues.apache.org/jira/browse/AVRO-1431
             Project: Avro
          Issue Type: New Feature
          Components: csharp
    Affects Versions: 1.7.5
            Reporter: Sid S


ASF's Avro library is currently distributed as a downloadable .tar.gz file from 
the project web site for C# projects. A more streamline approach would be to 
distribute the library (and perhaps tools) as NuGet packages so that project 
repositories using Avro can instead get the l;ibrary from NuGet at build time 
(very similar to Maven's library dependency resolution).

How to make a NuGet package:
http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

To be able to run NuGet on Linux (eg: build machine or dev machine): 
http://monomvc.wordpress.com/2012/03/06/nuget-on-mono/

The desire to have Avro on NuGet is motivated by two main benefits
1) Easier integration and lightweight code-repositories for all 
consumer-projects of the Avro library
2) Counters the effects of finding an incompatible "Avro" library on NuGet. 
(Details: Currently searching for Avro on NuGet brings up the Microsoft Hadoop 
team's Avro library which forces every Avro field to be nullable => alters the 
schema => breaks wire compatibility in cross-platform environments. Having the 
official ASF Avro library on NuGet would prevent people from accidentally using 
that incompatible library)

For the best flexibility, we can have two NuGet packages:
1. "Avro" = Library only (this will cover the avro.dll)
2. "Avro Tools" = The code-gen tools for IDL compiling as well as Schema 
compiling



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to