2013-06-11 11:14:05 +00:00
|
|
|
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.
|
|
|
|
|
2013-06-11 14:02:32 +00:00
|
|
|
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/
|
2012-10-28 11:03:52 +00:00
|
|
|
|
2013-06-11 11:14:05 +00:00
|
|
|
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:
|
|
|
|
|
2013-08-14 16:59:31 +00:00
|
|
|
$ git clone https://camlistore.googlesource.com/camlistore
|
2013-06-11 11:14:05 +00:00
|
|
|
|
|
|
|
(We use github for distribution and collaboration with some people,
|
2013-07-02 16:35:51 +00:00
|
|
|
but the Gerrit git server & code review system is the main repo. See
|
|
|
|
http://camlistore.org/docs/contributing for how to use them.)
|
2013-06-11 11:14:05 +00:00
|
|
|
|
|
|
|
On Debian/Ubuntu, some deps to get started:
|
|
|
|
|
2013-07-01 23:02:45 +00:00
|
|
|
$ sudo apt-get install libsqlite3-dev sqlite3 pkg-config git
|
2013-06-11 11:14:05 +00:00
|
|
|
|
2013-08-04 21:28:14 +00:00
|
|
|
During development, rather than use the main binaries ("camput",
|
2013-09-04 02:56:42 +00:00
|
|
|
"camget", "camtool", "cammount", etc) directly, we instead use a
|
|
|
|
wrapper (devcam) that automatically configure the environment to use
|
|
|
|
the test server & test environment.
|
2012-12-07 22:14:31 +00:00
|
|
|
|
2013-09-04 02:56:42 +00:00
|
|
|
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.
|
2012-12-07 22:14:31 +00:00
|
|
|
|
2013-09-04 02:56:42 +00:00
|
|
|
Alternatively, if your Camlistore root is checked out at
|
|
|
|
$GOPATH/src/camlistore.org (optional, but natural for Go users), you
|
|
|
|
can just:
|
2013-07-29 13:59:53 +00:00
|
|
|
|
|
|
|
$ go install ./dev/devcam
|
|
|
|
|
2013-09-04 02:56:42 +00:00
|
|
|
The subcommands of devcam start the server or run camput/camget/etc:
|
2013-07-29 13:59:53 +00:00
|
|
|
|
2013-09-04 02:56:42 +00:00
|
|
|
$ devcam server # main server
|
|
|
|
$ devcam appengine # App Engine version of the server
|
|
|
|
$ devcam put # camput
|
|
|
|
$ devcam get # camget
|
2013-10-22 13:10:42 +00:00
|
|
|
$ devcam tool # camtool
|
|
|
|
$ devcam mount # cammount
|
2013-07-29 13:59:53 +00:00
|
|
|
|
2013-09-04 02:56:42 +00:00
|
|
|
Once the dev server is running,
|
2013-08-04 21:28:14 +00:00
|
|
|
|
|
|
|
- Upload a file:
|
2013-08-28 16:40:23 +00:00
|
|
|
devcam put file ~/camlistore/COPYING
|
2013-06-11 11:27:04 +00:00
|
|
|
- Create a permanode:
|
2013-08-28 16:40:23 +00:00
|
|
|
devcam put permanode
|
2013-06-11 11:27:04 +00:00
|
|
|
- Use the UI: http://localhost:3179/ui/
|
2012-12-07 22:14:31 +00:00
|
|
|
|
2013-09-11 17:51:07 +00:00
|
|
|
Before submitting a patch, you should check that all the tests pass with:
|
|
|
|
|
|
|
|
$ devcam test
|
|
|
|
|
2013-10-22 16:01:28 +00:00
|
|
|
You can use your usual git workflow to commit your changes, but for each
|
|
|
|
change to be reviewed you should merge your commits into one before submitting
|
2013-10-23 15:15:05 +00:00
|
|
|
to gerrit for review.
|
|
|
|
You should also try to write a meaningful commit message, which at least states
|
|
|
|
in the first sentence what part of camlistore this commit is affecting. The
|
|
|
|
following text should state what problem the change is addressing, and how.
|
|
|
|
An example would be:
|
2013-10-22 16:01:28 +00:00
|
|
|
|
2013-10-23 15:15:05 +00:00
|
|
|
"
|
|
|
|
HACKING: add tips about writing a commit message.
|
|
|
|
|
|
|
|
First time committers are not always aware about good commit message etiquette.
|
|
|
|
These few notes should help them.
|
|
|
|
"
|
2013-10-22 16:01:28 +00:00
|
|
|
|
|
|
|
You can optionally use our pre-commit hook so that your code gets gofmt'ed
|
|
|
|
before being submitted (which should be done anyway).
|
|
|
|
|
|
|
|
$ cd .git/hooks
|
|
|
|
$ ln -s ../../misc/pre-commit.githook pre-commit
|
|
|
|
|
2013-10-23 15:15:05 +00:00
|
|
|
Finally, submit your code to gerrit with:
|
|
|
|
|
|
|
|
$ ./misc/review
|
|
|
|
|
2013-06-11 11:27:04 +00:00
|
|
|
Please update this file as appropriate.
|