summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2016-07-05 09:27:35 +0200
committerAzul <azul@riseup.net>2016-07-05 09:27:35 +0200
commit8666b74ce75856421a87d25452aafaa9301de3fd (patch)
tree38f4f1b2d54c8c4ff6b1bc07616cadff1271de4b /doc
parent949e17c7c30c5b179ba6545782ae995178481f78 (diff)
parentbf77b0b1f53753ba239ef8c2668bc76603cd96e5 (diff)
Merge remote-tracking branch 'pr/225' into develop
Fix install issue and update the documentation During the rails 4 update db:migrate stopped working because the way couchrest loads all models broke. This includes a fix and also updates the install instructions. I tried to separate advanced topics in development from the others by marking the sections (advanced) in doc/DEVELOP.md
Diffstat (limited to 'doc')
-rw-r--r--doc/DEPLOY.md9
-rw-r--r--doc/DEVELOP.md41
-rw-r--r--doc/TROUBLESHOOT.md14
3 files changed, 48 insertions, 16 deletions
diff --git a/doc/DEPLOY.md b/doc/DEPLOY.md
index 33d5598..4d59701 100644
--- a/doc/DEPLOY.md
+++ b/doc/DEPLOY.md
@@ -1,5 +1,10 @@
# Deployment #
+LEAP Web is provisioned and run as part of the overall [LEAP platform](https://leap.se/en/docs/platform).
+We strongly recomment using the whole Platform and following its instructions.
+If you want to directly deploy the webapp never the less these instructions are
+for you.
+
These instructions are targeting a Debian GNU/Linux system. You might need to
change the commands to match your own needs.
@@ -10,9 +15,9 @@ change the commands to match your own needs.
The following packages need to be installed:
* git
-* ruby1.9
-* rubygems1.9
+* ruby (2.1.5)
* couchdb (if you want to use a local couch)
+* bundler
### Setup Capistrano ###
diff --git a/doc/DEVELOP.md b/doc/DEVELOP.md
index cdd0867..97ecd25 100644
--- a/doc/DEVELOP.md
+++ b/doc/DEVELOP.md
@@ -1,5 +1,19 @@
# Development #
+## Branches
+
+We use the 'master' branch to hold the version currently deployed to the
+production servers. Only hotfixes are applied here.
+
+Most of development happens based upon the 'develop' branch. So unless
+you are investigating a specific issue that occured in production you
+probably want to base your changes on 'develop':
+```
+git checkout origin/develop -b my-new-feature
+```
+This will create a new branch called 'my-new-feature' based on the develop
+branch from the origin remote.
+
## Setting up the local CouchDB
CouchDB operates in Admin Party by default, meaning there are no access
@@ -7,17 +21,24 @@ control checks. This is handy for local development. However, there is
the risk that running tests with Couch in Admin Party yields false
results.
-You have two options:
+We recommend keeping the default CouchDB configuration locally and testing
+the more complex setup with access control in Continuous Integration.
-1) Use Admin Party and accept the risk
-2) Stop Admin Party by creating user accounts & security docs by running the
-following script:
+Please see .travis.yml for the configuration of our CI runs.
- test/travis/setup_couch.sh
+In order to prepare you local couch for development run
+```
+bin/rake db:rotate
+bin/rake db:migrate
+```
-### Database configuration
+### Customized database configuration (advanced)
+
+If you want to stop Admin Party mode you need to create user accounts &
+security docs. You can use the following script as a guideline:
+ test/travis/setup_couch.sh
-Copy & adapt the default database configuration:
+Afterwards copy & adapt the default database configuration:
```
mv config/couchdb.example.yml config/couchdb.yml
@@ -37,14 +58,14 @@ Some tips on modifying the views:
## Engines ##
-Leap Web contains some. They live in their own subdirectory and are included through bundler via their path. This way changes to the engines immediately affect the server as if they were in the main `app` directory.
+We use engines to separate optional functionality from the core. They live in their own subdirectory and are included through bundler via their path. This way changes to the engines immediately affect the server as if they were in the main `app` directory.
Currently Leap Web includes 2 Engines:
* [support](https://github.com/leapcode/leap_web/blob/master/engines/support) - Help ticket management
* [billing](https://github.com/leapcode/leap_web/blob/master/engines/billing) - Billing System
-## Creating a new engine ##
+## Creating a new engine (advanced) ##
If you want to add functionality to the webapp but keep it easy to remove you might consider adding an engine. This only makes sense if your engine really is a plugin - so no other pieces of code depend on it.
@@ -99,7 +120,7 @@ For example:
visit robot_path(@robot, :locale => nil)
end
-## Debugging
+## Debugging Production (advanced)
Sometimes bugs only show up when deployed to the live production server. Debugging can be tricky,
because the open source mod_passenger does not support debugger. You can't just run
diff --git a/doc/TROUBLESHOOT.md b/doc/TROUBLESHOOT.md
index f3db006..0e2957d 100644
--- a/doc/TROUBLESHOOT.md
+++ b/doc/TROUBLESHOOT.md
@@ -13,15 +13,19 @@ Here are some less common issues you might run into when installing Leap Web.
Make sure bundler is installed. `gem list bundler` should list `bundler`.
You also need to be able to access the `bundler` executable in your PATH.
-## Outdated version of rubygems ##
+## Incompatible ruby version ##
-### Error Messages ###
+### Detecting the problem ###
+The rubyversion we use for development and testing is noted in the file
+
+ .ruby-version
-`bundler requires rubygems >= 1.3.6`
+It should match what `ruby --version` prints.
### Solution ###
-`gem update --system` will install the latest rubygems
+Install the matching ruby version. For some operation systems this may require
+the use of rbenv or rvm.
## Missing development tools ##
@@ -42,5 +46,7 @@ Some gem dependencies might not compile because they lack the needed c libraries
### Solution ###
Install the libraries in question including their development files.
+Usually the missing library is mentioned in the error message. Searching the
+internet for similar errors is a good starting point aswell.