geordi 3.1.0 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +66 -11
  5. data/Gemfile.lock +1 -1
  6. data/README.md +127 -132
  7. data/Rakefile +18 -8
  8. data/exe/dumple +10 -0
  9. data/geordi.gemspec +1 -0
  10. data/lib/geordi/COMMAND_TEMPLATE +4 -2
  11. data/lib/geordi/cli.rb +1 -1
  12. data/lib/geordi/commands/bundle_install.rb +1 -1
  13. data/lib/geordi/commands/capistrano.rb +1 -1
  14. data/lib/geordi/commands/chromedriver_update.rb +2 -2
  15. data/lib/geordi/commands/commit.rb +1 -6
  16. data/lib/geordi/commands/console.rb +12 -6
  17. data/lib/geordi/commands/create_databases.rb +7 -5
  18. data/lib/geordi/commands/cucumber.rb +17 -12
  19. data/lib/geordi/commands/delete_dumps.rb +0 -1
  20. data/lib/geordi/commands/deploy.rb +17 -17
  21. data/lib/geordi/commands/drop_databases.rb +0 -6
  22. data/lib/geordi/commands/dump.rb +10 -19
  23. data/lib/geordi/commands/firefox.rb +3 -6
  24. data/lib/geordi/commands/migrate.rb +4 -4
  25. data/lib/geordi/commands/rake.rb +7 -3
  26. data/lib/geordi/commands/rspec.rb +8 -12
  27. data/lib/geordi/commands/security_update.rb +24 -25
  28. data/lib/geordi/commands/server.rb +4 -4
  29. data/lib/geordi/commands/setup.rb +7 -16
  30. data/lib/geordi/commands/shell.rb +7 -4
  31. data/lib/geordi/commands/tests.rb +4 -4
  32. data/lib/geordi/commands/unit.rb +3 -3
  33. data/lib/geordi/commands/update.rb +4 -15
  34. data/lib/geordi/commands/vnc.rb +2 -4
  35. data/lib/geordi/commands/with_rake.rb +3 -3
  36. data/lib/geordi/commands/yarn_install.rb +1 -1
  37. data/lib/geordi/cucumber.rb +7 -5
  38. data/lib/geordi/dump_loader.rb +1 -1
  39. data/lib/geordi/gitpt.rb +10 -52
  40. data/lib/geordi/interaction.rb +1 -1
  41. data/lib/geordi/remote.rb +16 -4
  42. data/lib/geordi/settings.rb +155 -0
  43. data/lib/geordi/util.rb +36 -18
  44. data/lib/geordi/version.rb +1 -1
  45. metadata +7 -33
  46. data/exe/cap-all +0 -4
  47. data/exe/console-for +0 -4
  48. data/exe/cuc +0 -4
  49. data/exe/cuc-show +0 -4
  50. data/exe/cuc-vnc-setup +0 -4
  51. data/exe/deploy-to-production +0 -4
  52. data/exe/dump-for +0 -8
  53. data/exe/gitpt +0 -4
  54. data/exe/load-dump +0 -4
  55. data/exe/migrate-all +0 -4
  56. data/exe/rs +0 -4
  57. data/exe/run_tests +0 -4
  58. data/exe/shell-for +0 -4
  59. data/exe/tests +0 -4
  60. data/lib/geordi/commands/eurest.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f2ea989e784592d99136278e2e7aeca1329d56460590dd0de0c713839d007f4
4
- data.tar.gz: c3c001d594fa572a4c562cb91c8796ca1f1170fbfb0168be4f5ec2efaac87556
3
+ metadata.gz: 2af11b387f28e87fc2cb89172b1ea8fdcd87dc4bc62697c18ba4a7cc8ddada28
4
+ data.tar.gz: c0612fe6e8f266a3b5e5a467018b5f6e484224944057ddd323c9162a0b64d858
5
5
  SHA512:
6
- metadata.gz: c516cd2e6716be0c8e487b5aea0ff741e8d4f99660ee1f9bc2c2277abe275f5b07a31ecd79392cb94c3b804c6357391077d27acd36d8511a1b9dd510baa88e49
7
- data.tar.gz: be170bc924f84b7ea056a394348cef9aa24b4b89c2696ef4a400713ca03dad509e446c048217a5626390a459eafaaa52b63212d5990f6898b644acc120fb28c3
6
+ metadata.gz: e96089335890efaf9e8ea9a0cabea1c4a6447e363513f61fa2e2fe55f43637ca24906fd3732fd3eb0b5adb752bd2a752a263a0be772bedba1b7115e69425b5d2
7
+ data.tar.gz: bad860e3b8a14d06970351213fda638e2b853dfbf107ea6b6f4e018cd2ecdbb767848a2ebdec34757f3c5a9d47e8a2a3181ac40c729b1b3a9cbb26e62aaf1613
data/.gitignore CHANGED
@@ -3,6 +3,5 @@
3
3
  .idea
4
4
  pkg/*
5
5
  .DS_Store
6
- .pt_project_id
7
6
  tmp
8
7
  .byebug_history
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.5
@@ -1,39 +1,96 @@
1
1
  # Changelog
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
5
  This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
6
 
6
-
7
7
  ## Unreleased
8
+ ### Compatible changes
9
+ ### Breaking changes
10
+
8
11
 
12
+ ## 4.1.1 2020-08-28
9
13
  ### Compatible changes
10
14
 
11
- ### Breaking changes
15
+ * Fixed: System calls are not executed properly if no bin stub is present. This resulted in errors like:
12
16
 
17
+ ```
18
+ % geordi rspec
13
19
 
14
- ## 3.1.0 2020-06-03
20
+ # Running specs
21
+ > All specs at once (using parallel_tests)
22
+
23
+ x Specs failed.
24
+ ```
25
+
26
+ or
27
+
28
+ ```
29
+ % geordi migrate
30
+
31
+ # Migrating
32
+ > Development and parallel test databases
33
+
34
+ x Something went wrong.
35
+ ```
36
+
37
+
38
+ ## 4.1.0 2020-08-18
15
39
 
16
40
  ### Compatible changes
17
41
 
18
- - Update security-update for improved workflow (#89): Deploy staging first and ask user, if application is still running. Then deploy other stages.
42
+ - Added dumple option `--compress` to compress after dumping
43
+
44
+ ## 4.0.1 2020-08-11
45
+
46
+ ### Compatible changes
47
+
48
+ - Fix `geordi migrate` command, that fails with:
49
+
50
+ ```
51
+ Don't know how to build task 'db:migrate parallel:prepare'
52
+ ```
53
+
54
+
55
+ ## 4.0.0 2020-07-30
56
+
57
+ ### Compatible changes
58
+ - Improved documentation; README now includes command options.
59
+ - Fix #90: `geordi console`, `geordi deploy`, `geordi rake` and `geordi shell` now work correctly if the project hasn't been bundled before
19
60
 
20
61
  ### Breaking changes
62
+ - Removed deprecated executables
63
+ - Removed `eurest` command
64
+ - Respect binstubs if available, otherwise fallback to geordi's previous behaviour. Note that this might cause failures, when your binstubs are not working. Please have a look at #109 for how a failure might look like and how you can fix it.
21
65
 
22
66
 
23
- ## 3.0.3 2020-05-27
67
+ ## 3.2.0 2020-07-15
24
68
 
25
69
  ### Compatible changes
70
+ - Improvement #43: `--select-server` option on `geordi shell` and `geordi console` can take the number of the server to connect to it directly and to skip the menu.
71
+ - Add a `.geordi.yml` file to change multiple settings in the project and `~/.config/geordi/global.yml` for global settings.
72
+ - Deprecated the `.pt_project_id` file in favor of `.geordi.yml`.
73
+ - Deprecated the `~/.gitpt` file in favor of `~/.config/geordi/global.yml`.
74
+ - Add #91: Now there is an option to start cucumber without a VNC session. This is configured by the .geordi.yml file.
75
+ - Fixed `git#staged_changes?` detection on Ruby < 2.5.
26
76
 
27
- - Fix #98: Changing the `config/database.yml` reader from `YAML.load` to `YAML.safe_load` dropped the support for aliases. We now allow aliases and the classes `Time` and `Symbol`. If we encounter further issues with this approach a revert to `YAML.load` would be an option, too.
28
77
 
78
+ ## 3.1.0 2020-06-03
29
79
 
30
- ## 3.0.2 2020-05-18
80
+ ### Compatible changes
81
+ - Update security-update for improved workflow (#89): Deploy staging first and ask user, if application is still running. Then deploy other stages.
82
+
83
+
84
+ ## 3.0.3 2020-05-27
31
85
 
32
86
  ### Compatible changes
87
+ - Fix #98: Changing the `config/database.yml` reader from `YAML.load` to `YAML.safe_load` dropped the support for aliases. We now allow aliases and the classes `Time` and `Symbol`. If we encounter further issues with this approach a revert to `YAML.load` would be an option, too.
33
88
 
34
- - Fix #95: Method change from `! *.include?` to `*.exclude?` was not valid as we do not have active support in Geordi. Affected commands where `geordi cucumber` and `geordi deploy`.
35
89
 
36
- ### Breaking changes
90
+ ## 3.0.2 2020-05-18
91
+
92
+ ### Compatible changes
93
+ - Fix #95: Method change from `! *.include?` to `*.exclude?` was not valid as we do not have active support in Geordi. Affected commands were `geordi cucumber` and `geordi deploy`.
37
94
 
38
95
 
39
96
  ## 3.0.1 2020-05-13
@@ -45,8 +102,6 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
45
102
 
46
103
  ## 3.0.0 2020-05-04
47
104
 
48
- ### Compatible changes
49
-
50
105
  ### Breaking changes
51
106
  - Remove support for Ruby 1.8.7 and Ruby 1.9.3. Bug fixes might still be backported to 2.x, but we will not add any features to 2.x anymore. Please consider to upgrade the Ruby version of your project.
52
107
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- geordi (3.1.0)
4
+ geordi (4.1.1)
5
5
  thor (~> 1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -19,82 +19,89 @@ You may abbreviate commands by typing only their first letters, e.g. `geordi
19
19
  con` will boot a development console, `geordi set -t` will setup a project and
20
20
  run tests afterwards.
21
21
 
22
- For details on commands, e.g. supported options, you may always run
23
- `geordi help <command>`.
22
+ You can always run `geordi help <command>` to quickly look up command help.
24
23
 
25
24
  ### `geordi apache-site VIRTUAL_HOST`
26
-
27
25
  Enable the given virtual host, disabling all others.
28
26
 
29
27
 
30
28
  ### `geordi capistrano COMMAND`
31
-
32
29
  Run a capistrano command on all deploy targets.
33
30
 
34
31
  Example: `geordi capistrano deploy`
35
32
 
36
33
 
37
34
  ### `geordi chromedriver-update`
38
-
39
35
  Update the chromedriver.
40
36
 
41
37
  Example: `geordi chromedriver_update`
42
38
 
43
- This command will find and install the matching chromedriver for the currently installed Chrome.
39
+ This command will find and install the matching chromedriver for the currently
40
+ installed Chrome.
44
41
 
45
42
 
46
43
  ### `geordi clean`
47
-
48
44
  Remove unneeded files from the current directory.
49
45
 
50
46
 
51
47
  ### `geordi commit`
52
-
53
48
  Commit using a story title from Pivotal Tracker.
54
49
 
55
50
  Example: `geordi commit`
56
51
 
57
52
  Any extra arguments are forwarded to `git commit -m <message>`.
58
53
 
59
- If there are no staged changes, prints a warning but will continue to create
60
- an empty commit.
61
-
62
54
  On the first execution we ask for your Pivotal Tracker API token. It will be
63
- stored in `~/.gitpt`.
55
+ stored in `~/.config/geordi/global.yml`.
64
56
 
65
57
 
66
58
  ### `geordi console [TARGET]`
67
-
68
59
  Open a Rails console locally or on a Capistrano deploy target.
69
60
 
70
- Open a local Rails console: `geordi console`
61
+ Local (development): `geordi console`
71
62
 
72
- Open a Rails console on `staging`: `geordi console staging`
63
+ Remote: `geordi console staging`
73
64
 
65
+ Selecting the server: `geordi console staging -s` shows a menu with all available
66
+ servers. When passed a number, directly connects to the selected server.
74
67
 
75
- ### `geordi cucumber [FILES and OPTIONS]`
68
+ **Options**
69
+ - `-s, [--select-server=[SERVER_NUMBER]]`: Select a server to connect to
76
70
 
71
+
72
+ ### `geordi cucumber [FILES and OPTIONS]`
77
73
  Run Cucumber features.
78
74
 
79
75
  Example: `geordi cucumber features/authentication_feature:3`
80
76
 
81
- Runs Cucumber as you want: with `bundle exec`, using parallel tests, with
82
- a VNC session holding Selenium test browsers, support for using a dedicated
83
- testing firefox and beta support for rerunning failed scenarios.
77
+ Runs Cucumber with `bundle exec`, using parallel tests, with a VNC session
78
+ holding Selenium test browsers, support for using a dedicated testing browser
79
+ and beta support for re-running failed scenarios.
84
80
 
85
81
  - *@solo:* Generally, features are run in parallel. However, scenarios tagged
86
- with @solo are excluded and will be run sequentially, _after_ the parallel run.
82
+ with @solo are excluded from the parallel run and executed sequentially instead.
87
83
 
88
- - *Debugging:* Sometimes, the dot-printing Cucumber formatter does not show
89
- errors. In case a feature fails without a message, try running it with `--debug`
90
- or `-d`.
84
+ - *Debugging:* In some cases, the dot-printing Cucumber formatter swallows
85
+ errors. In case a feature fails without an error message, try running it with
86
+ `--debug` or `-d`.
91
87
 
92
88
  - *Options:* Any unknown option will be passed through to Cucumber,
93
- e.g. `--format pretty`.
89
+ e.g. `--format=pretty`. Make sure to connect option and value with an equals
90
+ sign, i.e. have each option a contiguous string.
94
91
 
92
+ - *VNC:* By default, test browsers will run in a VNC session. When using a
93
+ headless test browser anyway, you can disable VNC by setting `use_vnc: false`
94
+ in `.geordi.yml` in the project root.
95
+
96
+ **Options**
97
+ - `-m, [--modified], [--no-modified]`: Run all modified features
98
+ - `-c, [--containing=STRING]`: Run all features that contain STRING
99
+ - `-v, [--verbose], [--no-verbose]`: Show the test run command
100
+ - `-d, [--debug], [--no-debug]`: Run Cucumber with `-f pretty -b`, which helps hunting down bugs
101
+ - `-r, [--rerun=N]`: Rerun features up to N times while failing
95
102
 
96
- ### `geordi delete-dumps [DIRECTORY]`
97
103
 
104
+ ### `geordi delete-dumps [DIRECTORY]`
98
105
  Delete database dump files (*.dump).
99
106
 
100
107
  Example: `geordi delete_dumps` or `geordi delete_dumps ~/tmp/dumps`
@@ -107,7 +114,6 @@ Geordi will ask for confirmation before actually deleting files.
107
114
 
108
115
 
109
116
  ### `geordi deploy [STAGE]`
110
-
111
117
  Guided deployment across branches.
112
118
 
113
119
  Example: `geordi deploy` or `geordi deploy p[roduction]` or `geordi deploy --current-branch`
@@ -115,18 +121,18 @@ Example: `geordi deploy` or `geordi deploy p[roduction]` or `geordi deploy --cur
115
121
  Merge, push and deploy with a single command! **It always tells what it will do
116
122
  before it does it.** There are different scenarios where this command is handy:
117
123
 
118
- 1) *Production deploy:* From the master branch, run `geordi deploy production`.
119
- This will merge `master` to `production`, push and deploy to production.
124
+ - *Production deploy:* From the master branch, run `geordi deploy production`.
125
+ This will merge `master` to `production`, push and deploy to production.
120
126
 
121
- 2) *Feature branch deploy:* From a feature branch, run `geordi deploy staging`.
122
- This will merge the feature branch to `master`, push and deploy to staging.
127
+ - *Feature branch deploy:* From a feature branch, run `geordi deploy staging`.
128
+ This will merge the feature branch to `master`, push and deploy to staging.
123
129
 
124
- To deploy a feature branch directly without merging, run
125
- `geordi deploy --current-branch`. This feature depends on the environment
126
- variable `DEPLOY_BRANCH` to be picked up in the respective deploy file.
130
+ To deploy a feature branch directly without merging, run
131
+ `geordi deploy --current-branch`. This feature depends on the environment
132
+ variable `DEPLOY_BRANCH` to be picked up in the respective deploy file.
127
133
 
128
- 3) *Simple deploy:* If the source branch matches the target branch, merging will
129
- be skipped.
134
+ - *Simple deploy:* If the source branch matches the target branch, merging will
135
+ be skipped.
130
136
 
131
137
  Calling the command without arguments will infer the target stage from the
132
138
  current branch and fall back to master/staging.
@@ -139,9 +145,12 @@ When your project is running Capistrano 3, deployment will use `cap deploy`
139
145
  instead of `cap deploy:migrations`. You can force using `deploy` by passing the
140
146
  -M option: `geordi deploy -M staging`.
141
147
 
148
+ **Options**
149
+ - `-M, [--no-migrations], [--no-no-migrations]`: Run cap deploy instead of cap deploy:migrations
150
+ - `-c, [--current-branch], [--no-current-branch]`: Set DEPLOY_BRANCH to the current branch during deploy
142
151
 
143
- ### `geordi drop-databases`
144
152
 
153
+ ### `geordi drop-databases`
145
154
  Interactively delete local databases.
146
155
 
147
156
  Example: `geordi drop_databases`
@@ -151,61 +160,52 @@ and offer to delete them. Excluded are databases that are whitelisted. This come
151
160
  in handy when you're keeping your currently active projects in the whitelist files
152
161
  and perform regular housekeeping with Geordi.
153
162
 
154
- When called with `-P` or `-M` options, only handles Postgres resp. MySQL/MariaDB.
155
-
156
- When called with `--postgres <port or local socket>` or `--mysql <port or local socket>`,
157
- will instruct the underlying management commands to use those connection methods
158
- instead of the defaults. This is useful when running multiple installations.
159
-
160
163
  Geordi will ask for confirmation before actually dropping databases and will
161
164
  offer to edit the whitelist instead.
162
165
 
166
+ **Options**
167
+ - `-P, [--postgres-only], [--no-postgres-only]`: Only clean Postgres
168
+ - `-M, [--mysql-only], [--no-mysql-only]`: Only clean MySQL/MariaDB
169
+ - `[--postgres=PORT_OR_SOCKET]`: Use Postgres port or socket
170
+ - `[--mysql=PORT_OR_SOCKET]`: Use MySQL/MariaDB port or socket
163
171
 
164
- ### `geordi dump [TARGET]`
165
-
166
- Handle dumps (see `geordi help dump` for details).
167
-
168
- When called without arguments, dumps the development database with `dumple`.
169
-
170
- geordi dump
171
172
 
172
- When called with the `--load` option, sources the specified dump into the
173
- development database.
173
+ ### `geordi dump [TARGET]`
174
+ Handle (remote) database dumps.
174
175
 
175
- geordi dump -l tmp/staging.dump
176
+ `geordi dump` (without arguments) dumps the development database with `dumple`.
176
177
 
177
- When called with a capistrano deploy target (e.g. `staging`), remotely dumps
178
- the specified target's database and downloads it to `tmp/`.
178
+ `geordi dump -l tmp/staging.dump` (with the `--load` option) sources the
179
+ specified dump file into the development database.
179
180
 
180
- geordi dump staging
181
+ `geordi dump staging` (with a Capistrano deploy target) remotely dumps the
182
+ specified target's database and downloads it to `tmp/`.
181
183
 
182
- When called with a capistrano deploy target and the `--load` option, sources the
183
- dump into the development database after downloading it.
184
+ `geordi dump staging -l` (with a Capistrano deploy target and the `--load`
185
+ option) sources the dump into the development database after downloading it.
184
186
 
185
- geordi dump staging -l
187
+ **Options**
188
+ - `-l, [--load=[DUMP_FILE]]`: Load a dump
186
189
 
187
190
 
188
191
  ### `geordi firefox COMMAND`
189
-
190
192
  Run a command with VNC and test browser set up (alias: chrome).
191
193
 
192
194
  Example: `geordi firefox b cucumber` or `geordi firefox --setup 24.0`
193
195
 
194
196
  Useful when you need Firefox for Selenium or the VNC set up, but can't use the
195
- `geordi cucumber` command.
197
+ `geordi cucumber` command. This command is aliased `chrome` for users running
198
+ Selenium in Chrome.
196
199
 
197
- *Install* a special Firefox by calling with `--setup <version>`.
198
-
199
- This command is aliased `chrome` for users running Selenium in Chrome.
200
+ **Options**
201
+ - `[--setup=FIREFOX_VERSION]`: Install a special test runner Firefox with the given version
200
202
 
201
203
 
202
204
  ### `geordi help [COMMAND]`
203
-
204
205
  Describe available commands or one specific command.
205
206
 
206
207
 
207
208
  ### `geordi migrate`
208
-
209
209
  Migrate all databases.
210
210
 
211
211
  Example: `geordi migrate`
@@ -216,7 +216,6 @@ with `db:migrate`.
216
216
 
217
217
 
218
218
  ### `geordi png-optimize PATH`
219
-
220
219
  Optimize .png files.
221
220
 
222
221
  Example: `geordi png-optimize some/directory`
@@ -227,7 +226,6 @@ Example: `geordi png-optimize some/directory`
227
226
 
228
227
 
229
228
  ### `geordi rake TASK`
230
-
231
229
  Run a rake task in several Rails environments.
232
230
 
233
231
  Example: `geordi rake db:migrate`
@@ -240,59 +238,56 @@ Example: `geordi rake db:migrate`
240
238
 
241
239
 
242
240
  ### `geordi remove-executable-flags`
243
-
244
241
  Remove executable-flags from files that should not be executable.
245
242
 
246
243
 
247
244
  ### `geordi rspec [FILES]`
248
-
249
245
  Run RSpec.
250
246
 
251
247
  Example: `geordi rspec spec/models/user_spec.rb:13`
252
248
 
253
- Runs RSpec as you want: with RSpec 1/2 detection, `bundle exec`, rspec_spinner
254
- detection, etc.
249
+ Runs RSpec with RSpec 1/2 support, parallel_tests detection and `bundle exec`.
255
250
 
256
251
 
257
252
  ### `geordi security-update [STEP]`
258
-
259
253
  Support for performing security updates.
260
254
 
261
- Preparation for security update: `geordi security-update`
262
-
263
- Checks out production and pulls.
255
+ Preparation for security update: `geordi security-update`. Checks out production
256
+ and pulls.
264
257
 
265
- After performing the update: `geordi security-update finish`
258
+ After performing the update: `geordi security-update finish`. Switches branches,
259
+ pulls, pushes and deploys as required by our workflow.
266
260
 
267
- Switches branches, pulls, pushes and deploys as required by our workflow. Tells
268
- what it will do before it does it. In detail:
261
+ This command tells what it will do before it does it. In detail:
269
262
 
270
- 1. Asks user, if tests are green
263
+ 1. Ask user if tests are green
271
264
 
272
- 2. Pushes production
265
+ 2. Push production
273
266
 
274
- 3. Checks out master and pulls
267
+ 3. Check out master and pull
275
268
 
276
- 4. Merges production and pushes in master
269
+ 4. Merge production and push in master
277
270
 
278
- 5. Deploys staging first, if there is a staging environment
271
+ 5. Deploy staging, if there is a staging environment
279
272
 
280
- 6. Asks user, if deployment log is okay and application is still running on staging
273
+ 6. Ask user if deployment log is okay and staging application is still running
281
274
 
282
- 7. Deploys other stages
275
+ 7. Deploy other stages
283
276
 
284
- 8. Asks user, if deployment log is okay and application is still running on all other stages
277
+ 8. Ask user if deployment log is okay and application is still running on all stages
285
278
 
286
- 9. Informs user about the next steps
279
+ 9. Inform user about the next (manual) steps
287
280
 
288
281
 
289
282
  ### `geordi server [PORT]`
290
-
291
283
  Start a development server.
292
284
 
285
+ **Options**
286
+ - `-p, [--port=PORT]`: Choose a port
287
+ - `-P, [--public], [--no-public]`: Make the server accessible from the local network
293
288
 
294
- ### `geordi setup`
295
289
 
290
+ ### `geordi setup`
296
291
  Setup a project for the first time.
297
292
 
298
293
  Example: `geordi setup`
@@ -301,67 +296,51 @@ Check out a repository and cd into its directory. Then let `setup` do the tiring
301
296
  work: run `bundle install`, create `database.yml`, create databases, migrate
302
297
  (all if applicable).
303
298
 
304
- If a local bin/setup file is found, Geordi skips these steps runs bin/setup
305
- for setup instead.
299
+ If a local bin/setup file is found, Geordi skips its routine and runs bin/setup
300
+ instead.
306
301
 
307
- After setting up, loads a remote database dump into the development db when
308
- called with the `--dump` option:
309
-
310
- geordi setup -d staging
311
-
312
- After setting up, runs all tests when called with the `--test` option:
313
-
314
- geordi setup -t
302
+ **Options**
303
+ - `-d, [--dump=TARGET]`: After setup, dump the TARGET db and source it into the development db
304
+ - `-t, [--test], [--no-test]`: After setup, run tests
315
305
 
316
306
 
317
307
  ### `geordi shell TARGET`
318
-
319
308
  Open a shell on a Capistrano deploy target.
320
309
 
321
310
  Example: `geordi shell production`
322
311
 
323
- Lets you select the server to connect to when called with `--select-server`:
312
+ Selecting the server: `geordi shell staging -s` shows a menu with all available
313
+ servers. When passed a number, directly connects to the selected server.
324
314
 
325
- geordi shell production -s
315
+ **Options**
316
+ - `-s, [--select-server=[SERVER_NUMBER]]`: Select a server to connect to
326
317
 
327
318
 
328
319
  ### `geordi tests`
329
-
330
320
  Run all employed tests.
331
321
 
332
322
 
333
323
  ### `geordi unit`
334
-
335
324
  Run Test::Unit.
336
325
 
337
326
 
338
327
  ### `geordi update`
339
-
340
328
  Bring a project up to date.
341
329
 
342
330
  Example: `geordi update`
343
331
 
344
332
  Performs: `git pull`, `bundle install` (if necessary) and migrates (if applicable).
345
333
 
346
- After updating, loads a dump into the development db when called with the
347
- `--dump` option:
348
-
349
- geordi update -d staging
350
-
351
- After updating, runs all tests when called with the `--test` option:
352
-
353
- geordi update -t
354
-
355
- See `geordi help update` for details.
334
+ **Options**
335
+ - `-d, [--dump=TARGET]`: After updating, dump the TARGET db and source it into the development db
336
+ - `-t, [--test], [--no-test]`: After updating, run tests
356
337
 
357
338
 
358
339
  ### `geordi version`
359
-
360
340
  Print the current version of geordi.
361
341
 
362
342
 
363
343
  ### `geordi vnc`
364
-
365
344
  Show the hidden VNC window.
366
345
 
367
346
  Example: `geordi vnc` or `geordi vnc --setup`
@@ -369,8 +348,8 @@ Example: `geordi vnc` or `geordi vnc --setup`
369
348
  Launch a VNC session to the hidden screen where `geordi cucumber` runs Selenium
370
349
  tests.
371
350
 
372
- When called with `--setup`, will guide through the setup of VNC.
373
-
351
+ **Options**
352
+ - `[--setup], [--no-setup]`: Guide through the setup of VNC
374
353
 
375
354
  b
376
355
  ---
@@ -380,7 +359,7 @@ working directory. If no `Gemfile` is present just runs the given command:
380
359
 
381
360
  b spec spec/models
382
361
 
383
- More information at http://makandracards.com/makandra/684-automatically-run-bundle-exec-if-required
362
+ See http://makandracards.com/makandra/684-automatically-run-bundle-exec-if-required
384
363
 
385
364
 
386
365
  dumple
@@ -390,7 +369,7 @@ Stores a timestamped database dump for the given Rails environment in `~/dumps`:
390
369
 
391
370
  dumple development
392
371
 
393
- More information at http://makandracards.com/makandra/1008-dump-your-database-with-dumple
372
+ See http://makandracards.com/makandra/1008-dump-your-database-with-dumple
394
373
 
395
374
 
396
375
  launchy_browser
@@ -403,21 +382,37 @@ browser, as opposed to opening it within the VNC window.
403
382
  Contributing
404
383
  ============
405
384
 
406
- * Run the tests for the oldest supported ruby version with `bundle exec rake`. Ensure that all other ruby versions in the `travis.yml` pass as well after pushing your feature branch and triggering the travis build.
407
- * Update this `README`. The whole `geordi` section is auto-generated
408
- by `rake readme`.
409
- * Document your changes in the `CHANGELOG.md` file.
385
+ When making changes to Geordi, please make sure your code is tested. Not all,
386
+ but most features of Geordi can be tested. See other tests for inspiration.
387
+
388
+ Once you have completed your modifications, please update CHANGELOG and README
389
+ as needed. Use `rake readme` to regenerate the Geordi section of the README from
390
+ the command documentations.
391
+
392
+ Make sure tests are green in the default Ruby *plus* in the oldest Ruby > 1.8
393
+ that you have installed on your system (1.8.7 support has been dropped).
394
+
395
+ Before releasing your changes, wait for the Travis results to see that tests
396
+ passed in all Ruby versions.
397
+
410
398
 
411
399
  Adding a new command
412
400
  ---------------
413
401
 
414
402
  Copy `lib/geordi/COMMAND_TEMPLATE` to `lib/geordi/commands/your_command` and
415
- edit it to do what you need it to do. Usually, it is hard to automatedly test
416
- Geordi commands, so make sure you've manually tested it. You can do so by
417
- calling your local geordi like so (adjust paths to your needs):
403
+ edit it to do what you need it to do. Please add a feature test for the new
404
+ command; see features/ for inspiration.
418
405
 
419
- # @option -I: add directory to load path
420
- ruby -I ../geordi/lib ../geordi/bin/geordi <command>
406
+ To try Geordi locally, call it like this:
407
+
408
+ # -I means "add the following directory to load path"
409
+ ruby -Ilib exe/geordi
421
410
 
422
- # with debugger
423
- ruby -r byebug -I ../geordi/lib ../geordi/bin/geordi <command>
411
+ # From another directory
412
+ ruby -I ../geordi/lib ../geordi/exe/geordi
413
+
414
+ # With debugger
415
+ ruby -r byebug -I ../geordi/lib ../geordi/exe/geordi
416
+
417
+ You can also *install* Geordi locally from its project directory with
418
+ `rake install`. Make sure to switch to the expected Ruby version before.