[plt-scheme] submitting new versions of interdependent PLaneT packages

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Wed Apr 2 13:58:13 EDT 2008

What is a good process for submitting new versions of PLaneT packages 
that are interdependent?

Say I have four Scheme libraries with a "uses" dependency graph that is 
a simple tree:

A <-- B <-- C
A <-- D

I want to put them into PLaneT, and I want each library to have its own 
PLT collection and PLaneT package.  (Not all libraries in one PLaneT 

It won't be unusual for me to want to release new versions of three or 
four of the libraries at the same time, with, say, the new version of B 
dependent on the new version of A.

How do I do that PLaneT submission(s)?

Submit them one at a time, so that I can get the officially assigned 
PLaneT version number of, e.g., A, so that I can put it in the a 
"require" spec in B?

Or do I 'predict' the PLaneT version numbers that will be given to A and 
B, so that I can submit A, B, and C at effectively the same time (even 
though I can't do a test of them before submission because I'm referring 
to versions that don't yet exist in PLaneT)?

Now what if I have two PLT packages with mutual "require" dependencies?

X <--> Y

Seems like in that case I'd have to predict version numbers, or 
introduce an interim version of one of them to bootstrap the new versions.

For non-PLaneT releases of the libraries, I'd just document using the 
version numbers that I assign: e.g., "X 1.3 and Y 1.5 go together."  
This gets more complicated, but so does the PLaneT versioning scheme, as 
soon as one considers interface changes that impact one dependent 
package but not another, and changes that are later revealed to have 
greater impact than was anticipated when the version was assigned.


Posted on the users mailing list.