[racket] Worried about the new package manager not storing each version of a package

From: Lawrence Woodman (lwoodman at vlifesystems.com)
Date: Wed Aug 28 01:51:57 EDT 2013

On 08/27/13 13:55, Matthew Flatt wrote:
> For what it's worth, I think you're worried about problems that will
> have simple solutions in practice. For example, I don't think you
> should rely a package whose author isn't invested enough to at least
> put it on GitHub or otherwise archive old versions.
>
> If one of your scenarios turns out to be a problem in practice,
> however, then you should expect that we will improve the package system
> to address the problem. That is, don't expect the package system to be
> perfect, but do expect us to respond to concrete problems.
>
> That opinion points to my general answer about relying on Racket for a
> commercial enterprise:
>
>   * You *cannot* rely on on Racket version X.Y.Z as the prefect design.
>
>   * You *can* rely on Racket to keep changing and keep improving. It's
>     natural and appropriate to worry about change and/or new designs,
>     but we are committed to change and improvement, anyway.
>
>   * You *can* rely on Racket to provide backward compatibility and/or a
>     migration path so that your programs keep working as Racket
>     improves.
>
> As a case in point, this thread is about the new package system. We
> have an old package system (PLaneT), and it is still supported. We're
> building on the experience of the old system to solve some of its
> problems and to create new opportunities. I have various reasons to
> believe that the new package system is a step in the right direction
> (not the least of which is the fact that DrRacket can now be a
> package), but I'm even more sure that's the design is as good as we can
> do without further practical experience.
>
> Past performance is no guarantee of future results, as they say --- but
> maybe past performance is the best indicator available, anyway. Racket
> has been around for a while, so you can see how we work, and that
> should help you decide whether Racket is stable enough to build on.

I spent some time looking at the Racket code, tests and mailing lists 
before choosing it. I don't
seek perfection and have been very impressed with how responsive the 
racket development
process has been.  I am therefore sure that as problems arise, they will 
get sorted.

I am not against the new package management system per se, and agree 
that separating
out the parts that make racket into packages is a great idea.  It is 
purely the lack of version
control and parallel version handling that I am concerned about.  I have 
seen problems with
version control crop up for so long and so often that I can't see why 
people think Racket and it's
third-party packages would be immune to what has happened in every other 
package eco-system
I have used: Ruby, Tcl, Shared C Libraries under Linux, Various Linux 
Distros, etc.  All of these either
started without distinct version control, or started with a single 
version package model and now all
support multiple parallel versions of packages to overcome the 
dependency problems that arose.

Developers make mistakes, we are all human, no one knows what another is 
going to do and we can't
control it; all we can do is mitigate the risks.

I assume Racket itself is not going to drop distinct release version 
numbers for some of the same reasons
that I am worried about this.  In addition if it did then documentation 
would be a pain, as it will be for
packages under this new scheme.  Answering questions on this mailing 
list would be a pain, e.g.  What
revision of Racket are you experiencing that problem with?....Uh 
checksum 0xA3B432DE34F45C43...Ok,
I'll look that up and work out what state the API was in then.

For the moment I'm going to leave this and see how things get on and 
report back if I have any problems.


Lorry

-- 
vLife Systems Ltd
Registered Office: The Meridian, 4 Copthall House, Station Square, Coventry, CV1 2FL
Registered in England and Wales No. 06477649
http://vlifesystems.com


Posted on the users mailing list.