Open kMutagene opened 11 months ago
Hi there, does it get picked up when you specify it explicitly via --projects
?
The help text says Project files to build API docs for outputs, defaults to all packable projects.
.
Just checking, but is it packable?
Just checking, but is it packable?
Does this have to be set explicitly? I do not set anything in that regard on the F# projects. i am publishing all libraries (including the C# library) as nuget packages via dotnet pack
so i would expect it to be packable right?
does it get picked up when you specify it explicitly via --projects?
I have not tried it now, but remember it not working when i tried last time. Will try it again later and report back
--projects | Project files to build API docs for outputs, defaults to all packable projects
How are multiple projects expected to be passed here? comma-separated full paths? one directory containing all projects?
How are multiple projects expected to be passed here?
Hmm, I'm not quite sure, you could try:
--projects A.fsproj B.csproj
--projects A.fsproj --projects B.csproj
I don't think it will be comma-separated
, it really will depend on how https://github.com/commandlineparser/commandline does the argument parsing.
full paths?
Yeah, definitely try full paths when relative ones don't work.
one directory containing all projects?
No, it does expect actual projects, not directories.
So this is really weird. If i run this fake build task:
let watchDocs =
BuildTask.create "WatchDocs" [ build ] {
printfn "watching docs with stable version %s" stableDocsVersionTag
runDotNet
"fsdocs watch --eval --clean --properties Configuration=Release --projects <absolute project paths here>
"./"
}
which basically only runs
dotnet fsdocs watch --eval --clean --properties Configuration=Release --projects <absolute project paths here>
i get this error (for ALL, F# and C#) projects:
skipping project 'Plotly.NET.fsproj' because an error occurred while cracking it: System.Exception: project 'C:\Users\epos\plotly\Plotly.NET\src\Plotly.NET\Plotly.NET.fsproj' not restored
at Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThenFail@1448.Invoke(String message)
at fsdocs.Crack.crackProjectFile[a](a slnDir, FSharpList`1 extraMsbuildProperties, String file) in /home/runner/work/FSharp.Formatting/FSharp.Formatting/src/fsdocs-tool/ProjectCracker.fs:line 346
at fsdocs.Crack.projectInfos@451.Invoke(String p) in /home/runner/work/FSharp.Formatting/FSharp.Formatting/src/fsdocs-tool/ProjectCracker.fs:line 453
skipping project 'Plotly.NET.CSharp.csproj' because an error occurred while cracking it: System.Exception: project 'C:epos\plotly\Plotly.NET\src\Plotly.NET.CSharp\Plotly.NET.CSharp.csproj' not restored
at Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThenFail@1448.Invoke(String message)
at fsdocs.Crack.crackProjectFile[a](a slnDir, FSharpList`1 extraMsbuildProperties, String file) in /home/runner/work/FSharp.Formatting/FSharp.Formatting/src/fsdocs-tool/ProjectCracker.fs:line 346
at fsdocs.Crack.projectInfos@451.Invoke(String p) in /home/runner/work/FSharp.Formatting/FSharp.Formatting/src/fsdocs-tool/ProjectCracker.fs:line 453
if i run the same command from the command line, everything works out.
Euhm, yeah this is some fun stuff. Project cracking fails and who knows what FAKE is doing to influence it. What OS and dotnet SDK version are you using?
What OS and dotnet SDK version are you using?
Win 11 Pro Version 10.0.22621 Build 22621 and .NET 6.0.416
But it seems like the workaround of just building with fake and then calling the tool manually with --projects
will work for me for now. as you said, diagnosing what fake is actually influencing here might be quite hard (and even a local problem maybe?)
If you were running with the dotnet 8 preview SDK I had some environment variables in mind you could give a try. But as you are sticking to the stable 6 SDK I have no immediate idea what you could try.
I would work around it for now. But we should keep this ticket open and provide a better DX when project cracking fails.
At some point the fsdocs tool stopped generating API docs for a C# library (
Plotly.NET.CSharp
) in a mixed F#/C# solution (https://github.com/plotly/Plotly.NET/tree/dev/src). I am 100% certain that this worked in the past. Now the tool only selects the F# projects for API doc generation:I have a build step that builds all projects including the C# project before starting docs generation, so the binaries are there.
Could it be a problem that the C# project targets .net6.0 ?