perkeep/HACKING

75 lines
2.2 KiB
Plaintext

Camlistore contributors regularly use Linux and OS X, and both are
100% supported.
Developing on Windows is sometimes broken, but should work. Let us
know if we broke something, or we accidentally depend on some
Unix-specific build tool somewhere.
See http://camlistore.org/docs/contributing for information on how to
contribute to the project and submit patches. Notably, we use Gerrit
for code review. Our Gerrit instance is at https://camlistore.org/r/
See architecture docs: https://camlistore.org/docs/
You can view docs for Camlistore packages with local godoc, or
godoc.org.
It's recommended you use git to fetch the source code, rather than
hack from a Camlistore release's zip file:
$ git clone https://camlistore.googlesource.com/camlistore
(We use github for distribution and collaboration with some people,
but the Gerrit git server & code review system is the main repo. See
http://camlistore.org/docs/contributing for how to use them.)
On Debian/Ubuntu, some deps to get started:
$ sudo apt-get install libsqlite3-dev sqlite3 pkg-config git
During development, rather than use the main binaries ("camput",
"camget", "camtool", "cammount", etc) directly, we instead use a
wrapper (devcam) that automatically configure the environment to use
the test server & test environment.
To build devcam:
$ go run make.go
And devcam will be in <camroot>/bin/devcam. You'll probably want to
symlink it into your $PATH.
Alternatively, if your Camlistore root is checked out at
$GOPATH/src/camlistore.org (optional, but natural for Go users), you
can just:
$ go install ./dev/devcam
The subcommands of devcam start the server or run camput/camget/etc:
$ devcam server # main server
$ devcam appengine # App Engine version of the server
$ devcam put # camput
$ devcam get # camget
Some old wrapper scripts haven't been converted yet to be part of
devcam. For now, they're at:
$ ./dev-camtool
$ ./dev-cammount
... etc.
Once the dev server is running,
- Upload a file:
devcam put file ~/camlistore/COPYING
- Create a permanode:
devcam put permanode
- Use the UI: http://localhost:3179/ui/
Before submitting a patch, you should check that all the tests pass with:
$ devcam test
Please update this file as appropriate.