finanalyst/raku-pod-render

Not compatible with Rakudo 2023.04 and older

Opened this issue · 6 comments

With 466dad5, the code references Pod::Block::Input which is a type only introduced with rakudo/rakudo@6f482ca, hence the dist installation will fail with older versions of Rakudo.

Actually, there should be a strategy to prevent situations like this. I don't know whether Rakudo shouldn't create situations like this, the dist should be more conservative, or the dist should simply say the appropriate compatibility level.

@2colours Does Raku::Pod::Render actually fail on older versions of Rakudo? Liz told me that Roast contains tests of PBOutput and PBInput, but they were always mapped onto PBCode.

No one uses PBInput or Output, so I can disable them for Raku::Pod::Render.

@finanalyst yes, it does. Somebody reported this on IRC with 2023.04 and I can confirm. The type constraint used is invalid.

The direct error is that the signature of handle candidates refer types that didn't really exist a couple of months ago. The size and complexity of the commit doesn't really help me estimate the actual influence.

As I said, the error is easy to reproduce with rakudo v2023.04. I just set it up with rakubrew and then tried to install the dist with zef.

@2colours That explanation really helps. I added two new handles to deal with the new types. I had not expected there to be an error.

I'll try to find a workaround.

@2colours I think the failure may be arising because the input/output is tested. I have made the tests compiler dependent, so compiler version 2023.04 or earlier does not render or test this POD.

I do not think =output or =input is used at all in the documentation suite, so an error should not arise.