fsprojects / FSharp.Formatting

F# tools for generating documentation (Markdown processor and F# code formatter)
https://fsprojects.github.io/FSharp.Formatting/
Other
464 stars 156 forks source link

Bundle RazorEngine.dll which works on mono #203

Closed forki closed 10 years ago

forki commented 10 years ago

202 suggests this is possible

matthid commented 10 years ago

Just some notes:

forki commented 10 years ago

I'm pretty sure @tpetricek would prefer the third option, but just a hack to fix on mono would be ok.

ovatsus commented 10 years ago

If we bundle a version of razor dll, it's important to capture how to rebuild that custom version somewhere

matthid commented 10 years ago

I have added https://www.nuget.org/packages/RazorEngine.N/ but I'm unable to setup paket to work with this (paket bug or did I setup invalid dependencies in the package?)

Paket failed with:

Error in resolution.
  Resolved:
    - CommandLineParser 1.9.71
    - FAKE >= 0
    - FSharp.Compiler.Service >= 0
    - Microsoft.AspNet.Razor >= 0
    - NUnit >= 0
    - NUnit.Runners >= 0
    - NuGet.CommandLine >= 0
    - RazorEngine.N 3.5.0
  Con't resolve:
    - Microsoft.AspNet.Razor 2.0.30506.0
       - from RazorEngine.N 3.5.0
 Please try to relax some conditions.
cdrnet commented 10 years ago

@matthid the paket issue may be related to fsprojects/Paket#140

forki commented 10 years ago

It's not really a bug. But yes paket doesn't support conditional dependencies. On Oct 4, 2014 3:06 PM, "matthid" notifications@github.com wrote:

I have added https://www.nuget.org/packages/RazorEngine.N/ but I'm unable to setup paket to work with this (paket bug or did I setup invalid dependencies in the package?)

Paket failed with:

Error in resolution. Resolved:

  • CommandLineParser 1.9.71
  • FAKE >= 0
  • FSharp.Compiler.Service >= 0
  • Microsoft.AspNet.Razor >= 0
  • NUnit >= 0
  • NUnit.Runners >= 0
  • NuGet.CommandLine >= 0
  • RazorEngine.N 3.5.0 Con't resolve:
  • Microsoft.AspNet.Razor 2.0.30506.0
    • from RazorEngine.N 3.5.0 Please try to relax some conditions.

— Reply to this email directly or view it on GitHub https://github.com/tpetricek/FSharp.Formatting/issues/203#issuecomment-57905120 .

matthid commented 10 years ago

Thanks! I worked around this by using nuget directly instead of paket.

forki commented 10 years ago

Actually I don't it's a good idea to use such a hybrid solution with paket and nuget. It will make things worse.

Why do you have this strange dependency in the package? That doesn't really make sense to me. On Oct 5, 2014 8:12 PM, "matthid" notifications@github.com wrote:

Thanks! I worked around this by using nuget directly instead of paket.

— Reply to this email directly or view it on GitHub https://github.com/tpetricek/FSharp.Formatting/issues/203#issuecomment-57946469 .

matthid commented 10 years ago

I don't think this is such a good idea as well, but what are the alternatives? I guess its fine to leave it this way until paket supports this?

What do you mean, what kind of dependency would you suggest instead?

forki commented 10 years ago

Paket will probably never support a conditional dependency to the same package in different versions. On Oct 5, 2014 9:35 PM, "matthid" notifications@github.com wrote:

I don't think this is such a good idea as well, but what are the alternatives? I guess its fine to leave it this way until paket supports this?

What do you mean, what kind of dependency would you suggest instead?

— Reply to this email directly or view it on GitHub https://github.com/tpetricek/FSharp.Formatting/issues/203#issuecomment-57949152 .

forki commented 10 years ago

Why do you have this splitted dependency? This feels like a big hack around versioning.

cdrnet commented 10 years ago

This can be needed if a dependency suddenly stops supporting some platform you still need to support, but you still want to leverage newer features on newer platforms. I have a similar problem with the FSharp.Core packages here (and I don't like it at all, that's why it is a prerelease for testing only)

forki commented 10 years ago

I know, but still...

I created a new Paket issue (https://github.com/fsprojects/Paket/issues/220) which could solve this. What do you guys think?

forki commented 10 years ago

Please try to use ==operator for now (see http://fsprojects.github.io/Paket/nuget-dependencies.html#Use-exactly-this-version-constraint).

matthid commented 10 years ago

https://github.com/matthid/FSharp.Formatting/commit/ec38f0a73d10242f3f4b822f675251a0f705da53

While I think this would work here this is a major bug in paket now: If you watch closely Paket references the net45 dll which is build against an higher version of System.Web.Razor.dll while still using the old net40 System.Web.Razor.dll... this could lead to compiler errors in the best case (missing method exception?).

I read the nuget package this way: When using the .net45 dll you are not allowed to use a lower version than 3.2.2 (because I could have used new features of this dependency). So the only resolution for Paket is to use the net40 dll in both cases.

You said net45 profile is not build in FSharp.Formatting so it shouldn't matter, but the generated dependencies are now just wrong (for net45), should I use this anyway?

forki commented 10 years ago

we will solve this issue soon. The new install model will propably fix this.

I think it'sa ok for now.

matthid commented 10 years ago

Done, see updated commits in: https://github.com/tpetricek/FSharp.Formatting/pull/207