Dependencies in the gemspec

There are runtime dependencies, development dependencies, and unlabeled dependencies (“add_dependency”).

What exactly are the differences among these dependencies? When do you make a dependency a runtime dependency only? When do you make it a development dependency only? And does “add_dependency” make it a runtime and development dependency?

Runtime dependencies are the gems required by your gem during its runtime, ie, the gems without which your gem can’t work. Development dependencies are those which are required only while developing the gem (example: rspec, pry ) . When you do gem install or when bundler installs your gem for you, only the runtime dependencies will be installed and not the development dependencies.

Also , add_dependency = add_runtime_dependency .