Skip to content
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

isolate paket changes to project files #1223

Closed
Stift opened this issue Nov 15, 2015 · 12 comments
Closed

isolate paket changes to project files #1223

Stift opened this issue Nov 15, 2015 · 12 comments

Comments

@Stift
Copy link
Contributor

Stift commented Nov 15, 2015

In the past I often saw that a different paket version updated csproj file when some internal paket behaviour/handling changed (e.g. different framewerk handlings etc.).
To minimize this paket should separate as much as possible changes it is doing from the developer area. This would mean, that developers and paket have each its own area.
That said, I suggest that paket creates a ProjectName.Paket.targets file and references it in the .csproj file via "". The .targets file just looks like every other normal .targets files with all the and logic.
The advantage could be that merge conflicts on these files (which unfortunately happen from time to time in the paket area) can be easily ignored, and the dev just runs paket install after merging to recreate these files. Additionally syntactic changes (spaces, line breaks) just because the project file is rewritten would also be minimized.
When this should not be the default behaviour I would suggest to control the behaviour via the paket.dependencies file with some flags.

@forki
Copy link
Member

forki commented Nov 15, 2015

Yes we already tried to make that work, but unfortunately ran in lots of
bad issues with this approach.
On Nov 15, 2015 8:48 PM, "Christian Fiebrig" [email protected]
wrote:

In the past I often saw that a different paket version updated csproj file
when some internal paket behaviour/handling changed (e.g. different
framewerk handlings etc.).
To minimize this paket should separate as much as possible changes it is
doing from the developer area. This would mean, that developers and paket
have each its own area.
That said, I suggest that paket creates a ProjectName.Paket.targets
file and references it in the .csproj file via "". The .targets file just looks like
every other normal .targets files with all the and
logic.
The advantage could be that merge conflicts on these files (which
unfortunately happen from time to time in the paket area) can be easily
ignored, and the dev just runs paket install after merging to recreate
these files. Additionally syntactic changes (spaces, line breaks) just
because the project file is rewritten would also be minimized.
When this should not be the default behaviour I would suggest to control
the behaviour via the paket.dependencies file with some flags.


Reply to this email directly or view it on GitHub
#1223.

@Stift
Copy link
Contributor Author

Stift commented Nov 15, 2015

Oh, really. What was the problem behind this approach?

@forki
Copy link
Member

forki commented Nov 16, 2015

See #417 it's a shame that we didn't get it working. We even had pull requests for this.

@forki forki closed this as completed Nov 16, 2015
@isaacabraham
Copy link
Contributor

Why closed? Reading through that issue again there was an option which was to delegate the restore to vs extension. I'm still missing what the problem with that approach was. I assume that command line Paket restore would still work as well?

@forki
Copy link
Member

forki commented Nov 16, 2015

not when VS is open. there was no way to make it work. Update/restore always foreced us to restart VS

@isaacabraham
Copy link
Contributor

I thought doing it via Paket VS add-in would have solved the problem like the NuGet extension does (rather than purely as MSBuild task)?

@forki
Copy link
Member

forki commented Nov 16, 2015

sure, but then you force people to ue the addin. which is against our "minimal tooling" idea.

@isaacabraham
Copy link
Contributor

not sure it forces people to use the addin - if you're using command line you don't need to. I suppose if you use VS then yes, you force people to use the add in. would other IDEs be unaffected if they go straight to paket.exe anyway?

@forki
Copy link
Member

forki commented Nov 16, 2015

We didn't test other IDEs, but command line + VS scenario would be broken.
Which is what most of the early adopters are using.
On Nov 16, 2015 10:36, "Isaac Abraham" [email protected] wrote:

not sure it forces people to use the addin - if you're using command line
you don't need to. I suppose if you use VS then yes, you force people to
use the add in. would other IDEs be unaffected if they go straight to
paket.exe anyway?


Reply to this email directly or view it on GitHub
#1223 (comment).

@isaacabraham
Copy link
Contributor

what is "command line + VS scenario"? Using visual studio for development but manually opening up command prompt and typing paket.exe restore? And this wouldn't work?

@forki
Copy link
Member

forki commented Nov 16, 2015

It's even more complicated.
Projects like fsharp.data rely on automatic VS restore. Cline repo, open
sln, press F5 - that's not working since paket restore needs to generate
targets files. Then you need to restart VS so that VS loads the generated
targets files.
On Nov 16, 2015 11:00, "Isaac Abraham" [email protected] wrote:

what is "command line + VS scenario"? Using visual studio for development
but manually opening up command prompt and typing paket.exe restore? And
this wouldn't work?


Reply to this email directly or view it on GitHub
#1223 (comment).

@isaacabraham
Copy link
Contributor

OK I'm thoroughly confused now. You'll need to Skype me to explain this ;-) Let's just leave it as "won't fix" :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants