-
Notifications
You must be signed in to change notification settings - Fork 525
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
Paket should create a package load script #677
Comments
We have a similar feature (Generate references for F# Interactive) in VFPT. A problem is that assemblies sometimes have implicit ordering. You can't get it right without manual intervention. An example is that |
Interesting. How does this work in fsproj files? Also: Can we share the code? |
I used the feature from VFPT and had those problems with There would be 2 cases to consider then
Combing the two could be used to generate a Should I try to provide a solution or have I missed something important? |
Sound about right to me. This project is probably relevant https://github.com/rneatherway/dependency-ordering. |
@rneatherway interested in helping here? |
Is this old PR of mine the kind of thing you are talking about? #303 |
@rneatherway are you doing it then again? It seems to me that your dependency-ordering just needs to be fed with the assembly paths and the problem is solved |
Well, #303 is basically a source-level import of dependency-ordering, which is oriented around being an MSBuild task so it can't just be used as a library. It also includes the FCS technique for resolving assembly references because we won't be operating as an MSBuild task. I will try rebasing the PR and see what's changed when I get a moment. |
Just to be clear, we don't currently have access to the fully resolved assembly paths in Paket do we? Because there are two steps required for this:
|
nope. and we need to be careful on our dependencies. |
Yes, that's why I just included the FCS technique as a source file, so that PR didn't include any more dependencies. It does require switching to .NET 4.5 though, would that be OK? |
Yep I guess that's fair
|
Note you can use |
I have rebased my PR and it is at #702. Please comment gently as it is just a proof of concept. It doesn't currently use the |
this generates a load script based on a proj file. I thought we could generate load scripts for packages. But maybe that's not possible!? |
Hmm, maybe it's actually easier to work with just a package or set of packages actually, because you already know the full paths to the assemblies. But some packages contain multiple versions of the assemblies, which one should we choose? |
@kfrie Thanks for spelling out the details. I've got the issue fixed in VFPT. |
We could create multiple load scripts and a default one.
|
Yes, I'll have a think about it. I may have time next week |
I think it is actually not completely straightforward because we will have to do the assembly resolution for any assemblies from the GAC and other packages that the current package depends on. I'm afraid I won't have time for this. If someone does go for it, I suggest using the version of dependency-ordering in #702, which is separated a bit from the MSBuild API that the github project under my account uses. |
@forki is this one able to be closed now that @smoothdeveloper and @matthid finished the loading script generator? |
From a twitter discussion with @Rickasaurus:
Paket install
should create a .fsx script which contains all #r directives to the libraries in a given package. Ths script should also #load the corresponding package load scripts of transitive dependencies.This would allow us to just #load a package load script in .fsx files and keep references as stable as possible.
The text was updated successfully, but these errors were encountered: