Open karenetheridge opened 11 years ago
To clarify, here are some cases to consider:
Which of these should be detected as problematic? And which are easy to detect as problematic.
I'd handle all these cases the same way: PAUSE could simply warn that one or more contained modules in the new upload have entered the index at the same $VERSION as was indexed previously. The user should be able to apply his own heuristics for his version numbering scheme and distname to quickly determine whether this was a mistake of some kind -- this obviates having to compare .pm content or uploaded dist names.
On Tue, May 28, 2013 at 14:19:35 -0700 , Karen Etheridge wrote:
I'd handle all these cases the same way: PAUSE could simply warn that one or more contained modules in the new upload have entered the index at the same $VERSION as was indexed previously. The should be able to apply his own heuristics for his version numbering scheme and distname to quickly determine whether this was a mistake of some kind -- this obviates having to compare .pm content or uploaded dist names.
+1
The should
"The user should" -- I accidentally a word :)
I'd be careful about that -- many people do that intentionally, I think. E.g Foo-Bar-1.23 contains Foo::Bar at 1.23 and Foo::Baz at 1.23. Bar.pm gets modified and bumped to 1.24, but Baz stays at 1.23. Then Foo-Bar-1.24 gets shipped with Foo::Bar 1.24 and Foo::Baz 1.23.
This is one of the ways that people who manage $VERSION manually do it -- they only bump $VERSION in some files. A "warning" is likely to either piss people off or get ignored.
I'm not opposed to adding some information. ("Foo::Baz 1.23 entered the index. Previous was 1.23") But I wonder whether you would have even noticed. (I tend to ignore the text of those emails.)
I think better heuristics would make more sense if you really were going to do this. E.g. capturing an MD5 of the .pm files and warning if the MD5 changes but the version stays the same.
On Tue, May 28, 2013 at 03:44:55PM -0700, David Golden wrote:
I'd be careful about that -- many people do that intentionally, I think. E.g Foo-Bar-1.23 contains Foo::Bar at 1.23 and Foo::Baz at 1.23. Bar.pm gets modified and bumped to 1.24, but Baz stays at 1.23. Then Foo-Bar-1.24 gets shipped with Foo::Bar 1.24 and Foo::Baz 1.23.
Agreed. I have no idea how many authors or dists use this process though -- I wonder if anyone has run any stats on it? I suspect it's less common than only bumping the version of the "main" module and leaving everything else unversioned.
This is one of the ways that people who manage $VERSION manually do it -- they only bump $VERSION in some files. A "warning" is likely to either piss people off or get ignored.
I'm not opposed to adding some information. ("Foo::Baz 1.23 entered the index. Previous was 1.23") But I wonder whether you would have even noticed. (I tend to ignore the text of those emails.)
I certainly would - I check the content of all my PAUSE receipts, as it's not uncommon for me to have been "gifted" with comaint on one module in a dist but the others were missed, so I have to keep an eye out for indexing errors. But again, I have no idea how normal this is :)
I think better heuristics would make more sense if you really were going to do this. E.g. capturing an MD5 of the .pm files and warning if the MD5 changes but the version stays the same.
Fair enough, and that's a very easy mechanism to implement.
context below.
In summary, user error between two maintainers of a dist resulted in two distributions being uploaded with the same version. While this is allowed by current PAUSE rules, and it is not on the table for this to change immediately, I think it would be useful to the user if PAUSE identified potential erroneous uploads with an informational message about repeated uploads with the same version number. This is sometimes intentional, but often not, so providing this information lets the user correct the situation if there indeed was an error.
original problem report: http://www.nntp.perl.org/group/perl.modules/2013/05/msg86181.html
@xdg @rjbs @apeiron