minimal required version of (optional) tools
dilyan.palauzov at aegee.org
Mon Jul 2 06:54:49 EDT 2012
to my opinion there are two things:
1. What do people cloning from git need in order to build the package
2. What tools versions do developers need, when they change a e.g. lex file.
About people cloning from git, if we want to make their life easier, we
can version-manage the generated files (e.g. sieve/addr-lex.c,
Makefile.in) and that's all - no tools are really necessary.
About requirements for developers changing the Makefile.am or flex
files, or even the autoconf input... Well about autoconf, if somebody is
able to make changes in autoconf input (configure.ac and cmulocal/),
then she shall be able to locally install the latest version of autoconf
(under ~/bin or /usr/local/bin), so the highest version of autoconf
could be required. About automake 1.12 and flex 2.5.35, provided that
we are talking not about everybody who clones over git, but for those
modifying sieve/addr-lex.l, sieve/sieve-lex.l or Makefile.am files,
these people are soo few, that it is not necessary to talk about the
Long Term Support releases.
On 02.07.2012 11:09, Greg Banks wrote:
> On Mon, Jul 2, 2012, at 09:53 AM, Дилян Палаузов wrote:
>>> 1) if we have any doubts about the version of tools needed to generate
>>> parts of the source, then ship the generated source in the dist tarball
>>> and hide the make rules in maintainer mode. The code should be
>>> buildable from a dist tarball on the widest possible range of platforms.
>> I am talking about maintainer mode. The distributed tarballs contain
>> anyway the generated files and as long as the input files (e.g.
>> sieve/addr-lex.l are not changed, the Makefile-rules are not invoked and
>> it does not matter, if the tool is available or not.
> Great, we're all good then :)
>>> 2) For maintainer mode, the ideal situation is that versions of tools
>>> available in the current Long Term Support releases of common target
>>> platforms should work without difficulty.
>> Which versions of autoconf, automake, bison, (f)lex, gperf and libtool
>> are in the current Long Term Support releases of common target platforms?
> That's where *you* get to do the research.
> Me, I'm lazy. I usually start by setting the minimum version to the
> version on my desktop and then decrease it any time I see a problem I
> can't work around or a machine where I can't upgrade the tools. But
> then I don't usually go and rewrite an entire build system of a
> non-trivial project, not after the great CML2 disaster of 2001 :)
>> Why for maintainer mode it is not possible to stick to versions, that
>> are not yet in the Long Term Support releases?
> Because maintainer mode is really "anyone who changes the source code in
> a .y file" mode rather than "the mode for people with write access to
> the Cyrus git repo". I don't think it's good policy in an open source
> project to put an artificial speed hump in the way of users contributing
> patches (compilable, tested patches). Given that we're a server
> project, the users I'm thinking of are mail system admins. A
> significant portion of those folks want stable dependable supported
> platforms, which is what Long Term Support releases are all about.
> FastMail doesn't operate like that, but lots of people who could be
> contributing do.
> In short, it's wonderful to have the latest flashy tool feature, but if
> only two people in the world can build from git then we've got a
> Remember, these are just my suggestions for rules of thumb, I'm not the
> final arbiter.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 380 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20120702/ee4cd8a3/attachment.vcf
More information about the Cyrus-devel