You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by Apache Wiki <wi...@apache.org> on 2010/10/15 13:03:39 UTC

[Thrift Wiki] Update of "HowToVersion" by RogerMeier

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.

The "HowToVersion" page has been changed by RogerMeier.
http://wiki.apache.org/thrift/HowToVersion

--------------------------------------------------

New page:
This page should describe the versioning of libraries. '''It's a DRAFT'''!

goal is to solve the following issues:
 * https://issues.apache.org/jira/browse/THRIFT-6
 * https://issues.apache.org/jira/browse/THRIFT-274

||'''Language'''|| '''via configure.ac''' || '''File(s) containing Version Information''' || '''Open Issues / Questions''' ||
||as3 || || || no version available||
||cocoa || || || no version available||
||cpp || yes || config.h (generated) || none ||
||csharp || no ||lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs || how to automate? people do not use configure scripts on Windows!||
||erl || yes ||lib/erl/src/thrift.app.src || none, is configure anyway required?  ||
||hs || no || lib/hs/Thrift.cabal|| automate via lib/hs/Makefile.am ? is configure anyway required? ||
||java || no ||lib/java/ivy.xml ||how to automate? Java people do not use configure scripts! ||
||javame || || || no version available||
||js || || || no version available||
||ocaml || || || no version available||
||perl || ||lib/perl/lib/Thrift.pm || it seems, that lib/perl/Makefile-perl.mk does not use version info from configure scripts ||
||php || || || ?||
||py || || lib/py/setup.py || automate via lib/py/Makefile.am ? is configure anyway required? ||
||rb || || lib/rb/Rakefile|| automate via lib/py/Makefile.am ? is configure anyway required? ||
||st || || ||  no version available||

General Questions:
 * which version string should be used on trunk? 0.6.0-dev or 0.6.x or 0.6.0-SNAPSHOT

== Versioning Concept ==
Semantic Versioning Specification (!SemVer) http://semver.org
 * Major: Incremented for backward incompatible changes. An example would be changes to the protocol.
 * Minor: Incremented for backward compatible changes.
 * Patch: Incremented for bug fixes

Re: [Thrift Wiki] Update of "HowToVersion" by RogerMeier

Posted by Anthony Molinaro <an...@alumni.caltech.edu>.
On Fri, Oct 15, 2010 at 11:44:17PM +0200, roger@bufferoverflow.ch wrote:
> agree with the two patterns!
> 
> >1) Build it yourself
> >   - download
> >   - ./configure && make && sudo make install
> - do we really need bootstrap.sh?

Yes, bootstrap.sh does the generation of files that a maintainer needs
in order to build.  The person downloading a tar only uses configure
(I didn't actually include the maintainer as a user in this case).

> - isn't it possible just with configure?

No, not unless you check configure into svn which would be wrong as
configure is configured with your system settings.

> - using ant as a wrapper on top of other build systems like automake?  
> prepare, tag, build and publish a release or setup a new development  
> branch after releasing with one script?

I think this is a bad idea.  These sorts of other activities can be added
into an autotools setup using something like fwtemplates (which I use
extensively to build, tag and create rpms and debs for other things I
work on, it would require a bit of work to get this going with thrift).


> >2) Get a package
> - what kind of packages and how to deploy them?

Ideally, we have people building debs and rpms and getting them into
the public repositories (EPEL and ubuntu repos would hit most users).

> - src and binary formats

We already have src format, it's the .tar.gz, I mostly mean rpm/deb

> - what's preferred deployment format for each Language?

I don't quite understand this question, but I think if you look at how the
debian packaging works they have a different one for each binding and
one for the compiler.  The old rpm spec had the same but is out of
date.  For work I just bundle 5 language bindings and the compiler in
one rpm.

> - compiler as Debian, Windows and xx package?

Yeah, but probably debian, rpm in EPEL for RHEL/Centos, binary for windows,
etc.

Hope that helps,

-Anthony

-- 
------------------------------------------------------------------------
Anthony Molinaro                           <an...@alumni.caltech.edu>

Re: [Thrift Wiki] Update of "HowToVersion" by RogerMeier

Posted by ro...@bufferoverflow.ch.
agree with the two patterns!

> 1) Build it yourself
>    - download
>    - ./configure && make && sudo make install
- do we really need bootstrap.sh?
- isn't it possible just with configure?
- using ant as a wrapper on top of other build systems like automake?  
prepare, tag, build and publish a release or setup a new development  
branch after releasing with one script?

> 2) Get a package
- what kind of packages and how to deploy them?
- src and binary formats
- what's preferred deployment format for each Language?
- compiler as Debian, Windows and xx package?

Quoting Anthony Molinaro <an...@alumni.caltech.edu>:

> While it is kind of nice to build some things without running configure, I
> think we should avoid it.  We should shoot for 2 patterns of usage of thrift
>
> 1) Build it yourself
>    - download
>    - ./configure && make && sudo make install
> 2) Get a package
>
> If we do this, it is very possible to have all version numbers driven by
> version in configure, and have the versions synced across all languages
> without jumping through as many hoops (basically I realize it is also
> possible to have each language build subsytem work without first running
> configure, but then you have to do random stuff, like change the version
> in a bunch of places, or have a script which generates a version, etc, if
> we assume the 2 patterns above we can simplify our versioning, and I
> think simplification is good when you deal with a system as complex
> as thrift).
>
> -Anthony
>
> On Fri, Oct 15, 2010 at 09:46:05AM -0700, David Reiss wrote:
>> > ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ?  
>> is configure anyway required? ||
>> No.  It's currently possible to build the Python library without  
>> running configure, which is kind of nice.
>>
>> On 10/15/2010 04:03 AM, Apache Wiki wrote:
>> > Dear Wiki user,
>> >
>> > You have subscribed to a wiki page or wiki category on "Thrift  
>> Wiki" for change notification.
>> >
>> > The "HowToVersion" page has been changed by RogerMeier.
>> > http://wiki.apache.org/thrift/HowToVersion
>> >
>> > --------------------------------------------------
>> >
>> > New page:
>> > This page should describe the versioning of libraries. '''It's a DRAFT'''!
>> >
>> > goal is to solve the following issues:
>> >  * https://issues.apache.org/jira/browse/THRIFT-6
>> >  * https://issues.apache.org/jira/browse/THRIFT-274
>> >
>> > ||'''Language'''|| '''via configure.ac''' || '''File(s)  
>> containing Version Information''' || '''Open Issues / Questions''' ||
>> > ||as3 || || || no version available||
>> > ||cocoa || || || no version available||
>> > ||cpp || yes || config.h (generated) || none ||
>> > ||csharp || no  
>> ||lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs || how to  
>> automate? people do not use configure scripts on Windows!||
>> > ||erl || yes ||lib/erl/src/thrift.app.src || none, is configure  
>> anyway required?  ||
>> > ||hs || no || lib/hs/Thrift.cabal|| automate via  
>> lib/hs/Makefile.am ? is configure anyway required? ||
>> > ||java || no ||lib/java/ivy.xml ||how to automate? Java people do  
>> not use configure scripts! ||
>> > ||javame || || || no version available||
>> > ||js || || || no version available||
>> > ||ocaml || || || no version available||
>> > ||perl || ||lib/perl/lib/Thrift.pm || it seems, that  
>> lib/perl/Makefile-perl.mk does not use version info from configure  
>> scripts ||
>> > ||php || || || ?||
>> > ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ?  
>> is configure anyway required? ||
>> > ||rb || || lib/rb/Rakefile|| automate via lib/py/Makefile.am ? is  
>> configure anyway required? ||
>> > ||st || || ||  no version available||
>> >
>> > General Questions:
>> >  * which version string should be used on trunk? 0.6.0-dev or  
>> 0.6.x or 0.6.0-SNAPSHOT
>> >
>> > == Versioning Concept ==
>> > Semantic Versioning Specification (!SemVer) http://semver.org
>> >  * Major: Incremented for backward incompatible changes. An  
>> example would be changes to the protocol.
>> >  * Minor: Incremented for backward compatible changes.
>> >  * Patch: Incremented for bug fixes
>
> --
> ------------------------------------------------------------------------
> Anthony Molinaro                           <an...@alumni.caltech.edu>
>
>
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


Re: [Thrift Wiki] Update of "HowToVersion" by RogerMeier

Posted by Anthony Molinaro <an...@alumni.caltech.edu>.
While it is kind of nice to build some things without running configure, I
think we should avoid it.  We should shoot for 2 patterns of usage of thrift

1) Build it yourself
   - download
   - ./configure && make && sudo make install
2) Get a package

If we do this, it is very possible to have all version numbers driven by
version in configure, and have the versions synced across all languages
without jumping through as many hoops (basically I realize it is also
possible to have each language build subsytem work without first running
configure, but then you have to do random stuff, like change the version
in a bunch of places, or have a script which generates a version, etc, if
we assume the 2 patterns above we can simplify our versioning, and I
think simplification is good when you deal with a system as complex
as thrift).

-Anthony

On Fri, Oct 15, 2010 at 09:46:05AM -0700, David Reiss wrote:
> > ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ? is configure anyway required? ||
> No.  It's currently possible to build the Python library without running configure, which is kind of nice.
> 
> On 10/15/2010 04:03 AM, Apache Wiki wrote:
> > Dear Wiki user,
> > 
> > You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.
> > 
> > The "HowToVersion" page has been changed by RogerMeier.
> > http://wiki.apache.org/thrift/HowToVersion
> > 
> > --------------------------------------------------
> > 
> > New page:
> > This page should describe the versioning of libraries. '''It's a DRAFT'''!
> > 
> > goal is to solve the following issues:
> >  * https://issues.apache.org/jira/browse/THRIFT-6
> >  * https://issues.apache.org/jira/browse/THRIFT-274
> > 
> > ||'''Language'''|| '''via configure.ac''' || '''File(s) containing Version Information''' || '''Open Issues / Questions''' ||
> > ||as3 || || || no version available||
> > ||cocoa || || || no version available||
> > ||cpp || yes || config.h (generated) || none ||
> > ||csharp || no ||lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs || how to automate? people do not use configure scripts on Windows!||
> > ||erl || yes ||lib/erl/src/thrift.app.src || none, is configure anyway required?  ||
> > ||hs || no || lib/hs/Thrift.cabal|| automate via lib/hs/Makefile.am ? is configure anyway required? ||
> > ||java || no ||lib/java/ivy.xml ||how to automate? Java people do not use configure scripts! ||
> > ||javame || || || no version available||
> > ||js || || || no version available||
> > ||ocaml || || || no version available||
> > ||perl || ||lib/perl/lib/Thrift.pm || it seems, that lib/perl/Makefile-perl.mk does not use version info from configure scripts ||
> > ||php || || || ?||
> > ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ? is configure anyway required? ||
> > ||rb || || lib/rb/Rakefile|| automate via lib/py/Makefile.am ? is configure anyway required? ||
> > ||st || || ||  no version available||
> > 
> > General Questions:
> >  * which version string should be used on trunk? 0.6.0-dev or 0.6.x or 0.6.0-SNAPSHOT
> > 
> > == Versioning Concept ==
> > Semantic Versioning Specification (!SemVer) http://semver.org
> >  * Major: Incremented for backward incompatible changes. An example would be changes to the protocol.
> >  * Minor: Incremented for backward compatible changes.
> >  * Patch: Incremented for bug fixes

-- 
------------------------------------------------------------------------
Anthony Molinaro                           <an...@alumni.caltech.edu>

Re: [Thrift Wiki] Update of "HowToVersion" by RogerMeier

Posted by David Reiss <dr...@facebook.com>.
> ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ? is configure anyway required? ||
No.  It's currently possible to build the Python library without running configure, which is kind of nice.

On 10/15/2010 04:03 AM, Apache Wiki wrote:
> Dear Wiki user,
> 
> You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.
> 
> The "HowToVersion" page has been changed by RogerMeier.
> http://wiki.apache.org/thrift/HowToVersion
> 
> --------------------------------------------------
> 
> New page:
> This page should describe the versioning of libraries. '''It's a DRAFT'''!
> 
> goal is to solve the following issues:
>  * https://issues.apache.org/jira/browse/THRIFT-6
>  * https://issues.apache.org/jira/browse/THRIFT-274
> 
> ||'''Language'''|| '''via configure.ac''' || '''File(s) containing Version Information''' || '''Open Issues / Questions''' ||
> ||as3 || || || no version available||
> ||cocoa || || || no version available||
> ||cpp || yes || config.h (generated) || none ||
> ||csharp || no ||lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs || how to automate? people do not use configure scripts on Windows!||
> ||erl || yes ||lib/erl/src/thrift.app.src || none, is configure anyway required?  ||
> ||hs || no || lib/hs/Thrift.cabal|| automate via lib/hs/Makefile.am ? is configure anyway required? ||
> ||java || no ||lib/java/ivy.xml ||how to automate? Java people do not use configure scripts! ||
> ||javame || || || no version available||
> ||js || || || no version available||
> ||ocaml || || || no version available||
> ||perl || ||lib/perl/lib/Thrift.pm || it seems, that lib/perl/Makefile-perl.mk does not use version info from configure scripts ||
> ||php || || || ?||
> ||py || || lib/py/setup.py || automate via lib/py/Makefile.am ? is configure anyway required? ||
> ||rb || || lib/rb/Rakefile|| automate via lib/py/Makefile.am ? is configure anyway required? ||
> ||st || || ||  no version available||
> 
> General Questions:
>  * which version string should be used on trunk? 0.6.0-dev or 0.6.x or 0.6.0-SNAPSHOT
> 
> == Versioning Concept ==
> Semantic Versioning Specification (!SemVer) http://semver.org
>  * Major: Incremented for backward incompatible changes. An example would be changes to the protocol.
>  * Minor: Incremented for backward compatible changes.
>  * Patch: Incremented for bug fixes