That is why [1.2.3) does work. It should work dependancy wise. If the
package maintainer later on decides that 2.* is also compatible then they
should publish a new version of THEIR package with a minor version upgrade
that includes [1.2.3,3) to mention that it is safe to update till version <
3.0


-- Ramon


On Tue, Mar 19, 2013 at 1:27 PM, Stephen Bohlen <[email protected]> wrote:

> That's one of the very real problems (among many) with NuGet.  They want
> to base upgrade logic, etc. on "semantic versioning" rules but their
> 'default' interpretation of "=1.2.3" for the versions of dependencies is in
> contravention to those very rules :(
>
> The meaning of semantic versioning is precisely that 3.x and 4.x are
> *explicitly* permitted to contain breaking changes.  But when you say your
> package depends on NH version "=3.1.1." you are in fact only stating "at
> least 3.1.1 and *anything* that might come after it".  Since its
> *impossible* for an author of a package that depends on the work of another
> to be able to really *ever* make that statement (predicting the future, as
> it were), it turns out that "=1.2.3" is almost NEVER the proper thing to
> use when declaring your dependencies.  But of course most package authors
> don't fully reason this through and mostly without realizing the
> implication quite happily state "=1.2.3" all over the place for their
> dependencies :(
>
> The only way "=1.2.3" (meaning "1.2.3 or later") would be the right thing
> to say was if the meaning of "or later" only went as far as the *semantic
> versioning* rules permitted it to assume.  So in the case of "=1.2.3" the
> meaning would have to become "version 1.2.3 or later up to but NOT
> INCLUDING 2.0 or later" (since changing the first numeral is the 'break
> point' at which backward compatibility can no longer be assumed).
> Unfortunately, this *isn't* the way nuget behaves when interpreting
> "=1.2.3" today and so the vast majority of existing packages are presently
> mostly broken in re: their statements of dependency versions :(
>
> I infer that there are too many existing packages out there for NuGet to
> properly begin to respect semantic versioning rules re: updates at this
> late date and this is probably why the team has chosen to leave this
> (still) broken...
>
> -Steve B.
>
> Steve Bohlen
> [email protected]
> http://blog.unhandled-exceptions.com
> http://twitter.com/sbohlen
>
>
> On Tue, Mar 19, 2013 at 8:11 AM, Diego Mijelshon 
> <[email protected]>wrote:
>
>> They should do that only if they determine they're not compatible with
>> 4.0.
>> Otherwise, they'd be unnecessarily limiting their end users.
>>
>>
>> On Tue, Mar 19, 2013 at 6:44 AM, Ramon Smits <[email protected]>wrote:
>>
>>> Nuget does not auto update stuff so it is safe to release a new package.
>>>
>>> However, when other packages have a dependancy to NHibernate 3 and they
>>> didn't set the correct dependancy version then they will automatically
>>> update to the latest version instead of updating to the latest non breaking.
>>>
>>> http://docs.nuget.org/docs/reference/versioning
>>>
>>> So they should target like this:
>>>
>>> <dependency id="ExamplePackage" version="[3,4)" />
>>>
>>>
>>> And not like:
>>>
>>> <dependency id="ExamplePackage" version="3" />
>>>
>>> or not specify a version at all.
>>>
>>>
>>>
>>> -- Ramon
>>>
>>>
>>> On Mon, Mar 18, 2013 at 6:21 PM, Oskar Berggren <
>>> [email protected]> wrote:
>>>
>>>> Does anyone know...
>>>>
>>>> If we release NHibernate 4.x under the existing "NHibernate" Nuget
>>>> package name, containing binaries only for .Net 4.0, is the Nuget
>>>> client smart enough to suggest an update only for projects that
>>>> actually target .Net 4.0? Or will it try to update also projects that
>>>> target .Net 3.5?
>>>>
>>>> /Oskar
>>>>
>>>> --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhibernate-development" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "nhibernate-development" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "nhibernate-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to