Skip Menu |
 

This queue is for tickets about the Role-Basic CPAN distribution.

Report information
The Basics
Id: 64293
Status: deleted
Priority: 0/
Queue: Role-Basic

People
Owner: Nobody in particular
Requestors: mst [...] shadowcat.co.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: What does this gain over Role::Tiny ?
Date: Tue, 28 Dec 2010 23:45:00 +0000
To: bugs-Role-Basic [...] rt.cpan.org
From: Matt S Trout <mst [...] shadowcat.co.uk>
Download (untitled) / with headers
text/plain 552b
If your only objection is that Role::Tiny is part of the Moo dist I'm happy to extract it. Otherwise, this module seems to be a subset of Role::Tiny. Other than "I didn't extract Role::Tiny from Moo yet", what point am I missing? -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.
Subject: Re: [rt.cpan.org #64293] What does this gain over Role::Tiny ?
Date: Thu, 30 Dec 2010 01:03:00 +0000
To: Curtis 'Ovid' Poe via RT <bug-Role-Basic [...] rt.cpan.org>
From: Matt S Trout <mst [...] shadowcat.co.uk>
On Wed, Dec 29, 2010 at 01:36:25AM -0500, Curtis 'Ovid' Poe via RT wrote: Show quoted text
So you want a "no method modifiers" version and it to be external to Moo and to use your composition work. I agree with all of the above. Patches to Role::Tiny very welcome. What's the point of Role::Basic except confusion? I agree with all of your aims. I just released my software as 0.001. There is no reason at all that I can see to duplicate my work. Please co-operate. I'll do the heavy lifting. Just write me the tests and describe the API you want. Having both is a waste of time for both of us. Please let's just do this properly? -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.
Download (untitled) / with headers
text/plain 1.6k
On Wed Dec 29 20:03:11 2010, mst@shadowcat.co.uk wrote: Show quoted text
> On Wed, Dec 29, 2010 at 01:36:25AM -0500, Curtis 'Ovid' Poe via RT > wrote: > want-roles.html > > So you want a "no method modifiers" version and it to be external to > Moo and to use your composition work. > > I agree with all of the above. > > Patches to Role::Tiny very welcome. > > What's the point of Role::Basic except confusion?
I had only released a separate module simply because it looked like your aims for Role::Tiny were different from Role::Basic. If they can converge, I'm OK with killing my module. Show quoted text
> I agree with all of your aims. I just released my software as 0.001. > > There is no reason at all that I can see to duplicate my work. > > Please co-operate. I'll do the heavy lifting. Just write me the tests > and describe the API you want. > > Having both is a waste of time for both of us. > > Please let's just do this properly?
Currently your code allows method modifiers and multiple 'with' statements, both of which I was trying to avoid. It sounds like you'd be OK to remove that from your code as it's only 0.001. If you feel comfortable removing that, I'd be quite happy to let you use the Role::Basic code and its tests for Role::Tiny since it's already written. Maybe nicking a few tests from Moose would be OK. From that, I could deprecate Role::Basic and point people back to your Role::Tiny. If that route is not comfortable for you, it might take me a bit of time to write those tests as I'm juggling several other things right now. Cheers, Ovid
Subject: Re: [rt.cpan.org #64293] What does this gain over Role::Tiny ?
Date: Thu, 30 Dec 2010 20:59:01 +0000
To: Curtis 'Ovid' Poe via RT <bug-Role-Basic [...] rt.cpan.org>
From: Matt S Trout <mst [...] shadowcat.co.uk>
Download (untitled) / with headers
text/plain 1.9k
On Thu, Dec 30, 2010 at 01:57:16AM -0500, Curtis 'Ovid' Poe via RT wrote: Show quoted text
> I had only released a separate module simply because it looked like your aims for Role::Tiny > were different from Role::Basic. If they can converge, I'm OK with killing my module.
This is why you should talk to people first. Try it, it's fun! Show quoted text
> Currently your code allows method modifiers and multiple 'with' statements, both of which I > was trying to avoid. It sounds like you'd be OK to remove that from your code as it's only > 0.001. If you feel comfortable removing that, I'd be quite happy to let you use the Role::Basic > code and its tests for Role::Tiny since it's already written. Maybe nicking a few tests from > Moose would be OK. From that, I could deprecate Role::Basic and point people back to your > Role::Tiny.
I've no problem with lifting the tests and your composition code. I'm happy enough to move allowing multiple with statements up into Moo/Moo::Role - and perhaps having a Role::Tiny::MethodModifiers to contain the Class::Method::Modifiers code? The thing is - given multiple with statements, i.e. applying roles sequentially rather than by combining them - method modifiers are perfectly safe. And if we make people explicitly ask for -excludes, I don't see how repeated 'with' statements don't effectively get conflict detection? Basically, I'm entirely in favour of strict-by-default but I don't want to be any more strict than actually necessary to provide safety. Additionally, doesn't -excludes entirely exclude the method? Don't we actually want a form that says "I am going to provide my own version so convert it into a requires" ? -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.
Download (untitled) / with headers
text/plain 3.1k
Replying out of order. On Thu Dec 30 15:59:12 2010, mst@shadowcat.co.uk wrote: Show quoted text
> Additionally, doesn't -excludes entirely exclude the method? Don't we > actually want a form that says "I am going to provide my own version > so convert it into a requires" ?
Yes, we do want this. However, I had previously suggested this for Moose and it was rejected (I think it was due to backwards-compatibility, but I can't find the link). As of Moose 1.21, this behavior is still not supported. Thus, Role::Basic does not provide this behavior because this would hurt the upgrade path for Moose (it should be noted that this should also apply to aliases). Show quoted text
> The thing is - given multiple with statements, i.e. applying roles > sequentially rather than by combining them - method modifiers are > perfectly safe. And if we make people explicitly ask for -excludes, I don't see > how repeated 'with' statements don't effectively get conflict detection? > > Basically, I'm entirely in favour of strict-by-default but I don't > want to be any more strict than actually necessary to provide safety.
Role::Basic, aside from being Moose-compatible, is designed not just to be safe, but also to be *simple*. Already this is beginning to sound like the sort of discussion I was specifically trying to avoid. Role::Basic is designed to be simple. If people want more, they can upgrade. If they want *better*, there are other modules out there. In the meantime, I've noticed something rather surprising. Almost immediately after announcing Role::Basic, I've had private messages, Twitter comments and Facebook messages from people telling me they want to use Role::Basic. Devs at my work have come up to talk to me about it. There's already a CPAN module which requires it as a dependency (Brickyard). Aside from HOP, Role::Basic already has more watchers on Github than any of my other repositories. In short, whether people just want roles without Moose or strict roles, I can't say, but I'm rather surprised at the rather quick uptake of this module. At this point, without a rather compelling argument, I'm less inclined to pull the rug out from other people. I'm also STRONGLY disinclined to change the behavior of Role::Basic, though I'd consider adding hooks to make it extensible (I don't mind people shooting themselves in the foot, but they have to load the gun themselves). I don't want to add those hooks if it involves a long, drawn-out discussion though. I'd rather just tell people to upgrade if they desperately need more. Show quoted text
> This is why you should talk to people first. Try it, it's fun!
Here's the ticket in RT which was not responded to: https://rt.cpan.org/Ticket/Display.html?id=64178 Here's me asking you on Twitter: http://twitter.com/#!/OvidPerl/status/17892960628641792 I know this isn't the same thing as email, but by the time I received a Twitter reply from Frew, I realized that I just couldn't be bothered. You and I have had different viewpoints on how things should work often enough that I simply didn't want to deal with that. I figured I'd go my way, you'd go yours. If you think Role::Basic causes confusion, I'm sorry to hear that, but frankly, I don't see what the fuss is about.
No more comments forthcoming, so I'm closing this.
Subject: Re: [rt.cpan.org #64293] What does this gain over Role::Tiny ?
Date: Fri, 7 Jan 2011 12:13:02 +0000
To: Curtis 'Ovid' Poe via RT <bug-Role-Basic [...] rt.cpan.org>
From: Matt S Trout <mst [...] shadowcat.co.uk>
On Fri, Jan 07, 2011 at 04:29:20AM -0500, Curtis 'Ovid' Poe via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=64293 > > > No more comments forthcoming, so I'm closing this.
I was trying to engage in a conversation about how to get the simplicity and strictness, and how to be able to extend upwards while maintaining the strictness by default. And since, unlike you, I can manage to hold a conversation with the Moose dev team without making a complete fool of myself, there's a reasonable chance if we can come up with something better than -excludes then that can go in to Moose as well. However ... Show quoted text
> I realized that I just couldn't be bothered.
I apologise for valuing your opinion. -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.
Deleting this ticket so that you stop reopening the thing by replying.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.