fsprojects / FSharp.Compiler.PortaCode

The PortaCode F# code format and corresponding interpreter. Used by Fabulous and others.
Other
42 stars 11 forks source link

Is ProjectCracker.fs intended to be general-purpose? #7

Closed georgewfraser closed 5 years ago

georgewfraser commented 5 years ago

Hi, I've maintained an F# language server for a while, and the fiddliest part is cracking project files.

Is ProjectCracker.fs intended to be a general-purpose .fsproj => f# compiler options converter? Or is it only meant to crack the kind of .fsproj files that are used in Fabulous?

slang25 commented 5 years ago

@georgewfraser on the off chance you weren't aware of it, there is a general purpose library here: https://github.com/enricosada/dotnet-proj-info/

7sharp9 commented 5 years ago

@georgewfraser The one in FCS only really works with certain types of fsproj file, initially it was used in vs4mac but was later removed because it only supported a limited range of fsproj types. Enrico's dotnet-proj-info supports the new style (netstandard) fsproj files quite well, Im not sure if there are still issues with the old style projects.

georgewfraser commented 5 years ago

dotnet-proj-info is quite brittle, many .fsprojs will cause it to fail, including the FSharp compiler itself. The one in this repo looks promising 🤞

dsyme commented 5 years ago

Hi @georgewfraser

I had no idea about that project, wow! (any desire to move it to fsprojects? Some people like to have their projects in neutral orgs to help attract more contributors and co-maintainers - up to you of course :))

The code I'm using is based on Enrico's Dotnet.ProjInfo https://github.com/fsprojects/FSharp.Compiler.PortaCode/blob/master/src/FSharp.Compiler.PortaCode.fsproj#L17. Plus a variation of the code in FsAutoComplete.

It's been ok but I'm only using it on new-style SDK fsproj files.

I notice Dotnet.ProjInfo is now at version 0.31.0 and we're using 0.9.0 here so I assume there are fixes available

dsyme commented 5 years ago

Note the F# compiler repo code has been updated to use SDK style project files fairly recently it might make things easier.

georgewfraser commented 5 years ago

Maybe I have misjudged dotnet-proj-info, I will give it another look.

Yes, I think it would make sense to move the project to fsprojects for the reasons you cite. Are there any governance or license rules, or anything like that? Who would approve the move?

dsyme commented 5 years ago

Yes, I think it would make sense to move the project to fsprojects for the reasons you cite. Are there any governance or license rules, or anything like that? Who would approve the move?

I can approve (approved!)

The governance is that

I think you can just move the project in as long as you're a member of some team here - members can create new repos here.

dsyme commented 5 years ago

Note dotnet-proj-info does not appear to be the same as Dotnet.ProjInfo. I'm not sure of the differences but the second has been updated just a few days ago, the former 4 months ago.

dsyme commented 5 years ago

There's an onboarding process mentioned here: https://github.com/fsprojects/FsProjectsAdmin/

It's a little out of date

georgewfraser commented 5 years ago

Done!

I will give dotnet-proj-info/Dotnet.ProjInfo another look.