[plt-scheme] DrScheme tool development practices

From: Carl Eastlund (cce at ccs.neu.edu)
Date: Wed Sep 17 12:11:31 EDT 2008

On Wed, Sep 17, 2008 at 12:03 PM, Stephen De Gabrielle
<spdegabrielle at gmail.com> wrote:
> On Wed, Sep 17, 2008 at 4:35 PM, Carl Eastlund <cce at ccs.neu.edu> wrote:
>> > ; when ready to release; (use sake to automate this? )
>> > planet unlink [dev-id] foo.plt 1 4  ;; remove the link
>> > planet create foo ;; create foo.plt file for test installation  [Will -
>> > is
>> > there a reason to compile a temporary copy?]
>> > planet fileinject [dev-id] foo.plt 1 4  ;; install for testing
>> You do not want to unlink the package at this point.  If you take
>> Will's (good) advice and test/build from a temporary copy, in fact,
>> make sure to unlink the original and link the copy.
> I thought that link-ing or fileinject the copy were functionally equivalent?
> - provided you remembered to unlink the original - so linking is probably
> safer?

Linking is not equivalent to fileinjecting for all purposes.  A
development link tells Planet to use your source directory for the
planet package.  When you use fileinject, it tells Planet to extract
the contents of a .plt file, install them in a new directory in the
Planet cache, and use that for the planet package.

Regardless, I meant not to unlink during the planet create, at which
point you don't yet have a .plt file to inject.  Move the unlink to
after the create, then fileinject.  Sorry for the confusion; you do
need to unlink, you were just doing it too early.

>> When you run
>> planet create, Planet attempts to build your Scribble documentation so
>> it can include a rendered HTML file that will be readable on the
>> Planet server.  If you unlink your package, any internal references to
>> (planet <dev-id>/foo:1:4/...) will be broken and planet create may
>> fail.
> I don't understand -  I thought the [planet]create-ed/fileinject-ed copy
> would have the documentation included?

Yes, but only if the package was linked at time of creation.

>> Leave your development links intact and functioning while using planet
>> create.
> (because create builds the documentation?)


> I think I'm missing something in my understanding of building scribble
> documentation.
> Does scribble documentation need to be built in-place (via planet link) to
> work? [if it references other documentation?]

Scribble documentation is built in-place when you run planet create.
If you have any references to the package from itself (e.g. a
defmodule in its documentation, or one file including another via a
planet require spec instead of a local path), you will need the
development link in place while you run planet create.

If there are no such self-references, it won't matter whether you
unlink before or after running planet create.

I hope that clarifies the matter.  Sorry for the confusion, before I
said not to planet unlink, when I should have said do it after planet
create but before planet fileinject.

Carl Eastlund

Posted on the users mailing list.