SciML / ExponentialUtilities.jl

Fast and differentiable implementations of matrix exponentials, Krylov exponential matrix-vector multiplications ("expmv"), KIOPS, ExpoKit functions, and more. All your exponential needs in SciML form.
https://docs.sciml.ai/ExponentialUtilities/stable/
Other
93 stars 29 forks source link

docs 1.0 upgrade #137

Closed ArnoStrouwen closed 1 year ago

ArnoStrouwen commented 1 year ago

@mortenpi is it expected behavior that Documenter complains about LinearAlgebra docstrings, while that module is not included in the modules keyword? https://github.com/SciML/ExponentialUtilities.jl/actions/runs/6209285369/job/16856334243#step:5:28 https://github.com/SciML/ExponentialUtilities.jl/blob/master/docs/make.jl#L10

mortenpi commented 1 year ago

You're overloading that function and attaching a docstring to it here:

https://github.com/SciML/ExponentialUtilities.jl/blob/f317b0655b74941ffee8a6cad89ea7312fc446c9/src/StegrWork.jl#L54-L67

So yes, it's expected. It's searching for docstrings (not functions etc) in your modules.

Edit: I think we can do a better job with the error here though: https://github.com/JuliaDocs/Documenter.jl/issues/2265

ChrisRackauckas commented 1 year ago

Why is it not just the public functions? https://github.com/JuliaLang/julia/pull/50105 defines the public semantics, why wouldn't Documenter follow them?

mortenpi commented 1 year ago

I mean.. that PR got merged like 2 days ago, and doesn't even exist in a Julia release. That said, yes, I do think we want to update Documenter's logic here eventually (https://github.com/JuliaDocs/Documenter.jl/issues/600#issuecomment-1722310282).

ChrisRackauckas commented 1 year ago

Well you were saying you were going to throw a better error in the future. I was just saying that if anything should happen in the future, this case shouldn't error unless it's a public function.

mortenpi commented 1 year ago

Ah. Well, you can still run into the error if you're legitimately extending a function from somewhere else. The confusion here, from my perspective, is that it looks like Documenter is complaining about someone else's docstring. But it's actually complaining about one of yours, which you do want to include in the manual (probably; if it's public stuff that is). So making this error better would be useful regardless.

That said.. LAPACK.stegr! is a public function though, no...? Or if it isn't, then why is ExponentialUtilities mucking with it? Or.. if it's adding like a private method, then the public keyword won't really help here, because you're running into the private method edge case that the new keyword doesn't really handle?