-
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.targets per package #417
Comments
I know that this is a requested feature and I already started working on it. But it's not an easy one. Regarding the FAKE changes. That's not that bad. The real issue was that I didn't make that Paket 0.17 transition before, so that you had both, the improved Paket output and your FSharp.Core changes in one Commit. But it's still good progress: |
awesome |
That is so beautiful! You may wish to stick with lowercase |
Lovely! Does this mean packages need to publish |
No, they get generated by Paket when it unzips the |
how about |
There is still one issue left: We can't create the targets files per package since we have to create different When clauses if the csproj file already contains the same framework assemblies. So we have two options:
What do you guys think? |
I'd prefer option 1 with MyProject.paket.targets |
that wouldn't work since in one repository can be man MyProject.csproj files in different folders. |
If we go for option 1 we should regenerate the project structure and put the targets there. |
|
how about to keep it all at the same level myproject.projectguid.paket.target? |
I'm against using GUIDs, they make it hard to reason about the relationship between ??proj and targets file. |
Not a new guid, the one that has been assigned to the *proj file. |
I think my argument still holds true ;-) IMHO, GUIDs are for machines, not for human consumption. |
It's already in there and referenced by the .sln. This is just to make sure the target file is unique, if we keep the myproject on the front it should be easy to see which target file matches to the _proj. I don't think I've seen that many projects with the same name._proj. |
Fair enough :) |
Ah but aren't these target files mainly used for the machines ;) |
I vote for 2) ;-) |
@forki I'd be happy with either way, overall having .targets in regardless of where is still a huge benefit. |
nice currently sitting here waiting for this to be merged to try it. |
you might want to test latest 0.19-alpha ;-) already dogfooding: 99c0381 |
@forki boom, works like a dream. If everything is inside .paket.target then will you still need the true? |
the what? |
Seems we have to discontinue automatic VS restore if we want target files. Instead we (as a comunity) could work on @hmemcpy's https://github.com/hmemcpy/Paket.VisualStudio and add restore to it. |
I personally never used pakets VS auto restore so it's something I wouldn't even notice if it went. |
I know that at least @ovatsus and @vasily-kirichenko think this is essential. |
Yes, auto restore is essential. I cannot tell people that they must run something called Paket before they are able to build their solution. |
@TWith2Sugars how would that help? It's really really sad. Instead of supporting PreSolutionBuild event in VS (which is already available in proper MSBuild) they built a nuget addin and shipped it in the VS box. This sucks big time. Question is if a paket VS addin would be an acceptable solution. |
To support the people who want to clone the project and build it from Visual Studio without touching the command line, a Paket Visual Studio extension would be an acceptable solution. This is similar to having the NUnit or xUnit extension in order to run unit tests from Visual Studio. |
@forki Nothing of interest in http://www.nuget.org/packages/NuGetEnablePackageRestore/ ? This used to be NuGet package restore long, long ago and worked from within VS. |
Forcing to install a Paket extension in VS in order for your project to build is even worse than running the paket command line. |
@Uli-Armbruster also wouldn't be pleased to learn that automatic restore in VS was discontinued. |
Ok I think there is no good solution to this. I propose the following:
This is far from perfect, but even for the autorestore people this might be a small benefit since they know they can nuke the targets file if a merge error occurs. We will look for better solutions. Maybe we can talk to @jeffhandley and propose to open up the nuget addin. What do you think? |
Sounds like a reasonable workaround |
As was pointed out, these problems are precisely why we ditched msbuild-integrated restore. Within VS, our extension hooks into the SolutionBuild event and executes restore BEFORE VS launches msbuild. Outside VS, it requires that build scripts run nuget.exe restore. That achieved the results that we wanted: no-touch restore in VS, but very scriptable outside VS. It's worked out great. |
@jeffhandley we know that. The only issue for paket is: we are not in the
|
@ovatsus why is an extension such a bad thing? there's a plug-in for nuget, there could (should?) be one for paket as well. In addition to doing the Nuget-esque pre-build steps, it could do other things as well such as integrated ability to modify paket via a GUI integrated into VS rather than having to fall back to the command line (or fsx). |
I'm not saying the extension is a bad thing, would be great to have the extension. What I'm saying is that I want all my projects to be able to just work by a simple git clone + open the .sln and build, without any special requirements. |
Yes we all want this. But MS closed the door for us. Instead of fixing the Now we have to find the best workaround.
|
Well, right now, if you don't change anything, restore is working, so Paket even has that as added benefit on top of Nuget, it will work fine on other IDEs |
@ovatsus but Nuget takes this approach via an addin - out of the box VS won't restore conventional NuGet packages either. |
I might have found a (hacky) way. Stay tuned. |
We need to check out http://stackoverflow.com/a/24055340/145701 |
I'm closing this because the new MSBuild world moves dependencies to an external |
When I adopted Paket, I was expecting
paket.targets
files per NuGet package to soon happen. It was mentioned before in #197. I'd really like to see this happen. Something like this:There are way to many changes being made to the project files and this causes lots of noise in the diff and some frustration when merging. An example is this pull request I just made for FAKE: fsprojects/FAKE#602
The text was updated successfully, but these errors were encountered: