[rust-dev] Deprecating rustpkg

Tony Arcieri 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
same package

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

Tony Arcieri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140131/3733a738/attachment.html>

More information about the Rust-dev mailing list