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

Paket netcore/msbuild15 - no nuget needed #2249

Closed
1 of 5 tasks
cloudRoutine opened this issue Apr 13, 2017 · 23 comments
Closed
1 of 5 tasks

Paket netcore/msbuild15 - no nuget needed #2249

cloudRoutine opened this issue Apr 13, 2017 · 23 comments

Comments

@cloudRoutine
Copy link
Member

cloudRoutine commented Apr 13, 2017

We're pretty close to the point where we won't need to rely on nuget for any part of the netcore, restore, build, pack, and publish process.

Remaining Features

( WIP - I'll fill out the list with items and references as I investigate everything we'll need)

Open Questions

  • should we wrap everything up in a Paket.Sdk?
  • should there be default dirs or a default layout so that paket.templates and similar things are automatically pulled into the build process?

cc @forki @baronfel @enricosada @smoothdeveloper

@forki
Copy link
Member

forki commented Apr 15, 2017

Will we have a version that does not need mono?

/cc @matthid

@matthid
Copy link
Member

matthid commented Apr 15, 2017

Sorry to disturb a bit but how is "generate nuger.g.targets" the same as "won't rely on nuget"

@forki yes we could have build that ever since I did the huge coreclr branch. I was just lazy and only needed the nuget package :P

@forki
Copy link
Member

forki commented Apr 15, 2017 via email

@matthid
Copy link
Member

matthid commented Apr 15, 2017

making a dotnet standalone tool should be really straightforward at this point... I don't think any big code changes are needed (if at all).

more interesting is the bootstrapper or the distribution as then the package either requires an installed sdk/runtime or depends on a specific platform...

@cloudRoutine
Copy link
Member Author

cloudRoutine commented Apr 15, 2017

@matthid nuget creates those resources during restore that msbuild15 needs to compile a project, that's the main role it's still playing in the build process

@matthid
Copy link
Member

matthid commented Apr 15, 2017

@cloudRoutine I know (therefore the sorry) it just still feels wrong ;)

@forki
Copy link
Member

forki commented Apr 15, 2017 via email

@cloudRoutine
Copy link
Member Author

am I missing something? what's hard about the bootstrapper? paket is a dev tool, so whoever is using it will have the sdk installed already. It's not like we worry about whether someone has installed netframework on their windows machine, because paket will be useless if they don't 😜

@enricosada
Copy link
Collaborator

@forki boostrapper Is in #2125

It doesn't use dotnet cli tool, just paket.dll (paket published as fdd) inside a nupkg.
Dotnetcli tool is not needed ihmo and had drawbacks

Pratically at first restore, it restore the package who contains paket

@matthid
Copy link
Member

matthid commented Apr 15, 2017

It's not like we worry about whether someone has installed netframework on their windows machine, because paket will be useless if they don't 😜

yes we do, otherwise we wouldn't mind installing mono :/

@enricosada
Copy link
Collaborator

As a note.
We should not fight but integrate and open extension point of needed.
No need to replace whole pack sdk. It's going to be harder and more corner cases.

The only big issue I see ATM is having Sdk (the sdk attribute) so paket target exists before proj restore ( no need to custom import )
But that require something is wip atm

@matthid
Copy link
Member

matthid commented Apr 15, 2017

Pratically at first restore, it restore the package who contains paket

so you still need nuget to restore paket? :/

@enricosada
Copy link
Collaborator

yes we do, otherwise we wouldn't mind installing mono :/

If we restore like mine or with published paket (netcoreapp + net45) will work with mono, netcore and full fw.
Like FSC does. It switch FSC based on msbuild host. With msbuild.exe use fsc.exe, with dotnet mabuild use FSC netcore

@enricosada
Copy link
Collaborator

so you still need nuget to restore paket? :/

Yes. But who care? When sdk attribute will be extensible by custom sdk, will work like that, but no need ogni custom import

@enricosada
Copy link
Collaborator

To boostrap we can also call something else ( webclient.download) to restore the nupkg or a zip, instead of nuget sdk.
But who care?

@cloudRoutine
Copy link
Member Author

@matthid and I do since we're working toward a no msbuild, no nuget, no fsproj, build pipeline

@matthid
Copy link
Member

matthid commented Apr 15, 2017

We should not fight but integrate and open extension point of needed.

I'm not trying to fight just arguing in another direction. Sorry if I sounded harsh.

My argument is that we contradict ouself if we argue that we don't want to have mono installed but really just switch one dependency with another...

@forki
Copy link
Member

forki commented Apr 15, 2017 via email

@cloudRoutine
Copy link
Member Author

@matthid you mean switching mono for netcore?

@matthid
Copy link
Member

matthid commented Apr 15, 2017

@cloudRoutine yeah. the only fundamental advantage is that we can build a standalone tool (with the runtime included) with dotnetcore. But maybe I'm completely alone with this opinion (at least it seems like this).

@enricosada
Copy link
Collaborator

You don't need to choose mono over dotnetcore.
Just use the same runtime msbuild is using.
Msbuild is Core? Run dotnet paket.dll
Msbuild is Mono? Run mono paket.exe
Msbuild is Full? Run paket.exe

That's similar to how FSC is doing

@cloudRoutine
Copy link
Member Author

@matthid there are some contexts where I think that will be useful for stuff I'd like to do with paket and FAKE, but I don't expect to be using the runtime specific standalone versions during normal dev over an fdd version.

@cloudRoutine cloudRoutine added this to Restoration, Build, & Packaging in paket-netcore Apr 19, 2017
@enricosada
Copy link
Collaborator

Closing.

.net core only paket is tracked in #2875 (with notes about .net sdk too)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
paket-netcore
Restoration, Build, & Packaging
Development

No branches or pull requests

4 participants