@@ -18,9 +18,15 @@ $ bundle install
18
18
19
19
## Working on an individual library
20
20
21
- For most contributors, setting up the project individually will be simpler.
21
+ Each rspec-* library is a standalone gem, with a standalone build. We recommend you
22
+ treat each as such and run development tools from their individual directories.
23
+
24
+ For convience though, you can also run ` script/run_rspec ` from the root directory
25
+ to run all the specs, as well as ` bin/rubocop ` to check all files for recommendations
26
+ at once.
27
+
28
+ # Bundler setup
22
29
23
- Unless you have a specific reason to use rspec-dev, we recommend using this approach.
24
30
To minimize boot time and to ensure we don't depend upon any extra dependencies
25
31
loaded by Bundler, our CI builds avoid loading Bundler at runtime
26
32
by using Bundler's [ ` --standalone option ` ] ( https://myronmars.to/n/dev-blog/2012/03/faster-test-boot-times-with-bundler-standalone ) .
@@ -29,14 +35,17 @@ While not strictly necessary (many/most of our contributors do not do this!),
29
35
if you want to exactly reproduce our CI builds you'll want to do the same:
30
36
31
37
```
38
+ $ rm Gemfile.lock
32
39
$ bundle install --standalone --path <current_lib>/bundle
33
40
$ bundle binstubs --path <current_lib>/bundle/bin
34
41
```
35
42
36
43
The ` binstubs ` option creates the ` bin/rspec ` file that, like ` bundle exec rspec ` , will load
37
44
all the versions specified in ` Gemfile.lock ` without loading bundler at runtime!
38
45
39
- You can also run ` bundle install ` as normal with the GEMFILE environment variable set to the parent directory.
46
+ Note that as a set of gems we don't check in ` Gemfile.lock ` , so to replicate a CI build on branch
47
+ changes / after a period of time you will need to delete your local ` Gemfile.lock ` file to install
48
+ the same gems as CI.
40
49
41
50
## Extra Gems
42
51
@@ -48,10 +57,12 @@ gem declarations. The `Gemfile` evaluates that file if it exists, and it is git-
48
57
49
58
The [ CI build] ( https://github.com/rspec/rspec/actions )
50
59
runs many verification steps to prevent regressions and
51
- ensure high-quality code. To run the build locally, for an individual libraryrun :
60
+ ensure high-quality code. To run the build locally, for an individual library run :
52
61
53
62
```
54
- $ script/run_build
63
+ $ ../script/run_rspec
64
+ $ ../script/run_rspec_one_by_one
65
+ $ ../script/run_cucumber
55
66
```
56
67
57
68
See [ build detail] ( BUILD_DETAIL.md ) for more detail.
0 commit comments