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

1061 update nuget packages #1062

Closed

Conversation

heldersepu
Copy link
Contributor

Update most of the Nuget dependencies, we still behind on a few because the Swashbuckle.Core is on .NET Framework 4.

heldersepu added 4 commits May 3, 2017 11:35
Refactor some tests to fix obsolete warning messages
Some of the changes did not work on VS2015 like:
if (jsonContract is JsonArrayContract arrayContract)
@domaindrivendev
Copy link
Owner

@heldersepu - this will be a good one to discuss further. Dependency versions seems to come up a lot. My philosophy up to now has been to depend on the minimum versions required for the code to work. This allows application developers to upgrade dependencies at their own pace. For example, I don't want to force application developers to upgrade to the latest version of JSON.NET in order to use Swashbuckle. I'd prefer SB to specify a minimum version and to work with all versions after that. So, the upgrade path for common dependencies is left in control of the application developer.

But, given how frequently this comes up, I don't think it's quite as simple as that :(

@domaindrivendev
Copy link
Owner

domaindrivendev commented Jun 4, 2017

@heldersepu - #1063 might be preferable as it fixes #1041 and only forces consuming applications into a single major version upgrade instead of 4 major versions (the latter is going to be a more daunting prospect and may even be prevented by other dependencies). This way, SB should work for any version of Newtonsoft upwards of 7.0.1. At least until the next breaking change is released by Newtonsoft :)

@heldersepu
Copy link
Contributor Author

@domaindrivendev
I see your point, but I do not share that philosophy...
I'm more of a "update often, update early" kind of developer

In my experience not updating to latest often sets you up for a headache. The time will come when you need that new feature on the latest version, or a fix for a security issue, you might be in a tight deadline but now you have to refactor a lot, just because you are now jumping from v4.0 to v9.5

We are not removing the old versions of Swashbuckle from Nuget. Anyone interested on older versions for compatibility reasons can get one of the old versions.

@domaindrivendev
Copy link
Owner

I should have clarified, I meant my philosophy specifically when developing libraries/packages. Of course in an application, I would strive to keep things up-to-date.

But when you're wearing the hat of a package developer you need to think very differently. You simply can't force consumers of your package into the latest version of everything.

@domaindrivendev
Copy link
Owner

Ironically, it's this philosophy on the part of the package developer that gives the application developer the best chance of "updating early and often".

For example, imagine you had a dependency on PackageA and Swashbuckle. Then for argument sake let's say PackageA was a little behind and only supports Newtonsoft <=7.01. Now, if we make SB depend Newtonsoft >=10.0

@domaindrivendev
Copy link
Owner

in its next version, then the application developer can't upgrade SB until the author of PackageA updates its dependencies.

@heldersepu heldersepu deleted the 1061_update_nuget branch June 22, 2017 19:40
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

Successfully merging this pull request may close these issues.

2 participants