[r6rs-discuss] library versions (was: Rationale issues)
[My views, not speaking for the editors...]
At Thu, 28 Jun 2007 17:01:49 -0400 (EDT), AndrevanTonder wrote:
> There are good versioning tools that keep things consistent
> on a higher level than the source of the stuff being kept
> consistent, are free, and are in common use in the industry.
> Anyone in his right mind who does projects large enough to
> need version control will already be using one of these.
Indeed. I don't understand what this has to do with version on R6RS
libraries, though. I think it's because we have different ideas about
"version". I'll do my best to explain how I think of "version" and why
they make sense for R6RS libraries.
I agree that it would be a bad idea to use versions on all the internal
modules of some package. It might be best, in fact, to just not use
versions most of the time. Use version-control software when you own
all the code.
But when it comes to distributing a library to users who don't have
access to your SVN repository, or who are combining libraries from many
different sources (managed in different repositories), then it makes
sense to put a version number at packaging time, at least on modules
that are intended for external use.
I expect the main use of the version number to be: package A depends on
package B, and the implementor of A knows (for whatever reason) that it
works only with a sufficiently new version of B. To save users the
hassle of guessing which version is needed, A explicitly requires
"version X or greater" of B.
Judging by the content of my `lib' directory and the messages I get
when I try to upgrade a package via RPM/aptget/etc., that seems in
keeping with industry practice.
PLT's Planet repository has a similar versioning structure, and my
impression is that version numbers have been a successful and important
part of that system. I personally had little to do with the version
designs in either Planet or the draft R6RS, but I support them both. In
particular, I think that versioning in R6RS is sufficiently optional
--- you don't have to write versions in any of your own code if you
don't like them --- to be a good compromise between those who like
declared versions (based on past experience) and those who don't (based
on other past experience).
Matthew
Received on Thu Jun 28 2007 - 17:30:32 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC