[plt-scheme] DrScheme tool development practices

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

On Wed, Sep 17, 2008 at 11:15 AM, Stephen De Gabrielle
<spdegabrielle at gmail.com> wrote:
> ;source code repository directory, say $HOME/code/foo
> planet link [dev-id] foo.plt 1 4 $HOME/code/foo
>  ;remembering to update the package numbering to the new number so DrScheme
> doesn't default to the old one.

I usually don't update the version number.  That's up to you, but if
there is a development link DrScheme will use that rather than another
installed version (from the server or from fileinject).

> ; the development loop [edit/compile/test] now only requires the compilation
> step
> setup-plt -P [dev-id] foo.plt 1 4   ; or mzc if finer control of the
> compilation process is required?
> ;; -D as well to disable scribble rebuilding and reindexing.
> [I'm assuming sake can be used here if your compiliation needs are not met
> by setup-plt or mzc]
> ; run your tests or restart DrScheme if your package is a plugin/tool.

Looks good to me.

> ; 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.  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

Leave your development links intact and functioning while using planet create.

> ;run foo-tests:
> (require (planet [dev-id]/foo:1:4/run-tests)) ;  sake action:test?
>  or Restart DrScheme if it's a plugin/tool.
> upload foo.plt to PLaneT (and test again)

Test the original, test the .plt file, test the uploaded file.  Yup.

Carl Eastlund

Posted on the users mailing list.