JuliaDocs / DocumentationGenerator.jl

MIT License
21 stars 7 forks source link

Use AbstractTrees 0.4 #212

Closed mortenpi closed 10 months ago

mortenpi commented 11 months ago

Fix #180.

pfitzseb commented 11 months ago

Any reason not to support all three versions?

mortenpi commented 11 months ago

Any reason not to support all three versions?

From what I remember, 0.4 has some subtly breaking changes, so if at any point we decide to use more functionality from AbstractTrees, there is a non-zero chance that we stop being compatible with the older versions. But it's unlikely we'll realize that.. until somebody somewhere gets an inscrutable error. So while I can keep the compat with 0.2 and 0.3, I feel that it's not worth the maintenance overhead.

Note: the problem that this is trying to solve is that most packages have moved on from <= 0.3, and so we can't install this in environments that have such packages. If we run into a conflicting package that doesn't allow 0.4, we should fix that dependency.

mortenpi commented 10 months ago

Any reason not to support all three versions?

there is a non-zero chance that we stop being compatible with the older versions

Case in point -- our current implementation doesn't work with AbstractTrees 0.4 :smile: We are mutating the tree structure during the PreOrderDFS iteration (by changing up the children), which breaks with 0.4 (as far as I can tell, in 0.4, it iterates over the old children, whereas 0.3 iterates over the new children).

I've pushed a fix that moves the mutation out of the iteration, but I still think that we should just drop 0.2 and 0.3.