plotly / Plotly.NET

interactive graphing library for .NET programming languages :chart_with_upwards_trend:
https://plotly.net
MIT License
648 stars 84 forks source link

Giraffe.ViewEngine.StrongName breaks compatability with Giraffe server #452

Open anpin opened 4 months ago

anpin commented 4 months ago

Description

Hey, thanks for you effort in this library, it really is amazing.

I came about an issue with the fork project mentioned here https://github.com/giraffe-fsharp/Giraffe.ViewEngine/issues/23

It is currently not possible to render a chart to json in a giraffe backend via toJson gChart as it was added in version 4.1.0 which doesn't work with giraffe due to a presence of forked Giraffe.ViewEngine.StrongName package

Components.fs(286,9): error FS0001: All elements of a list must be implicitly convertible to the type of the first element, which here is 
'Giraffe.ViewEngine.HtmlElements.XmlAttribute (Giraffe.ViewEngine.StrongName, Version=2.0.0.0, Culture=neutral, PublicKeyToken=028aa8e2a326f4d0)'. 
This element has type 'Giraffe.ViewEngine.HtmlElements.XmlAttribute (Giraffe.ViewEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)'. 
[Components.fsproj::TargetFramework=net8.0]

Repro steps

dotnet new giraffe -o plot
cd plot
dotnet add package Plotly.Net
dotnet build

Expected behavior

Project builds

Actual behavior

/home/a/projects/plot/Program.fs(57,14): error FS0001: This expression was expected to have type    'Giraffe.ViewEngine.HtmlElements.XmlNode (Giraffe.ViewEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)'    but here has type    'Giraffe.ViewEngine.HtmlElements.XmlNode (Giraffe.ViewEngine.StrongName, Version=2.0.0.0, Culture=neutral, PublicKeyToken=028aa8e2a326f4d0)' [/home/a/projects/plot/plot.fsproj]

Build FAILED.

Known workarounds

Fork Plotly.Net and revert the change

Related information

kMutagene commented 3 months ago

Hey, thanks for you effort in this library, it really is amazing.

thanks!

Fork Plotly.Net and revert the change

this will only work in an environment that does not care about this strong naming clusterfck. I really regret supporting this, and I think i might actually revert it in a future version. But for the moment i have no idea what i could do about this that would not lead to either a) breaking compatibility for netfx/strong naming stuff or b) depend on the Giraffe team on signing the original package.

kMutagene commented 3 months ago

However, a workaround could be including the raw html output, which would be GenericChart.toChartHTML, which is just calling toChartHTMLNodes and renders it as a string, meaning it should lead to the same output if you just yield the raw string.