Re: Frozen Bubble 2.2.1

2010-08-05 Thread David Golden
On Thu, Aug 5, 2010 at 3:20 AM, Guillaume Cottenceau gcott...@gmail.com wrote:
 Kartik and friends rewrote SDL_perl (a Perl module with SDL bindings)
 using a different API. Then they ported my Perl-based game to using
 that new Perl module, and to be CPAN-friendly. My game previous
 versions were 2.0.0, 2.1.0, 2.2.0, so now I would like it to be
 versioned 2.2.1. But prior to that, I would like to release a beta
 version because I suspect a couple of corner cases to contain bugs. So
 we're looking for a way to version it 2.2.1-beta1 or something
 similar, in order for it to NOT be included in stable distributions or
 replace 2.2.0 for regular users. Then we'll release 2.2.1 in a couple
 of weeks when no more important bugs are known.

 Thanks for your patience :)

Let me restate what I think the situation is:

* Frozen Bubble is now (or will be) a CPAN distribution rather than a
standalone program distributed independently

* You would like the CPAN version to indicate a beta status so that
OS packagers don't blindly replace it for users

I don't know exactly what criteria OS packagers use for deciding what
is or isn't beta, but presumably the tarball name is significant.
They may or may not be Perl experts familiar with CPAN conventions.

I would suggest the following:

* To be consistent with your prior versioning (dotted-decimal),
require a minimum version of Perl that understands v1.2.3 numbering.
That means 5.6.0 at a minimum, 5.8.1 is better, 5.10.0 is best but you
might not want to impose that requimrent on end-users.

* For the *modules* inside the distribution, follow CPAN conventions
and include an underscore in the version number within the modules if
they are beta  e.g.

our $VERSION = v2.2_1

Your final release should bump the last number and use a decimal

our $VERSION = v2.2.2

(For the sake of simplicity and compatibility with Perl  5.10.0, I
suggest that you NOT use the version.pm module.)

* For the *distribution* (i.e. the tarball) you have more choices.
For Perl people it would be sufficient to have this:

Frozen-Bubble-v2.2_1.tar.gz

But for people unfamiliar with CPAN conventions, I suggest one of the following:

a) Frozen-Bubble-beta-v2.2_1.tar.gz
b) Frozen-Bubble-v2.2_1-TRIAL.tar.gz
c) Frozen-Bubble-v2.2.1-TRIAL.tar.gz

In (a), you put beta in the title of the distribution, but leave
the underscore in the version number. This tells PAUSE (the CPAN
indexer) not to index this distribution, which is what you want for a
beta.  You might confuse some parts of the ecosystem like CPAN
Testers, which will think that Frozen-Bubble is a different
distribution than Frozen-Bubble-beta, but that's a fairly small
price to pay.

The (b) and (c) forms are not very common and take advantage of a
little-known feature of PAUSE.  Appending -TRIAL to the version
number is another way of telling PAUSE not to index the distribution.
If you do that, you have the choice of (b) or (c) as the underscore is
no longer significant in the tarball name.  Hopefully, that is also
enough to warn off packagers.

* If you accept -TRIAL as the answer that gives you a tarball name
that packagers will know not to distribute and are consistent in
always using it for your betas, then you could even stop using an
underscore in the $VERSION variable and just use a period.

our $VERSION = v2.2.1;

* Just as a reminder, you still always want to bump the version
numbers of your modules as you go from beta to final.  CPAN
conventions don't really support the concept of 2.2.1-beta followed
by 2.2.1 (final).  Numbers are expected to be monotonically
increasing.  You might want to adopt your own convention of odd
numbers being development/beta and even numbers being releases.

That's probably far more complex that you ever imagined, but I hope it
gives you some useful direction.  As I said in my article, it's really
too bad that version numbers aren't boring.

Thank you for writing such a cool game in Perl!

 PS: is an XY problem bound to a specific gender? do you think giving
 the problem to an XX person would solve it faster? :)

The XY problem refers to wanting to do X, thinking Y is the
right approach and asking how to do Y, but X is vital context and
people might have better solutions than just Y.  c.f.
http://www.perlmonks.org/index.pl?node_id=542341

-- David


Re: Frozen Bubble 2.2.1

2010-08-05 Thread Kartik Thakore



Kartik Thakore

On 2010-08-05, at 7:07 AM, David Golden xda...@gmail.com wrote:

On Thu, Aug 5, 2010 at 3:20 AM, Guillaume Cottenceau gcott...@gmail.com 
 wrote:

Kartik and friends rewrote SDL_perl (a Perl module with SDL bindings)
using a different API. Then they ported my Perl-based game to using
that new Perl module, and to be CPAN-friendly. My game previous
versions were 2.0.0, 2.1.0, 2.2.0, so now I would like it to be
versioned 2.2.1. But prior to that, I would like to release a beta
version because I suspect a couple of corner cases to contain bugs.  
So

we're looking for a way to version it 2.2.1-beta1 or something
similar, in order for it to NOT be included in stable distributions  
or

replace 2.2.0 for regular users. Then we'll release 2.2.1 in a couple
of weeks when no more important bugs are known.

Thanks for your patience :)


Let me restate what I think the situation is:

* Frozen Bubble is now (or will be) a CPAN distribution rather than a
standalone program distributed independently


Yes.

* You would like the CPAN version to indicate a beta status so that
OS packagers don't blindly replace it for users

No, only the one on the main site. CPAN already has a differing  
versions.


2.111 on CPAN is 2.1.1beta1 for gc's os releases.

The problem we are having is we cant force a non numerical VERSION in  
M::B for the non CPAN release.


Our code uses the VERSION to compile a fb-server with output saying  
what version it is. This is why we need it in VERSION.



I don't know exactly what criteria OS packagers use for deciding what
is or isn't beta, but presumably the tarball name is significant.
They may or may not be Perl experts familiar with CPAN conventions.

I would suggest the following:

* To be consistent with your prior versioning (dotted-decimal),
require a minimum version of Perl that understands v1.2.3 numbering.
That means 5.6.0 at a minimum, 5.8.1 is better, 5.10.0 is best but you
might not want to impose that requimrent on end-users.

* For the *modules* inside the distribution, follow CPAN conventions
and include an underscore in the version number within the modules if
they are beta  e.g.

   our $VERSION = v2.2_1

Your final release should bump the last number and use a decimal

   our $VERSION = v2.2.2

(For the sake of simplicity and compatibility with Perl  5.10.0, I
suggest that you NOT use the version.pm module.)

* For the *distribution* (i.e. the tarball) you have more choices.
For Perl people it would be sufficient to have this:

   Frozen-Bubble-v2.2_1.tar.gz

But for people unfamiliar with CPAN conventions, I suggest one of  
the following:


   a) Frozen-Bubble-beta-v2.2_1.tar.gz
   b) Frozen-Bubble-v2.2_1-TRIAL.tar.gz
   c) Frozen-Bubble-v2.2.1-TRIAL.tar.gz


This makes sense too.


In (a), you put beta in the title of the distribution, but leave
the underscore in the version number. This tells PAUSE (the CPAN
indexer) not to index this distribution, which is what you want for a
beta.  You might confuse some parts of the ecosystem like CPAN
Testers, which will think that Frozen-Bubble is a different
distribution than Frozen-Bubble-beta, but that's a fairly small
price to pay.


thia dist_name = in M::B correct?

The (b) and (c) forms are not very common and take advantage of a
little-known feature of PAUSE.  Appending -TRIAL to the version
number is another way of telling PAUSE not to index the distribution.
If you do that, you have the choice of (b) or (c) as the underscore is
no longer significant in the tarball name.  Hopefully, that is also
enough to warn off packagers.

* If you accept -TRIAL as the answer that gives you a tarball name
that packagers will know not to distribute and are consistent in
always using it for your betas, then you could even stop using an
underscore in the $VERSION variable and just use a period.

   our $VERSION = v2.2.1;

* Just as a reminder, you still always want to bump the version
numbers of your modules as you go from beta to final.  CPAN
conventions don't really support the concept of 2.2.1-beta followed
by 2.2.1 (final).  Numbers are expected to be monotonically
increasing.  You might want to adopt your own convention of odd
numbers being development/beta and even numbers being releases.

That's probably far more complex that you ever imagined, but I hope it
gives you some useful direction.  As I said in my article, it's really
too bad that version numbers aren't boring.

Thank you for writing such a cool game in Perl!


PS: is an XY problem bound to a specific gender? do you think giving
the problem to an XX person would solve it faster? :)


The XY problem refers to wanting to do X, thinking Y is the
right approach and asking how to do Y, but X is vital context and
people might have better solutions than just Y.  c.f.
http://www.perlmonks.org/index.pl?node_id=542341


Thank you so much for lots of cool things in Perl :)


-- David


Kartik


Re: Roles on the CPAN

2010-08-05 Thread David Nicol
package that;
use Moose;
with 'fries';

# do we want this?


Re: Frozen Bubble 2.2.1

2010-08-05 Thread David Golden
On Thu, Aug 5, 2010 at 7:45 AM, Kartik Thakore thakore.kar...@gmail.com wrote:
 thia dist_name = in M::B correct?

Yes.

Though maybe I should just implement a feature to add '-TRIAL', since
I'll need that anyway for CPAN Meta 2 support.  (Dist::Zilla already
supports -TRIAL).

-- David


Re: -TRIAL dists (was: Frozen Bubble 2.2.1)

2010-08-05 Thread Eric Wilhelm
# from David Golden
# on Thursday 05 August 2010 08:55:

Though maybe I should just implement a feature to add '-TRIAL', since
I'll need that anyway for CPAN Meta 2 support.  (Dist::Zilla already
supports -TRIAL).

Does search.cpan.org understand -TRIAL now?  Last I looked, it was 
properly handled (i.e. not indexed) by PAUSE, but would leak through in 
a few other places where it appears that an assumption was being made 
without checking the index.

It also looked like '-TRIAL' was intended to be used as a pre-release 
without bumping any version numbers, so you could have -TRIAL1,
-TRIAL2, etc all with the version e.g. 5.6.2.  Am I understanding that 
right?

--Eric
-- 
It works better if you plug it in!
--Sattinger's Law
---
http://scratchcomputing.com
---


Re: -TRIAL dists (was: Frozen Bubble 2.2.1)

2010-08-05 Thread David Golden
On Thu, Aug 5, 2010 at 2:46 PM, Eric Wilhelm enoba...@gmail.com wrote:
 Does search.cpan.org understand -TRIAL now?  Last I looked, it was
 properly handled (i.e. not indexed) by PAUSE, but would leak through in
 a few other places where it appears that an assumption was being made
 without checking the index.

CPAN::DistnameInfo added support for '-TRIAL' in 0.10 back in March of
this year and I'm pretty sure that's what Graham is using for
search.cpan.org.

It's certainly possible that it's leaking through elsewhere.  rjbs has
been doing -TRIAL releases of Dist::Zilla and may have a better sense
of where any remaining issues are.

 It also looked like '-TRIAL' was intended to be used as a pre-release
 without bumping any version numbers, so you could have -TRIAL1,
 -TRIAL2, etc all with the version e.g. 5.6.2.  Am I understanding that
 right?

I believe that was specific to perl distributions, not CPAN
distributions, but it may work for those as well.

-- David


Re: Frozen Bubble 2.2.1

2010-08-05 Thread Guillaume Cottenceau
On Thu, Aug 5, 2010 at 2:02 AM, David Golden xda...@gmail.com wrote:
 On Wed, Aug 4, 2010 at 4:42 PM, Kartik Thakore thakore.kar...@gmail.com 
 wrote:
 How do we make this work?

 I get a error doing this.

 I think you need to be a lot more specific about this.  I'm
 beginning to suspect an XY problem.

 Walk us through -- step by step -- what you're trying to accomplish,
 the steps you're taking, and the errors that you're seeing.

Kartik and friends rewrote SDL_perl (a Perl module with SDL bindings)
using a different API. Then they ported my Perl-based game to using
that new Perl module, and to be CPAN-friendly. My game previous
versions were 2.0.0, 2.1.0, 2.2.0, so now I would like it to be
versioned 2.2.1. But prior to that, I would like to release a beta
version because I suspect a couple of corner cases to contain bugs. So
we're looking for a way to version it 2.2.1-beta1 or something
similar, in order for it to NOT be included in stable distributions or
replace 2.2.0 for regular users. Then we'll release 2.2.1 in a couple
of weeks when no more important bugs are known.

Thanks for your patience :)

PS: is an XY problem bound to a specific gender? do you think giving
the problem to an XX person would solve it faster? :)

-- 
Guillaume Cottenceau - http://zarb.org/~gc/


Re: -TRIAL dists (was: Frozen Bubble 2.2.1)

2010-08-05 Thread Kartik Thakore

So how can we force the VERSION for  the non CPAN release?

Kartik Thakore

On 2010-08-05, at 3:24 PM, David Golden xda...@gmail.com wrote:

On Thu, Aug 5, 2010 at 2:46 PM, Eric Wilhelm enoba...@gmail.com  
wrote:

Does search.cpan.org understand -TRIAL now?  Last I looked, it was
properly handled (i.e. not indexed) by PAUSE, but would leak  
through in

a few other places where it appears that an assumption was being made
without checking the index.


CPAN::DistnameInfo added support for '-TRIAL' in 0.10 back in March of
this year and I'm pretty sure that's what Graham is using for
search.cpan.org.

It's certainly possible that it's leaking through elsewhere.  rjbs has
been doing -TRIAL releases of Dist::Zilla and may have a better sense
of where any remaining issues are.


It also looked like '-TRIAL' was intended to be used as a pre-release
without bumping any version numbers, so you could have -TRIAL1,
-TRIAL2, etc all with the version e.g. 5.6.2.  Am I understanding  
that

right?


I believe that was specific to perl distributions, not CPAN
distributions, but it may work for those as well.

-- David


Re: Frozen Bubble 2.2.1

2010-08-05 Thread David Nicol
It appears that your use case -- you want to publish the beta version
on CPAN without having the non-beta-testers get it too -- is not
supported by xdg's essay.

I see two possible approaches:

1: leapfrogging. Release the beta versions with version numbers that
are less than the latest release version. This approach might require
some planning, possibly including bumping the version number on the
current stable to make space. The beta testers will have to jump
through something of a hoop, depending on their tools and skill with
them, so you'll have to support them in that.

2: release beta versions in an entirely separate name-space, so
instead of having the beta after Awesome::Application 3.003 having
confusing version number just call it Awesome::Application_betatest
3.004 and let them coexist. Some research may be required to figure
out the best way to do that -- you don't want CPAN.pm pulling in the
Betatest version of something unreleased because it includes something
that it thinks is a proper upgrade, for instance. The additional
end-user control over what code is participating in the testing, for
a module, with less risk, could be good, too, for a module.


Re: Frozen Bubble 2.2.1

2010-08-05 Thread Kartik Thakore



Kartik Thakore

On 2010-08-05, at 5:11 PM, David Nicol davidni...@gmail.com wrote:


It appears that your use case -- you want to publish the beta version
on CPAN without having the non-beta-testers get it too -- is not
supported by xdg's essay.


I dont know where you are getting this from.

Suppose I have a Module::Build module that I never ever want to put on  
CPAN. How do I force the our $VERSION to be non numeric.





I see two possible approaches:

1: leapfrogging. Release the beta versions with version numbers that
are less than the latest release version. This approach might require
some planning, possibly including bumping the version number on the
current stable to make space. The beta testers will have to jump
through something of a hoop, depending on their tools and skill with
them, so you'll have to support them in that.


No. Nothing to do with CPAN. 'non-CPAN'.



2: release beta versions in an entirely separate name-space, so
instead of having the beta after Awesome::Application 3.003 having
confusing version number just call it Awesome::Application_betatest
3.004 and let them coexist. Some research may be required to figure
out the best way to do that -- you don't want CPAN.pm pulling in the
Betatest version of something unreleased because it includes something
that it thinks is a proper upgrade, for instance. The additional
end-user control over what code is participating in the testing, for
a module, with less risk, could be good, too, for a module.


'non-CPAN'

regards,
Kartik


Re: Frozen Bubble 2.2.1

2010-08-05 Thread Kartik Thakore
With David's (xdg) help we have come up with a simple solution (which should
have been more obvious).

http://github.com/kthakore/frozen-bubble/blob/e5fe8243e67ca552c02099db8f5a274c6171e1b1/lib/Games/FrozenBubble.pm

Please give that a run. The 'display' version is RELEASE_VERSION.

Regards,
Kartik