[racket-dev] PLaneT(2): Single vs multi-collection packages
Matthew Flatt wrote at 06/18/2013 07:59 AM:
> In principle, you should add a versioned dependency on "racket" to
> indicate that the package does not work with version 5.3.4, and so
> users of v5.3.4 should get an earlier revision of the package.
Just a general comment... For production use, I try not to have
libraries push people to new versions of Racket without good reason.
Despite my general awareness and practice, I was actually bit by this
problem recently. A consulting client who used one of my open source
libraries in production had a problem that I had addressed in a new
version of the library. But it turned out that an interim version of
the library added a dependency on some new Racket feature, and client's
production setup would be disrupted if they had to move Racket versions
(increases unknowns). I ended up forking my own library for the client,
and merging the fix into their fork.
In the more distant past, I think I've also had at least one situation
in which I made a Racket (or PLT Scheme) library version use some new
Racket feature, then in a subsequent version I reversed this change, so
that it could work with an older Racket version.
This doesn't have to be a big encumbrance -- I do adopt new Racket
features when they are win (e.g., submodules, define-logger), but I try
to make small efforts to avoid requiring newer Racket versions than I
really need, since pushing people to new Racket versions does seem to
cause problems in practice.
Neil V.