This guide assumes Ruby is already installed. We follow Ruby’s own maintenance policy and officially support all currently maintained versions per Ruby Maintenance Branches. So we can't guarantee the code works for versions of Ruby that have reached their end of life.
To work on the code, clone the project first:
$ git clone [email protected]:elastic/elastic-transport-ruby.git
And run bundle install
to install dependencies.
There are several test tasks in the Rakefile, you can check them with rake -T
from the project's root directory.
rake test:unit
rake test:spec
rake test:integration
Use COVERAGE=true
before running a test task to check coverage with Simplecov.
Github's pull requests and issues are used to communicate, send bug reports and code contributions. Bug fixes and features must be covered by unit tests.
You need an Elasticsearch cluster running for integration tests. The tests will use the default host localhost:9200
, but you can change this value by setting the environment variables TEST_ES_SERVER
or ELASTICSEARCH_HOSTS
:
$ TEST_ES_SERVER=host:port rake test:integration
A rake task is included to launch an Elasticsearch cluster with Docker. You need to install docker on your system and then run:
$ rake docker:start[VERSION]
E.g.:
$ rake docker:start[8.0.0-alpha1]
You can find the available version in Docker @ Elastic.
The process for contributing is:
-
It is best to do your work in a separate Git branch. This makes it easier to synchronise your changes with
rebase
. -
Make sure your changes don't break any existing tests, and that you add tests for both bugfixes and new functionality.
-
Sign the contributor license agreement. Please make sure you have signed the Contributor License Agreement. We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once.
-
Submit a pull request. Push your local changes to your forked copy of the repository and submit a pull request. In the pull request, describe what your changes do and mention the number of the issue where discussion has taken place, eg “Closes #123″.