Re: What to do about L<Foo Bar> and L<"Foo Bar">
[email protected] (Karl Williamson) Tue, 29 May 2018 09:39:37 -0600
| Newsgroups | perl.pod-people |
|---|---|
| Message-ID | <[email protected]> |
On 05/29/2018 04:26 AM, Grant McLean wrote: > On Tue, 2018-05-29 at 15:20 +1000, Ron Savage wrote: >> On 29/05/18 13:49, Karl Williamson wrote: >>> The question is what to do? >>> >>> 1) We could leave things as they always have been, to let sleeping >>> dogs >>> lie.=C2=A0 It's worked for so long that we're not seriously going to >>> stop >>> accepting these. >> This pretends things have not changed when in fact they have, so not >> my preference. I don't understand how things have changed. Please explain how in fact=20 they have. My belief is that things haven't changed for a long time=20 now, and things continue to work, without complaint. There are no=20 tickets against Pod::Simple for any cases of it using its heuristics in=20 these situations and getting things wrong. >> >>> >>> 2) Raise the warnings, either on both cases or just the deprecated >> Raise warnings on deprecated structures, so uses can fix problems, is >> my choice here. >=20 > I agree that this *sounds* like the sensible thing to do, but the > reality is that it will causes tests to fail. =C2=A0The Test::Pod modul= e is > used extensively throughout CPAN and it's function is to take any > errors or warnings in the file under test and turn them into test > failures. =C2=A0Distributions which passed their tests when uploaded wi= ll > suddenly start to fail tests on install. >=20 > A few years back I added a warning about non-ASCII characters in POD > without an =3Dencoding declaration - the fallout continues to this day. > I'm still smarting from being accused of "breaking half of CPAN" :-) Ah, so you're the one! :-) >=20 > I'm not saying don't chose this option, but it's likely some pain will > ensue. Core perl development has moved to more of a position that we don't add=20 new warnings unless there's good evidence that the benefit greatly=20 outweighs the cost of breaking things. I don't see that here, which is=20 why I brought up the topic, so it could be discussed. Nor do we deprecate and remove something unless it is causing us hassles=20 extending and maintaining the core, or perhaps causing significant user=20 confusion or problems. The reluctance to make these kinds of changes is because of past bitter=20 experiences, like Grant's. >=20 > A number of people wisely pointed out that Test::Pod should only be > used in author tests and should not be run at install time. =C2=A0Who k= nows, > perhaps enough people have since taken that advice and it won't be a > problem. =C2=A0If not, regularly breaking things in this way is really = the > only way to get that message out. =C2=A0Perhaps a doc patch to POD::Tes= t > might help. >=20 >>> 3) Don't raise warnings, but change Pod::Checker to do so, under >>> the >>> theory that you won't be using that unless you want to know the >>> iffy >>> things.=C2=A0 Maybe make the deprecated come out always, and the >>> tolerated >>> only for level 2 warnings. >> This imposes a burden on users. Tasks: (a) Change to Pod::Checker, >> to >> find problems; (b) Fix problems. Not my preference since it's >> simpler >> for the end user to find the same problems under (2). >=20 > I tend to agree. =C2=A0If non-compliant POD is a problem then I'm not s= ure > that option 3 is going to solve that problem. I started this work, and discovered there was a lot of non-compliant=20 POD, even in the perl core. And since I never heard of problems with=20 this non-compliant POD, is there really a problem. So my question again=20 comes down to "Is non-compliant POD really a problem?" >=20 > Regards > Grant >=20