summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Shelhamer <shelhamer@imaginarynumber.net>2014-02-28 13:01:11 -0800
committerEvan Shelhamer <shelhamer@imaginarynumber.net>2014-02-28 13:03:14 -0800
commit857c6ac5f1eac9be0aea97f6c5e303e9ec4f6fa6 (patch)
tree67cdac5ad0382095aece024fac642bd4cc6737fd
parentca4a6c1afae515fa891eddf3bc394b7fec46051f (diff)
downloadcaffeonacl-857c6ac5f1eac9be0aea97f6c5e303e9ec4f6fa6.tar.gz
caffeonacl-857c6ac5f1eac9be0aea97f6c5e303e9ec4f6fa6.tar.bz2
caffeonacl-857c6ac5f1eac9be0aea97f6c5e303e9ec4f6fa6.zip
Draft development guidelines, link from README
-rw-r--r--README.md2
-rw-r--r--docs/development.md45
-rw-r--r--docs/index.md1
3 files changed, 48 insertions, 0 deletions
diff --git a/README.md b/README.md
index 4b5153b9..586c4129 100644
--- a/README.md
+++ b/README.md
@@ -74,6 +74,8 @@ Our workflow is this:
* Code must be accompanied by documentation and tests at all times.
* Only fast-forward merges will be accepted.
+See our [development guidelines](http://caffe.berkeleyvision.org/development.html) for further details–the more closely these are followed, the sooner your work will be merged.
+
#### [Shelhamer's](https://github.com/shelhamer) “life of a branch in four acts”
Make the `feature` branch off of the latest `bvlc/dev`
diff --git a/docs/development.md b/docs/development.md
new file mode 100644
index 00000000..459e1d65
--- /dev/null
+++ b/docs/development.md
@@ -0,0 +1,45 @@
+---
+layout: default
+title: Caffe
+---
+
+Developing & Contributing
+=========================
+
+Caffe is developed with active participation of the community by the [Berkeley Vision and Learning Center](http://bvlc.eecs.berkeley.edu/).
+We welcome all contributions!
+
+The [contributing workflow](https://github.com/BVLC/caffe#contributing) is explained in the README. These guidelines cover development practices in Caffe. This is a work-in-progress.
+
+**Development Flow**
+
+- `master` is golden.
+- `dev` is for new development: it is the branching point for features and the base of pull requests.
+ * The history of `dev` is not rewritten.
+ * Contributions are shepherded from `dev` to `master` by BVLC by merge.
+- To err is human. Accidents are fixed by reverts.
+- Releases are marked with tags on merge from `dev` to `master`.
+
+**Issues & Pull Request Protocol**
+
+0. Make issues for [bugs](https://github.com/BVLC/caffe/issues?labels=bug&page=1&state=open), tentative proposals, and [questions](https://github.com/BVLC/caffe/issues?labels=question&page=1&state=open).
+1. Make PRs to signal development:
+ a. Make PRs *as soon as development begins*. Create a feature branch, make your initial commit, push, and PR to let everyone know you are working on it and let discussion guide development instead of review development after-the-fact.
+ b. When a proposal from the first step earns enough interest to warrant development, make a PR, and reference and close the old issue to direct the conversation to the PR.
+2. When a PR is ready, comment to request a maintainer be assigned to review and merge to `dev`.
+
+A PR is only ready for review when the code is committed, documented, linted, and tested!
+
+**Documentation**: the documentation is bundled with Caffe in `docs/`. This includes the site you are reading now. Contributions should be documented both inline in code and through usage examples. New documentation is published by BVLC with each release and between releases as-needed.
+
+We'd appreciate your contribution to the documentation effort!
+
+**Testing**: run `make runtest` to check the project tests. New code requires new tests. Pull requests that fail tests will not be accepted.
+
+**Style**
+
+- Follow [Google C++ style](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml) and [Google python style](http://google-styleguide.googlecode.com/svn/trunk/pyguide.html) + [PEP 8](http://legacy.python.org/dev/peps/pep-0008/).
+- Wrap lines at 80 chars.
+- Remember that “a foolish consistency is the hobgoblin of little minds,” so use your best judgement to write the clearest code for your particular case.
+
+**Lint**: run `make lint` to check C++ code.
diff --git a/docs/index.md b/docs/index.md
index 5cf2c978..49c33279 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -32,6 +32,7 @@ Quick Links
* [Presentation](https://docs.google.com/presentation/d/1lzyXMRQFlOYE2Jy0lCNaqltpcCIKuRzKJxQ7vCuPRc8/edit?usp=sharing): Presentation on Caffe at the UC Berkeley Vision Group meeting.
* [Installation](installation.html): Instructions on installing Caffe (tested on Ubuntu 12.04, but works on Red Hat, OS X, etc.).
+* [Development](development.html): Guidelines for development and contributing to Caffe.
* [MNIST Demo](mnist.html): example of end-to-end training and testing on the MNIST data.
* [Training ImageNet](imagenet_training.html): tutorial on end-to-end training of an ImageNet classifier.
* [Running Pretrained ImageNet](imagenet_pretrained.html): simply runs in Python!