Skip to content

Don't encourage badly formed dists in the style of common::sense #295

Open
@oalders

Description

@oalders
[15:42:46]  <@mst>   what does Parse::PMFile achieve that Module::Metadata doesn't?
[15:42:54]  <@mst>   other than "supports the broken hack that common::sense uses"
[15:43:39]  <@oalders>   :)
[15:43:56]  <@rwstauner>     that's it
[15:44:08]  <@oalders>   i'm pretty sure that's exactly why we use Parse::PMFile
[15:44:18]  <@rwstauner>     and that's all we use it for... if /\.pm\.PL/
[15:45:28]  <@rwstauner>     there's other data metacpan extracts that D::M doesn't, but we could certainly add stuff to it
[15:46:05]  <@oalders>   https://github.com/CPAN-API/metacpan-web/issues/625
[15:46:06]  <dipsy>  [ no common::sense on metacpan ? · Issue #625 · CPAN-API/metacpan-web · GitHub ]
[15:47:51]  <@mst>   right. personally, I prefer the approach of "ignore it, it's broken"
[15:49:04]  <@rwstauner>     we did that for a long time
[15:49:11]  <@oalders>   that was fine before cpanm started using the api
[15:50:33]  <@mst>   yeah, so at that point you file a bug against common/sense.pm telling it to use 'provides' or something else that actually works properly
[15:50:51]  <@mst>   intentionally breaking metacpan to work around a stupid dist doesn't seem like a feature to me
[15:51:25]  <@mst>   so, you now owe me a patch to Module::Metadata to allow it to *optionally* allow that
[15:51:30]  <@mst>   and then you can remove Parse::PMFile
[15:51:39]  <@oalders>   can you actually file a bug against common::sense? :)
[15:51:51]  <@mst>   given you already broke metacpan, there's no point trying to keep Module::Metadata intact anymore
[15:51:59]  <@mst>   since now it's just confusing, because things don't consistently fail
[15:52:45]  <@oalders>   would be something worth discussing at the qa hackathon
[15:52:58]  <ether>  schmorp would ignore the ticket anyway, and just make the submitter cry, so I wouldn't bother
[15:53:18]  <ether>  oalders: you're coming to Lyon right?
[15:53:35]  <@oalders>   ether: i am. just have to make my travel arrangements
[15:53:46]  <ether>  cool! I need to buy tickets this week as well
[15:53:48]  <@mst>   ether: the whole point of not making Module::Metadata accept the hack was to put social/technical pressure on him to not ignore it
[15:54:04]  <@mst>   since apparently the metacpan team have decided to side with schmorp, it's basically academic now
[15:54:27]  <ether>  I'm not convinced they have knowingly done so
[15:54:36]  <@oalders>   well, i wouldn't put it quite that way and i'd be willing to revert that patch
[15:54:52]  <@oalders>   but it fixed a real problem at the time
[15:55:03]  <@mst>   no, it worked around a problem in common::sense
[15:55:22]  <@mst>   if everybody works around the problems schmorp causes, what incentive is there for him to fix anything?
[15:56:05]  <@oalders>   it's a valid point.  so, if there's a united effort to get this fixed, we can bring MetaCPAN in line with that
[15:56:41]  <@oalders>   why does common::sense even behave this way?
[15:57:02]  <@mst>   because he generates the file per-perl-version as amicro-optimisation to avoid loading strict.pm and warnings.pm
[15:57:14]  <@mst>   and so the dist code only exists in __DATA__ of the .PL script
[15:57:59]  <@mst>   this is why Cpanel::JSON::XS doesn't use common::sense
[15:58:20]  <@mst>   hence why my JSON::MaybeXS uses that instead of JSON::XS
[15:58:26]  <ether>  ++
[15:58:26]  <dipsy>  Thanks!
[15:58:43]  <alnewkirk>  to whom it may concern ... I really dig the metacpan enhancements
[15:58:43]  <@rwstauner>     :-)
[15:58:54]  <@oalders>   alnewkirk: thanks!
[15:59:03]  <ether>  I have a dist that ships a module in a different filename than what it eventually gets installed as, but it's a nasty hack (and I set 'provides' data properly to indicate this)
[15:59:05]  <@rwstauner>     sadly, that leaves AnyEvent, which is also something i wish less dists depended on
[15:59:16]  <@mst>   AnyEvent doesn't depend on common::sense
[15:59:19]  <@mst>   it inlines its own version
[15:59:22]  <@rwstauner>     it doesn't?
[15:59:23]  <@rwstauner>     oh
[15:59:27]  <alnewkirk>  oalders: thank you
[15:59:34]  <@mst>   hence why I was confident we didn't need to allow for common::sense
[15:59:44]  <@mst>   hence why last time we discussed this we agreed to not break metacpan
[15:59:45]  <@rwstauner>     hmm
[15:59:56]  <@mst>   apparently later somebody broke it anyway without talking to anybody
[16:00:05]  <@mst>   which is why I might be being sliughtly cranky here
[16:00:13]  <@mst>   because I spent about an hour discussing this and the impact last time
[16:00:30]  <@oalders>   alnewkirk: big team effort :) @mo spent a lot of time on it
[16:01:25]  <@oalders>   it would help if we documented stuff we all agree on
[16:01:34]  <@oalders>   it's essentially mostly IRC logs
[16:01:35]  <alnewkirk>  ... in opensource you rarely get a thanks let alone acknowledgement so I figured I'd buck the system and thanks for all the hard works guys
[16:02:02]  <@oalders>   yeah, it's mostly "please fix this broken thing"
[16:02:16]  <@mst>   notice that nobody except miyagawa spoke in favour of the nasty hack
[16:02:30]  <@mst>   and he isn't competent to have an opinion on toolchain code
[16:02:50]  <@oalders>   well, tokuhirom was asking for a workaround as well
[16:02:52]  <@mst>   cpanm only works at all because I spent days guiding him through unfucking it, and carton only works at all because doy did the same thing
[16:03:03]  <@mst>   right, to which the response is "file a bug"
[16:03:26]  <@mst>   also, I was planning to work on a patch to fix PAUSE
[16:03:50]  <ether>  it would be great to get PAUSE finally sorted
[16:03:57]  <ether>  there's that big patch from rjbs last year that hasn't gone in yet
[16:04:00]  <@mst>   a hardcoded exception for common::sense would be reasonable
[16:04:07]  <@mst>   much more reasonable than the ugly shit you've done instead
[16:04:18]  <@mst>   now you're encouraging people to make more similarly broken dists
[16:05:04]  <@oalders>   ok, so we can agree that it's ugly. what's the best thing to do moving forward?
[16:05:36]  <@mst>   back out the fix, add a hard-coded exception for common-sense, add a warning on the page that it's only indexed via a hard-coded hack to encourage people to complain about it
[16:05:55]  <@mst>   which is what I said was the fall back plan last time we discussed this
[16:06:36]  <@mst>   ether: right, but sorting PAUSE requires the ability to show that the change is correct
[16:07:00]  <@mst>   which requires other things to consistently do it the right way

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions