[racket] Planet2 questions

From: Berthold Bäuml (berthold.baeuml at dlr.de)
Date: Mon Apr 8 18:03:01 EDT 2013

On 04.04.2013, at 17:09, Jay McCarthy <jay.mccarthy at gmail.com> wrote:

> On Thu, Apr 4, 2013 at 8:58 AM, Laurent <laurent.orseau at gmail.com> wrote:
>> Some questions about Planet 2, using github, but not really used to it.
> I think these questions are about the Racket package system, since I
> don't know what "Planet 2" is, so I'll answer them. :)
>> * Currently, the main files of my projects are at the root of the git repo.
>> IIUC, Planet2 requires them to be in a subdirectory of the git repo, so as
>> to be considered as a collection by Racket, is that correct?
> Yes
>> Then where will the README and LICENSE and some other files go once the
>> package is installed, since those files are (should be) usually at the root
>> of the github repo?
> The root of the package directory. There will be no Racket way of
> getting to them, because they aren't in a collection.
>> * I'm a bit confused about how I should manage my package versions with
>> Planet2.
>> It seems that Planet2 leaves this somewhat to the user, but still seems to
>> suggest that some options are better than others, without being entirely
>> specific.
> That's intentional
>> For example, would the following be considered good?
>> - The master branch is used for development only.
>> - At each major version, I create a new git branch, and upload a new package
>> with an increased number at the end of the package name.
>> - Bug fixes and small improvements can be done on a major branch, generating
>> a new hash and users will automatically receive the update.
> This is a fine technique to use
>> This implies that users of a major branch will receive minor updates, but
>> may not know that a new major version has been released, right?
> Yes, that is the case.
>> But I see that many packages on Planet2 are using the master as the package
>> source. Then how do the developers manage major versions and development?
> I believe that most of these developers do not intend to ever break
> compatibility. But if they do, they can tag the last "Version 1"
> commit, change the PNR to point to the tag, then create a new "Version
> 2" package that uses "master". The PNR source record can be changed
> whenever you want and it is not cached, etc by users, so when you
> change it, they will get the update just like usual.

I think this is not quite true. One severe problem with planet2 is that there is no way to reference to old "variants" of a package, i.e.,  in git-slang a commit of the package with a definite hash. This deficit forces a  user to always use the newest variant of package and even when he finds an error he can not roll-back to an earlier working one. This comes close to continuous integration (CI), where at any time the newest variants of all packages are used. Such a model may work well for small groups of developers who work intensively together but not if you want to use packages from various sources with very differing responsiveness of the developers. In the latter case a model like the Linux distributions use  is more appropriate: 
	- a distributor puts together a ensemble of package variants, i.e., a distribution
	- during a lifetime of such a distribution only minor upgrades in the package variants are done (bug fixes)
	- at any moment, the user can force to use a definitive variant of a package and can download it from the distribution web site

Another interesting model for package management (even including, e.g.,  how to check out and commit packages during development) has emerged over the last years in our field of research with the open source ROS (robot operating system) from Willow Garage http://www.ros.org/wiki/Packages .

Currently we are in the middle of writing up a package model we distilled from insights we got from studying the planet, planet2, debian and ROS packaging system. Looking forward to discussions with you.


> Jay
>> Laurent
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://faculty.cs.byu.edu/~jay
> "The glory of God is Intelligence" - D&C 93
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

Berthold Bäuml -- Head of Autonomous Learning Robots Lab
DLR, Robotics and Mechatronics Center (RMC)
Münchner Str. 20, D-82234 Wessling
Phone +49 8153 282489

Posted on the users mailing list.