Hey All,

The package manager topic Jens raises is an interesting
one, especially close to the 0.9.2 release. As I understand
it we have two kinds of package managers to deal with.

1. Those that pull source from the apache/thrift github repo
2. Those that we build libs for and upload to a central repo

The type 1s I know of are:
- Front End JavaScript (Bower)
- Node.js (npm)
- Php (Composer/Packagist)
- Haxe (as soon as Jens adds it)

The type 2s I know of are:
- Java (through Maven which covers all JVM)
- C# (through NuGet which covers all .Net/Mono)
- Ruby (RubyGems.org)
- Python (PyPI)

Are there any I missed?

While there's a lot to manage at release time already, I'd
like to see thrift add a couple more release components:

1. Publishing a .Net lib to NugGet with every release
2. Adding Wheel to the Python publishing process

I currently maintain the ApacheThrift NuGet package but
would like to see it or its equivalent end up in the release
process. The Wheel addition for Python should be a
straight forward tweak to the current process.

Thoughts? Anything we need to add that I missed?

-Randy

On Sat, Oct 18, 2014 at 5:59 AM, Jake Farrell <jfarr...@apache.org> wrote:
> I'm not a fan of all of these extra files in the root directory, but the
> ones that are there are due to the limitations of the client lib third
> party packaging tools in use. We have had this discussion before, and
> rather than splitting the Thrift repo up into compiler and each individual
> client lib in a repo we choose to just put the couple of extra files in the
> root directory, not the greatest but what we are stuck with right now.
> There is already an open ticket for adding Chocolatey support, will look at
> for the 0.9.2 release
>
> -Jake
>
> On Sat, Oct 18, 2014 at 4:33 AM, Jens Geyer <jensge...@hotmail.com> wrote:
>
>> Hi Randy,
>>
>> yes that was the assumption: that the relevant library subdir is cloned
>> only. IMHO it makes less sense to have the full source tree after doing a
>> nuget installation, I'm only interested in a part of it. I will put it in
>> lib/haxe then.
>>
>> Re the list:  add Chocolatey
>>
>> Thanks + have fun
>> JensG
>>
>>
>>
>> ________________________________
>> Von: Randy Abernethy
>> Gesendet: 18.10.2014 02:41
>> An: dev@thrift.apache.org
>> Betreff: Re: library registration files
>>
>> Hey Jens,
>>
>> We should definitely have a strategy for all of this stuff. One
>> difficulty is the requirements of the various language library
>> managers. Some notes:
>>
>> - /bower.json  -  Front End JavaScript
>> This file supports the Bower (http://bower.io/) package manager. Bower
>> requires the bower.json to be in the root of the repo. This is pretty
>> messed up for us because it also causes bower to clone the entire
>> thrift repo(!). It works but hopefully bower will add functionality to
>> pull the package manager file or at least the sources from a subdir.
>> The /lib/js/Gruntfile.js is not a package manager file but rather the
>> "makefile" for our JavaScript lib. The Grunt tool uses it to build,
>> run tests, etc. The output of the Gruntfile build is
>> /lib/js/dist/thrift.js and /lib/js/dist/thrift.min.js. The
>> package.json found in the js dir is the package file for Grunt which
>> is a node.js program.
>>
>> - /composer.json  -  PHP
>> The php Packagist web site requires this file to be in the root of the
>> repo but at least it only clones the lib/php/lib.
>>
>> - /lib/nodejs/package.json  -  Node.js
>> This is the package manager file for npm. Fortunately the npm site
>> allows us to point to a package file in a subdir of the repo.
>>
>> So in summary, you are totally right, all of these should be in their
>> respective subdirs. Unfortunately circumstances disallow it. If you
>> can get Haxe working with the package file in the lib dir, I think
>> that is the right way to go.
>>
>> -Randy
>>
>> On Fri, Oct 17, 2014 at 5:02 PM, Jens Geyer <jensge...@hotmail.com> wrote:
>> > Hi *,
>> >
>> > there are a accumulating number of registration files (mostly JSON) for
>> the various package managers of this world of ours spread across the source
>> tree. I found these (please correct me if I’m wrong):
>> >
>> >   /bower.json
>> >   /composer.json
>> >   /doap.rdf
>> >   /lib/js/Gruntfile.js
>> >   /lib/js/package.json
>> >   /lib/nodejs/package.json
>> >
>> > Couldn’t find:
>> >   - the nuget spec file for the nuget package
>> >
>> > Let’s say, I would like to add another file, specifically for
>> http://haxelib.org. My most natoral choice would be the /lib/haxe folder.
>> But shouldn’t we then consequently also move composer.json into /lib/php
>> and bower.json into /lib/nodejs?
>> >
>> > Or am I wrong and I should place the file in the root? What’s the
>> consensus here?
>> >
>> > Have fun,
>> > JensG
>> >
>> >
>>

Reply via email to