I believe the documentation for Depend is lacking and needs revising, for it doesn't explain in a clear fashion how to do pessimistic versioning...
As a pod producer, my libraries depend on other libraries. For those dependent libraries I want to specify a minimum version of X.Y.Z to get the latest API additions. But following semantic versioning (and common sense) I also want to specify a maximum version of X.Y so I don't pickup any non-backwards compatible changes.
Example, if I depend on version 1.0.14 of library foo then I'm able to use any version of foo 1.0.XX that's greater than or equal to 1.0.14 but not1.1.XX.
I find I want to do this with pretty much every dependency I declare, even core Fantom pods. Example, BedSheet uses Fantom 1.0.66 specific APIs, and I doubt it'll work with a future Fantom 1.1 release - so sys 1.0.66 - 1.0 it is!
As such, it'd be really useful if there was shortcut for this syntax. Ruby has one, although it's twiddle-wakka shortcut makes no logical sense to me. (Neither the name nor the shortcut!)
Personally, I would have liked to have used + to mean increments in that segment only, and ++ to mean an increment in any version segment.
But if it is too late, what about using other symbol for the pessimistic versioning? e.g.
foo 1.0.14^
Or a different position for the + symbol? e.g.
foo 1.0.+14
I haven't needed this level of sophistication, though.
brianWed 22 Oct 2014
I agree that seems like a bit of hole for a common case. I don't think we really want to break the existing model where the "+" is associated with the entire version. In your case what you are proposing is something like a "+" just on the last segment of the version. Using "^" for that makes sense to me.
But I think before rushing to make any changes to our dependency syntax that we probably really ought to go and and see what people are using across all these package managers and different languages. The current stuff was done a long time ago, and I've never really taken the time to see how this stuff is evolving (if there is some specific conventions typically used, etc)
SlimerDudeSun 26 Oct 2014
I quite liked LightDye's suggestion of ^ too.
if there is some specific conventions typically used
Not that I've seen. Example NodeJs semver is even more messed up than Ruby's (!) and causes a fair bit of confusion. Fantom's current syntax is much more understandable.
SlimerDude Thu 16 Oct 2014
I believe the documentation for
Depend
is lacking and needs revising, for it doesn't explain in a clear fashion how to do pessimistic versioning...As a pod producer, my libraries depend on other libraries. For those dependent libraries I want to specify a minimum version of X.Y.Z to get the latest API additions. But following semantic versioning (and common sense) I also want to specify a maximum version of X.Y so I don't pickup any non-backwards compatible changes.
Example, if I depend on version
1.0.14
of libraryfoo
then I'm able to use any version offoo 1.0.XX
that's greater than or equal to1.0.14
but not1.1.XX
.I worked out how to specify this with
Depend
:I find I want to do this with pretty much every dependency I declare, even core Fantom pods. Example, BedSheet uses Fantom 1.0.66 specific APIs, and I doubt it'll work with a future Fantom 1.1 release - so
sys 1.0.66 - 1.0
it is!As such, it'd be really useful if there was shortcut for this syntax. Ruby has one, although it's twiddle-wakka shortcut makes no logical sense to me. (Neither the name nor the shortcut!)
Personally, I would have liked to have used
+
to mean increments in that segment only, and++
to mean an increment in any version segment.But I fear it's too late for that!
Maybe brackets could be used to limit the effect of the plus symbol?
What do others think?
LightDye Sat 18 Oct 2014
I prefer the first syntax if it isn't too late
But if it is too late, what about using other symbol for the pessimistic versioning? e.g.
Or a different position for the
+
symbol? e.g.I haven't needed this level of sophistication, though.
brian Wed 22 Oct 2014
I agree that seems like a bit of hole for a common case. I don't think we really want to break the existing model where the "+" is associated with the entire version. In your case what you are proposing is something like a "+" just on the last segment of the version. Using "^" for that makes sense to me.
But I think before rushing to make any changes to our dependency syntax that we probably really ought to go and and see what people are using across all these package managers and different languages. The current stuff was done a long time ago, and I've never really taken the time to see how this stuff is evolving (if there is some specific conventions typically used, etc)
SlimerDude Sun 26 Oct 2014
I quite liked LightDye's suggestion of
^
too.Not that I've seen. Example NodeJs semver is even more messed up than Ruby's (!) and causes a fair bit of confusion. Fantom's current syntax is much more understandable.