godoc on appengine
------------------
-(documentation in progress)
Prerequisites
-------------
-* Go appengine SDK 1.5.3 - 2011-08-17
+* Go appengine SDK 1.5.5 - 2011-10-11
http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Go
-* go_appengine_sdk_darwin_amd64-1.5.3.zip
- Go sources at tip under $GOROOT
+* Go sources at tip under $GOROOT
Directory structure
app-engine release and version of godoc):
alt/
- archive/
- go/
- ast/
- doc/
- parser/
- ...
- http/
+ encoding/binary/
+ go/*
index/suffixarray/
- mime/
- path/filepath/
- sort/
- strings/
- template/
- url/
app.yaml
godoc.zip
godoc/
For instance:
application: godoc-app
- version: 1-5-4
+ version: 1-5-5
runtime: go
- api_version: 2
+ api_version: 3
handlers:
- url: /.*
* The alt/ directory contains up-to-date copies of Go packages that a tip-based
godoc is dependent on but which do not yet exist in the current app-engine SDK.
+ At the time of this writing (10/14/2011) this is the entire go directory tree
+ (for the missing FileSet serialization code in go/token) as well as the
+ index/suffixarray package (for the missing suffix array serialization code).
+ The latest (alt/)index/suffixarray package internally requires the latest
+ version of encoding/binary, which is why it also needs to be present under
+ alt/.
-Configuring godoc
------------------
+Configuring and running godoc
+-----------------------------
-Run
+To configure godoc, run
bash setup-godoc-app.bash
to create the godoc.zip, index.split.*, and godoc/appconfig.go files
based on $GOROOT and $APPDIR. See the script for details on usage.
+To run godoc locally, using the app-engine emulator, run
-
+ <path to google_appengine>/dev_appserver.py $APPDIR
+
+godoc should come up at http://localhost:8080 .
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// To run godoc under app engine, substitute main.go with
-// this file (appinit.go), provide a .zip file containing
-// the file system to serve, the index file (or files)
-// containing the pre-computed search index and adjust
-// the configuration parameters in appconfig.go accordingly.
-//
-// The current app engine SDK may be based on an older Go
-// release version. To correct for version skew, copy newer
-// packages into the alt directory (e.g. alt/strings) and
-// adjust the imports in the godoc source files (e.g. from
-// `import "strings"` to `import "alt/strings"`). Both old
-// and new packages may be used simultaneously as long as
-// there is no package global state that needs to be shared.
-//
-// The directory structure should look as follows:
-//
-// godoc-app // directory containing the app engine app
-// alt // alternative packages directory to
-// // correct for version skew
-// strings // never version of the strings package
-// ... //
-// app.yaml // app engine control file
-// godoc.zip // .zip file containing the file system to serve
-// godoc // contains godoc sources
-// appinit.go // this file instead of godoc/main.go
-// appconfig.go // godoc for app engine configuration
-// ... //
-// index.split.* // index file(s) containing the search index to serve
-//
-// To run app the engine emulator locally:
-//
-// dev_appserver.py -a 0 godoc-app
-//
-// The godoc home page is served at: <hostname>:8080 and localhost:8080.
-
package main
+// This file replaces main.go when running godoc under app-engine.
+// See README.godoc-app for details.
+
import (
"archive/zip"
"http"