-
Notifications
You must be signed in to change notification settings - Fork 2
Contribution Guide
- nodejs ~> 4.0.0
- RethinkDB ~> 3.0
- Redis ~> 2.8
I DO NOT RECOMMEND WINDOWS. SEE CLOUD 9 ENTRY
While you are free to install these pieces of software in any way you so choose, I can detail the way I'm handling these dependencies. I use nodenv
to manage different versions of nodejs. It sits here and is installable via Homebrew (for OS X)]. There is also the nvm
application which is its equivalent.
brew install rethinkdb && brew install redis
will install the database dependencies on OS X. The databases should be in various Linux package managers as well. As far as Windows? There is a Redis 2.8 port done by an Open Tech group. RethinkDB straight up doesn't support Windows and their plans to do so are pretty far off. However, you can use something like Vagrant or Docker to have it run in an isolated environment and just expose and endpoint. See here: https://github.com/rethinkdb/rethinkdb/issues/1100
Follow this to setup Redis to run as a daemon: https://gist.github.com/kenzie/2881769
If you are running Windows as a platform then I suggest you install VirtualBox and just use Ubuntu or Antergos (I use Antergos on my personal laptop). I am also working on a Docker based instantly bootstrapped development environment.
It works really well on Linux and OS X but I'm not sure how well Boot2Docker works on Windows - especially in regards to volume management (which is used to load your ~/.ssh directory into the container). However, if the Docker team sets up ssh agent forwarding for Docker containers then that will be a moot point. Try it out and report back to me!
cloud9 is a perfect solution for a platform agnostic development environment. They combine an IDE, Linux VM, and terminal emulator in a smooth and decently put together web interface. However, you will need to touch the Linux VM they provide you with in order to get the prerequisites needed to run the application. Cloud9 will give a VM with nodejs and redis already installed but RethinkDB needs to be setup.
You can sign up with Cloud9 using your GitHub credentials and even pull down specific repositories and have Cloud9 automatically set it up!
- Install RethinkDB
- Redis comes preinstalled
- Write code!
- Prepare dependencies first with
npm install
. This will only need to be ran when dependencies change or on a freshly set up development environment. - Make sure that the Redis server and RethinkDB is running.
npm start
npm test
I suggest taking a look at the package.json file on the feature/reservoir-crawler branch. NPM defines the test commands used under the hood so you'll see what happens when you run the aforementioned command.
I personally use git flow to control how developed features are merged into branches and setting a good foundation for later continuous integration practices. While you do not to use the same tool, I will try my best to enforce the idea that developed features need to be merged into a staging or development branches for functional testing.
If you're code isn't tested, then it will not be merged. That is pretty much final. However, you are free to determine what kind of tests and the overall test coverage as a developer. Keep in mind though, that if your tests are just using console.log
to check changes then it may not get merged. Test quality is as important as code quality.