Re: VERSION and VCS

2008-07-11 Thread Aristotle Pagaltzis
* Johan Vromans [EMAIL PROTECTED] [2008-07-09 17:10]:
 What are the alternatives?

You probably want to use git-describe in your build script.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: VERSION and VCS

2008-07-11 Thread Johan Vromans
Jim Schneider [EMAIL PROTECTED] writes:

 This should be handled by your release building tool (a feature that
 seems an obvious no-brainer, once it's been pointed out that it's
 missing).

Yes, and no.

In general, a package has a version associated. For this version
number the release building tool is a good way to have it incremented.

But for all the individual modules that are part of a package? Their
version numbers should only increase when something changed, i.e., at
commit time. Not at release time. A task very neatly handled by CVS.
And for which GIT c.s. has no alternative.

-- Johan


Re: VERSION and VCS

2008-07-11 Thread Elliot Shank

Johan Vromans wrote:

But for all the individual modules that are part of a package? Their
version numbers should only increase when something changed, i.e., at
commit time. Not at release time.


Let me speak against this.  I find non-uniform version numbers a pain.  Version 
123 of Foo::Bar::Baz is associated with what version of Foo::Bar?  Arggh!


Re: VERSION and VCS

2008-07-11 Thread Jonas Brømsø Nielsen

Hello,

I prefer the individual package versioning too.

What I have experienced over time is that single packages sometimes  
are separated out into separate distributions and due to the nature of  
the Perl package name spacing, a version number should be at least  
present.


Nothing speaks against not doing this until actual separation time,  
but I must admit I prefer packages having separate life cycles and  
version history since a distribution is just a matter of packaging and  
upon installation, distributions do seem to dissolve into the  
filesystem as separate packages only related in their coupling.


jonasbn

On 11/07/2008, at 18.07, Elliot Shank wrote:


Johan Vromans wrote:

But for all the individual modules that are part of a package? Their
version numbers should only increase when something changed, i.e., at
commit time. Not at release time.


Let me speak against this.  I find non-uniform version numbers a  
pain.  Version 123 of Foo::Bar::Baz is associated with what version  
of Foo::Bar?  Arggh!




--
pauseid: JONASBN
email: [EMAIL PROTECTED]
blog: http://use.perl.org/~jonasbn/journal/




Re: VERSION and VCS

2008-07-11 Thread Ken Williams
On Fri, Jul 11, 2008 at 10:57 AM, Johan Vromans [EMAIL PROTECTED] wrote:
 But for all the individual modules that are part of a package? Their
 version numbers should only increase when something changed, i.e., at
 commit time. Not at release time. A task very neatly handled by CVS.
 And for which GIT c.s. has no alternative.

I disagree.  For one, as Elliot pointed out, it's a royal pain to
figure out which version of a module goes with which version of
another module in the same distro.  Also, multiple modules in the same
distro tend to depend on each other of course, so their functionality
can change in subtle or not-so-subtle ways even if their code doesn't.

I prefer slapping an identical version number on every .pm file in the
distribution.

 -Ken


Re: VERSION and VCS

2008-07-11 Thread Bill Ward
On Wed, Jul 9, 2008 at 8:09 AM, Johan Vromans [EMAIL PROTECTED] wrote:
 The CPAN indexer requires perl modules (and sub-modules) to have a
 non-descending VERSION number. RCS/CVS $Revision$ has been invaluable
 for that.

Not really.  If you use RCS/CVS numbers, then you have several problems:

1. Various files in the distribution have different version numbers,
so it's harder to be sure a user has the right version of each one

2. Commits made during the course of development get version numbers
that do not correspond to a release, so it looks like you have missing
releases

3. Major vs minor releases should increment different parts of the
version number, and doing that at commit time doesn't match the
reality of the release process.

Because of these issues I feel it's best to just update the version
numbers when a release is made.  You might as well do this by hand,
since you need to update the README, CHANGES, etc. files at the same
time.

 Now more and more development is migrating towards VCS that do not
 have such a feature (git, svn, hg, ...).

Probably a good thing, since it forces people to move away from
arbitrary and meaningless release numbers.

 What are the alternatives?

 Manually updating the version numbers of changed modules before a
 release does not sound appealing to me.

I know we like things to be automated, but for reasons I mention
above, I think this is really the best way anyway.

 I ususally get the advice to build a hook script, etc., but I think
 this 'problem' should be dealt with at a non-individual level.

If it's going to be automated it would still require the person doing
the release to make a choice about the version number, update the
CHANGES and README, etc.


Re: VERSION and VCS

2008-07-11 Thread Dana Hudes
Supposed to tag revisions with a version number for a release. So you have 
version n is the set of revision numbers of various components. 
But nobody says you have to put the revision numbers in a version statement. 
You can just keep them in a comment 

Sent from my BlackBerry® smartphone with Nextel Direct Connect

-Original Message-
From: Bill Ward [EMAIL PROTECTED]

Date: Fri, 11 Jul 2008 14:58:06 
To: Johan Vromans[EMAIL PROTECTED]
Cc: module-authors@perl.org
Subject: Re: VERSION and VCS


On Wed, Jul 9, 2008 at 8:09 AM, Johan Vromans [EMAIL PROTECTED] wrote:
 The CPAN indexer requires perl modules (and sub-modules) to have a
 non-descending VERSION number. RCS/CVS $Revision$ has been invaluable
 for that.

Not really.  If you use RCS/CVS numbers, then you have several problems:

1. Various files in the distribution have different version numbers,
so it's harder to be sure a user has the right version of each one

2. Commits made during the course of development get version numbers
that do not correspond to a release, so it looks like you have missing
releases

3. Major vs minor releases should increment different parts of the
version number, and doing that at commit time doesn't match the
reality of the release process.

Because of these issues I feel it's best to just update the version
numbers when a release is made.  You might as well do this by hand,
since you need to update the README, CHANGES, etc. files at the same
time.

 Now more and more development is migrating towards VCS that do not
 have such a feature (git, svn, hg, ...).

Probably a good thing, since it forces people to move away from
arbitrary and meaningless release numbers.

 What are the alternatives?

 Manually updating the version numbers of changed modules before a
 release does not sound appealing to me.

I know we like things to be automated, but for reasons I mention
above, I think this is really the best way anyway.

 I ususally get the advice to build a hook script, etc., but I think
 this 'problem' should be dealt with at a non-individual level.

If it's going to be automated it would still require the person doing
the release to make a choice about the version number, update the
CHANGES and README, etc.


Re: VERSION and VCS

2008-07-11 Thread Elliot Shank

Bill Ward wrote:

Because of these issues I feel it's best to just update the version
numbers when a release is made.  You might as well do this by hand,
since you need to update the README, CHANGES, etc. files at the same
time.


Well, not exactly by hand, but initiated by hand, yes.  
Perl::Version/perl-reversion are great for this.


VERSION and VCS

2008-07-09 Thread Johan Vromans
The CPAN indexer requires perl modules (and sub-modules) to have a
non-descending VERSION number. RCS/CVS $Revision$ has been invaluable
for that.

Now more and more development is migrating towards VCS that do not
have such a feature (git, svn, hg, ...). 

What are the alternatives?

Manually updating the version numbers of changed modules before a
release does not sound appealing to me.

I ususally get the advice to build a hook script, etc., but I think
this 'problem' should be dealt with at a non-individual level.

What are your ideas?

-- Johan


Re: VERSION and VCS

2008-07-09 Thread Eric Wilhelm
# from Johan Vromans
# on Wednesday 09 July 2008 08:09:

Now more and more development is migrating towards VCS that do not
have such a feature (git, svn, hg, ...).

What are the alternatives?

Just use the integer time()?

Manually updating the version numbers of changed modules before a
release does not sound appealing to me.

Use the `perl-reversion` tool?  Is that too manual?

The build tool should probably do this for you, but does it bump the 
version numbers just before rolling the release or several commits 
before?  Right after a release?  When does it commit and tag?  What 
about the Changes file?

I've been thinking immediately after a release is the time to bump the 
version -- but what about when you decide that it is a major version 
bump?  That seems like it would almost always be a 'manual' decision.

Of course, if you're using the $Revision$, that doesn't have 
a 'major/minor' number on svn, so it is basically just a slow-moving 
version of time(), right?

--Eric
-- 
We who cut mere stones must always be envisioning cathedrals.
--Quarry worker's creed
---
http://scratchcomputing.com
---