blob: bd4a3f330942a561f04522cdc42aa48a95081941 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
 | # Installation Guide
This guide is based on mac/OS with [Homebrew](https://brew.sh/) and [RVM](https://rvm.io/)
## Ruby
Get a correct `.ruby-version` (Can we remove it from `.gitignore`?)
and install that version.
Example with [rvm](https://rvm.io/):
        rvm install 2.3.1
Add the bundler gem
        gem install bundler
Go into your local repro and install the gems
        bundle
### Installation Caveats
#### Node Related Issue, libv8
`libv8` might cause you troubles, depending on your local configuration. If you have `libv8` installed (probably because of `node.js`) you might need to tell bundler/Rubygems to use the system version.
        bundle config build.libv8 --with-system-v8
        bundle
or
        gem install libv8 -v '<version>' -- --with-system-v8
        bundle
You will get the correct value of `<version>` from bundler's error message.
#### Node Related Issue, therubyracer
Even after `libv8` installation working, the gem `therubyracer` might not like the `libv8` version chosen.
In that case however we can let the gem make its own choice:
        gem uninstall libv8
        gem install therubyracer -v '<version>'
The version to be installed is indicated in the error message bundler gave us in the first place.
This will install an appropriate `libv8` version and we can continue with `bundle`.
## Rails
### Dependencies
As documented [here](https://github.com/dryade/georuby-ext/issues/2) we need some more libs before we can start the `rake` setup tasks. On mac/OS the easiest way is just to install `postgis` now with `homebrew` as this will
install all needed libraries.
Also if on Linux you might discover a problem as late as when launching `rake`.
In case of a stacktrace similar to this one
```
$ bundle exec rake --trace -T
rake aborted!
LoadError: library names list must not be empty
```
you need to install `libproj4-dev` on your system.
### Postgres
#### Create user
      createuser -s -U $USER -P chouette
                  ^    ^      ^
                  |    |      +---- prompt for passwd
                  |    +----- as your default postgres user (remove in case of different config)
                  +---------- superuser
When promted for the password enter the highly secure string `chouette`.
#### Create database
      bundle exec rake db:create
      bundle exec rake db:migrate
      RAILS_ENV=test bundle exec rake db:create
      RAILS_ENV=test bundle exec rake db:migrate
#### Install node.js packages
      bundle exec rake npm:install
#### Check installation
* Run tests
      bundle exec rake spec
      bundle exec rake teaspoon
* Start local server
      bundle exec rails server
### Authentication
See `config.chouette_authentication_settings`.
Use the database authentication or get an invitation to [STIF Portail](http://stif-portail-dev.af83.priv/).
### Run seed
#### Basic Database Content
      bundle exec rake db:seed
Two users are created : stif-boiv@af83.com/secret and stif-boiv+transporteur@af83.com/secret
#### Synchronize With STIF
If you have access to STIF CodifLigne and Reflex :
* Launch Sidekiq
      bundle exec sidekiq
* Execute the Synchronization Tasks
      bundle exec rake codifligne:sync
      bundle exec rake reflex:sync
**N.B.** These are asynchronious tasks, you can observe the launched jobs in your [Sidekiq Console](http://localhost:3000/sidekiq)
#### Data in various Apartments (Referentials)
To create `Referential` objects with some data (`Route`, `JourneyPattern`, `VehicleJourney`, etc) :
      bundle exec rake referential:create
# Troubleshooting
## Postgres
If Postgres complains about illegal type `hstore` in your tests that is probably because the shared extension is not installed, here is what to do:
      bundle exec rake db:test:purge
Thanks to `lib/tasks/extensions.rake`.
## macOS
### Nokogiri
http://www.nokogiri.org/tutorials/installing_nokogiri.html tells us that `xz` can cause troubles, here is what to do 
```
brew unlink xz
gem install nokogiri # or bundle install
brew link xz
```
 |