-
Notifications
You must be signed in to change notification settings - Fork 301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compiling as library #3561
Compiling as library #3561
Conversation
@nojaf I agree with the sentiment expressed in other threads that it makes more sense to rename |
Hi all, A bit of an update, I'm still working on this from time to time. In its current form, I can load an fsproj with a NuGet dependency from my Vite plugin. One day, I would like to revisit the way we compose The next step would be to polish this PR and try integrating an existing project. |
Hi @ncave , I would like to polish this PR and wrap it up so we can ship the first alpha version of Two open questions:
|
Oh also, |
Sure, if you don't have any more changes for it.
Probably yes, same dependencies as the
Yes, |
@nojaf If not, there are other reverse dependencies on lower stacks implementations in the interface here, perhaps the graph dependency lookup can be added there in the interface and implemented in |
Yes, that should be all for now. Thanks for the feedback, I'll look into this over the weekend probably. |
In the case of FSharp.Compiler, since it's a library package, shouldn't FSharp.Core be a proper dependency? Especially because the application depending on us might not choose exactly the same FSharp.Core version. I think bundling it only makes sense for the tool. FCS of course is an exception since it's a custom fork. |
Yes, we can, but we'll have to build FCS with the same version. |
855e4f0
to
97938ce
Compare
Moving ProjectCracker I think.
Thanks @ncave! No need to do an extra sync for this, but could you include the |
@MangelMaxime even though this still has some todos, would it be ok to have this PR merged? |
The PDBs are already embedded in the assemblies, no? |
Ah, yes indeed, I believe you are right. Didn't think of that. |
I assume one of the todos is to eventually support the full set of languages that Fable supports. |
Looking at the discussion history it seems like this PR is not yet ready for a release. You said above:
We can have the KAC integration done later, current system is working fine so Fable.Compiler could just use the same publishing system as the others.
What more though are needed? These questions needs to be answered because we need to be able release Fable.CLI, otherwise we will not be able to releases fixes for the different bug or improvements made to Fable. |
@nojaf A good question for the |
Hi everyone, I'm keen on getting this PR merged to avoid further rebasing, which is becoming quite tedious. Just to be clear, I'm not suggesting an immediate release on NuGet. Using it locally works for me. What I'm really aiming for is to contribute more regularly but in smaller chunks.
Eventually yes, but right now, there is no use case for anything different than JS.
I want to run this by Chet in terms of the NuGet creation. Whether I have all the right props in place and I am adhering to the best practices. And also hook this up in the |
I understand that you are not suggesting an immediate release. Any fixes we want to do for Fable, require a new release of Fable.CLI. Which with this PR requires Fable.Compiler to be released meaning that it needs to have a Changelog and be hooked to the actual build process. That's why I suggested to not use KAC for now and just use the way things are for now. KAC integration can be done later if/when needed. Personally, I am ok with releasing a version of Fable.CLI that use the current Fable.Compiler. Even if Fable.Compiler, is not stable yet. As long as the surfacing Fable.CLI args and requirements in term of SDKs/Tools installed on the user machine doesn't change compared to what we have now, I am fine with it. |
Yup, that would be the short-term plan for sure. If anything were to change somewhere in |
<Reference Include="../../lib/fcs/FSharp.Core.dll" /> | ||
<Reference Include="../../lib/fcs/FSharp.Compiler.Service.dll" /> | ||
<Reference Include="../../lib/fcs/FSharp.Compiler.Service.dll" /> | ||
<Reference Include="../../lib/fcs/FSharp.DependencyManager.Nuget.dll" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it normal that we have a new "dependency" here?
I asking in case this is something that has been forgotten.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nojaf I had to revert the merge of this PR because I could not pack
|
This is a very rough proof of concept for #3552.
It worked on my machine, I think it is kinda cool.
I duplicated a lot of code from
Fable.Cli
, you should imagineFable.Cli
takes a dependency onFable.Compiler.Service
and the right shared core components live there.This is just an attempt to illustrate what I think could be valuable.
Checkout
tests/FCSTest/Program.fs
to see what a third-party tool could do with this.I believe the MSBuild experiment in #3549 could benefit from this as well.