Comments (6)
Sorry, but I'm not even sure I understand what the above means.
While I'm aware that there are people who believe that NuGet isn't a good system, no-one's ever taken the time to clearly explain to me what the problems are (apart from Package Restore, where I'm acutely aware of the problems).
from hyprlinkr.
Paket FizzBin
Commandline tool used to download nugets/files across your entire repo consistently, add them to .vb
/.fs
/.csproj
s. Has restore option so packages dont have to go into source control.
Fast, no mousing/waiting/clicking/progress dialogs, no angle brackets, no gratuitous diffs on updates. It Just Works with/without Xamarin/Visual Studio, Windows/Mono, C#/F#/VB. Updating to latest is up arrow, enter.
You'll especially like it if any of the following is true:
- you use
git
- you are in Package Manager Console a lot
- you sometimes feel you're spending too much time/clicks/mouse wheeling/managing merge conflicts on package updates and or scanning for ticks
Dev uses Paket when developing
paket.dependencies
: Put paths, package names and version constraints in paket.dependencies
file in a dir tree root.
$ paket update
: Creates/validates a graph and saves resolved vers to paket.lock
.
paket.references
: In proj dirs, simple text file lists pakets used in .xxproj
files
- Use NuGet to maintain
/packages
.paket convert-from-nuget
to suck Refs out ofpackages.config
into Deps+Refs files. - Edit
paket.dependencies
or use$ paket add
: Add file (\share, Http, GitHub, fssnip) or NuGet specs to deps, Write Lock, Add to Refs for a proj, put ref into a proj $ paket update
: Readpaket.dependencies
, Write Lock, Load Refs, Put<References
into csprojs- Loop (can go back to -1 if you want - using paket does not preclude use of NuGet)
- Add
paket.dependencies
,paket.lock
paket.references
to source control. Add.nupkg
files + DLLs inpackages
folder to either.gitignore
or source control. Commit.
People cloning repo need exact same set of files dev was using but dev didnt commit entire packages folder
- Fork repo.
paket install
: read Lock, download.nupkg
files iff not there, expand DLLs out of.nupkg
zips- Load VS.
CI box iff not committing all packages
folder
5: <build>.cmd/sh
: paket install
: Read Lock, download files not in /packages
, expand DLLs.
6: Run msbuild/xbuild - no magic scripts slowing anything down
from hyprlinkr.
Contextual answer for why hyprlinkr should use it is:
editing AssemblyInfo.fs files : 029
:: NuGet update busywork/clickery : Paket
i.e. no magical powers you didnt have before, but you'll still wonder where it was all your life.
No mad diffs in updates, quick easy package updates across solutions.
Real no brainer hands down win will be to apply it to AutoFixture but some bugs need to be squashed before I do that.
Sadly no words are any use, you just have to try it really.
Would love feedback on the FizzBin guide in prev comment want to put it failrly prominient on http://fsprojects.github.io/Paket/ soon and want to have something that explains core points and abts back key misconceptions to clued-in people without going all TL;DR.
from hyprlinkr.
Personally, I'm pretty much here:
- you use git Check
- you are in Package Manager Console a lot Check
- you sometimes feel you're spending too much time/clicks/mouse wheeling/managing merge conflicts on package updates and or scanning for ticks not really
Given this, I still don't understand what value Paket provides. Sure, there are a few areas where I think NuGet could be better, but if you abstain from using Package Restore, they are only small things...
You may then tell me that Paket fixes those small things, but when taking on another dependency, there's also a cost associated with that. Is the price worth the benefit? Perhaps, but I don't see it yet.
from hyprlinkr.
Based on the above I think your stance is perfectly valid.
Especially for libs like hyprlinkr and AutoFixture where you're being extremely deliberate about all what minimum bars you set (e.g. being conservative re Moq ver etc.).
I think on the AutoFixture suite, being able to create sets of dependencies to apply as a "profile" might make sense.
Or if you have a suite of independent services whose dependencies break down into sets may provide a useful abstraction, see fsprojects/Paket#154 (examples in fsprojects/Paket#165 and fsprojects/Paket#123)
In all cases, as you're pretty much saying, the abstraction better be earning its keep vs the conceptual cost. And it should be introduced for a reason better than it being cool. I guess one could say it's a bit like "listen to your testsdependencies" and the good effects of Pure DIexplicit NuGet project level references being a good exercise. Maybe Paket equates to Resharper to complete the set of allusions to the sets of your concepts that are firing in my head :)
Thanks for the time - this has definitely helped out my thought process though, fsprojects/Paket#176 is a direct result.
I'm also hoping that as a side effect of fsprojects/Paket#166 NuGet itself will gain a mode where you can just commit nupkgs without all the lib dirs expanded out and a NuGet restore
as step 1 of a build will (without having a network dep) expand the DLLs and save a lot of repo bloat (and hopefully build time).
I'm stil also going to try it on AutoFixture too though nonetheless.
from hyprlinkr.
Well, if the light bulb eventually lights up for me, I certainly wouldn't mind; I reserve the right to revise my position when I've become less ignorant :)
from hyprlinkr.
Related Issues (20)
- Support for Async controller methods HOT 10
- Extensions with UrlHelper HOT 1
- Logo HOT 9
- AttributeRouting
- NullReferenceException HOT 2
- Support for Uri Templates in v2? HOT 6
- Example to create a link to a POST methods? HOT 9
- Does not seem to be working with web api 2 properly ... HOT 9
- Improve logo HOT 5
- How do I use hyprlinkr in a non-typesafe manner? HOT 3
- Templates generation HOT 3
- Handler for Ploeh.Hyprlinkr.IResourceLinkParser was not found HOT 3
- Wrong url parameters generation for controller actions returning statuses HOT 1
- Cannot handle actions that return only Task HOT 3
- Support for Async controller methods for WebAPI HOT 4
- Support for Relative Uris HOT 2
- Support for attribute-based route names HOT 10
- A link to another controller's parameterless method includes current request's parameter HOT 2
- redirect HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyprlinkr.