Rudder is open to all kinds of contribution:
-
Bug reports and fixes
-
Documentation
-
Features ideas
-
New features
If you want to contribute, the best way to start is to come and chat with us on chat.rudder.io.
Note
|
Large contributions on Rudder may require a CLA/CCLA. |
Just click on the "Edit page" button, and open a pull request directly from Github’s interface!
We maintain several Rudder major/minor versions in separate branches.
-
branches/rudder/6.2
is Rudder 6.2, from which 6.2 patch releases will be tagged -
branches/rudder/7.1
is Rudder 7.0, major 7, minor 0, from which 7.0 patch releases will be tagged -
branches/rudder/7.1
is Rudder 7.1, major 7, minor 1, from which 7.1 patch releases will be tagged -
branches/rudder/7.2
is Rudder 7.2, major 7, minor 2, from which 7.2 releases will be tagged -
master
is the next Rudder version, not branched yet
Note
|
Some tooling repositories only have a master branch.
|
All bug fixes should be done in the oldest relevant branch (i.e. affected and still maintained). Version status is visible on https://docs.rudder.io/version. Don’t hesitate to ask us on the chat room if you are unsure about which branch you should work on.
We have an internal CI platform running Jenkins, integrated to Github pull requests.
CI configuration is mostly done trough Jenkinsfile
files in the repositories.
We do not use Github’s issue tracking but an external issue tracker hosted on https://issues.rudder.io.
Every change in one of the Rudder repositories must be linked to an issue in this tool, except for documentation fixes that can be contributed directly on Github.
To ease the use of a separate issue tracker and maintenance of several branches of Rudder, we have developed a dedicated tooling.
To download rudder-dev:
wget https://repository.rudder.io/tools/rudder-dev
It is a shell script you can put somewhere is your PATH. You can then update it with
rudder-dev update
(it will remind you to do so regularly).
At its first start, rudder-dev
will create its configuration script in ~/.rudder-dev
.
You need to edit it to provide your Github and bug tracker token:
[default]
## Uncomment and set your own values
## To manage your tokens, click here https://github.com/settings/tokens
github_token =
## Redmine personal access token, (create one here http://issues.rudder.io/my/account)
redmine_token =
The rtf
tool allows automated setup of multi-node environment using vagrant.
Follow the docs in the rudder-tests repo
to install and configure it.
It is also used for continuous integration and release testing.
Follow these instructions to setup a development’s environment with IntelliJ allowing you to test your changes.
Follow the dedicated doc.
Follow the dedicated doc.
You may want to generate plenty of inventories to test Rudder, without the need
of having a lot of VMs. The script inventory-generation
in
rudder-tools
creates the data for inventories creation and reports sending, and the way
to create said inventories based on templates.
Data are sufficiently differents to tests different cases (hostnames autoincrementing RUDDERTEST<X>
,
public/private keys autogenerated, software versions randomized, OS randomized, IP randomized).
To create data to generate 500 inventories
inventory-generation --data 500
It will create folder data with one subfolder for each fake node
To generate inventories based on the data
inventory-generation -g
This will generate the inventories based on the data in folder data, and sign and compress them,
and store the resulting files in inventories
folder.
You can send them to the Rudder server by copying them to /var/rudder/inventories/incoming
To generate inventories based on the data with a specific template
inventory-generation --template Injection-template.ocs -g
Purge the generated data (the generated inventories are not purged)
inventory-generation -w