[rust-dev] Deprecating rustpkg
bascule at gmail.com
Fri Jan 31 14:56:38 PST 2014
On Fri, Jan 31, 2014 at 2:29 PM, Jack Moffitt <jack at metajack.im> wrote:
> Every symbol in a crate is hashed with its version. You can load two
> extern mod's of the same libriary with different versions with no
> problems. [...]
This is not what I'm asking. I understand this "works". I am curious
specifically about dependency resolution.
As for how you would calculate this, it's easy. You just use exactly
> the versions that the extern mods ask for. If they ask for a version,
you pick that one.
Okay, we've covered one and exactly one case here: pinning to an exact
version. I'm calling this an *antipattern: *it precludes updates (which may
contain things like security fixes) in the event when there are compatible
upgrades. So this is bad...
> If they don't, you pick the newest one.
What if we're incompatible with the newest version? How do we lock to the
nearest major (or potentially minor) version?
> This is substantially different than the Java (or Erlang) world where
the function names are not versioned behind the scenes and would
> clobber each other.
Yes, but you're discussing a function of the packaging system, not the
dependency resolver. These concerns are orthogonal.
> Hopefully I haven't misunderstood your question.
You have basically said the same things that have been said before without
answering my question whatsoever, so I'll ask it again:
In what situations are you saying there would actually be a workable
multi-version solution that wouldn't exist in a system like Maven.
Perhaps an example is in order? Can you give me an example of a set of
packages, versions, and dependencies, and show me:
1) How these dependencies would (or would not) be resolved in a
Maven/Bundler/apt-get/yum-like system that's doing something toposort-like
2) How these dependencies would be resolved in the as-yet-unspecified
handwavey pie-in-the-sky system which supports multiple versions of the
I would specifically like to see an example of a problem where
Maven/Bundler/apt-get/yum could not arrive on a solution that a system
which supports the installation of multiple simultaneous versions could
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rust-dev