[racket-dev] new package system and versions

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Sun Nov 30 12:25:42 EST 2014

I don't understand this question. The package system doesn't really have a
concept of version like you are referring to.

The package X is versionless. It is possible to know that your copy of X is
different than another's, hence checksums and updating (which should have
been called sync, in retrospect.) And you can know that your copy of X
isn't the copy that package Y expects, hence the (poorly named) version
metadata in the info file. But there is always only one package X in your
installation (and no promise that X anywhere else has anything to do with
your X.)

If you want to make a totally new package that has nothing to do with X, as
non-backwards compatibility means. Then you are free to name it X and make
it difficult for people to maintain old programs using the original X. If
you do so, the system will not stop you, but you are going against the
advice and experience of the Racket developers wrt quality customer
service.

Jay

On Sunday, November 30, 2014, Neil Van Dyke <neil at neilvandyke.org> wrote:

> Any chance of revisiting the new package system's stances on versions --
> specifically, on the two issues:
> 1. Can subsequent versions of a named package (which has an identity)  be
> non-backward-compatible?
> 2. Can a Racket setup (and even an individual program) have multiple
> versions of a package at the same time?
>
> Regarding #1, the requirement to never make a non-backward-compatible
> version of a package without giving up package identity is a burden, and a
> deterrent to third-party package releases.
>
> For a real-world example, see "http://planet.racket-lang.org/", where it
> looks like most of the familiar names (who were going to a good amount of
> trouble to release already), managed to release packages marked as
> non-backward-compatible (i.e., PLaneT major version number other than 1).
> Wouldn't requiring them to never break backward compatibility be a
> deterrent to releasing at all? Or, if they still released, would `dherman`,
> following the instructions of Racket to create a new package identity for
> any backward-incompatible version, have given us packages `javascript`,
> `javascript2`, ... `javascript9`, rather than `javascript` versions `1.x`
> through `9.x`.
>
> No-backward-incompatibility might make sense for core Racket (although
> even core Racket has broken this multiple times), but it's a big deterrent
> to researchers, and to industry developers who are willing to open source
> components of their larger systems in lightweight ways.
>
> Regarding #2, I suggest that should be revisited if #1 is revisited.
>
> I think PLaneT got both of these a lot closer to right, at least for
> third-party packages.
>
> Neil V.
>
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev
>


-- 
Jay McCarthy
http://jeapostrophe.github.io

           "Wherefore, be not weary in well-doing,
      for ye are laying the foundation of a great work.
And out of small things proceedeth that which is great."
                          - D&C 64:33
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20141130/ed4e55d4/attachment.html>

Posted on the dev mailing list.