Skip to content

Contributing_procedure

Carolina Fernández edited this page Sep 30, 2015 · 3 revisions

Home > Contributing > Procedure


Here are some easy ways in which you could contribute to the development or documentation of the FELIX Management Stack.

Testing modules

First follow the installation and configuration guides of the module you wish to contribute to. Installation and configuration of other modules may be necessary if interconnections are required.

You should be able to run the software in your local environment and test the behaviour locally.

Reporting issues

If you find any issue when running a FELIX module, you may report that in one of two ways:

Fixing bugs and extending modules

After fixing any malfunction in a given module, or adding a new functionality, you should check and test the new behaviour locally. When finished, you may check the following instructions.

For large contributions or modifications, a pull request may be issued. For small patches and modifications, consider using the git patches.

Fixing small bugs or performing minor modifications

There are at least two ways to generate the patch files and send them to the specific development team:

  • Use git format-patch to generate and send at the same time
# Send via e-mail the generated patch between two revisions
git format-patch --to <email_of_development_team> <commit_before_start_range>..<latest_commit_end_range>
  • First create the patches, then send all in a single e-mail
# Create a patch file between two revisions
git diff <commit_before_start_range> <latest_commit_end_range> > minor.patch
# Configuring git e-mail settings
git config sendemail.to <email_of_development_team>
# Send through e-mail the generated patch file(s)
git send-email --smtp-server=<smpt_email_server> *.patch

Fixing and extending the source or documentation of a module

If you perform any bug fixing on the source code of one of the FELIX modules, develop a new module or improve documentation of one of the modules; you should contact the involved development teams to integrate your changes in the component branch. After that, your name (and optionally your e-mail) will be added to a CONTRIBUTORS file within the source of the component.

Sending a pull request through GitHub

The easiest way to notify of a modification in the code is to issue a GitHub pull request. You shall fork the FELIX repository under your account and use it to send the pull request against the FELIX repository (if you create a new branch, you shall perform the pull request on it).

Sending a pull request with Git

  1. Clone the FELIX (bare) repository and create another one for modifications:
# Clone the FELIX repository in bare mode and host this in a machine with public access
git clone --bare https://github.com/dana-i2cat/felix.git /<path_to_felix_bare_repo>/felix.git
# Clone the above repository
git clone ssh://<git_user>@<git_host>:<git_port>/<path_to_felix_bare_repo>/felix.git felix_mod
  1. Move to the desired component branch and create a new one for modifications:
# Move to the branch/component you would like to contribute to
cd felix_mod
git checkout <component_branch>
# Create a new branch for modifications
git checkout -b <component_branch_new>
  1. Perform any modification on the sources and store in the bare repository:
# Modify the source
# Perform a commit on the modified repository
git commit -m "Adding fix for issue #XYZ or adding new capability"
# Perform a push on the bare repository
git push origin <component_branch_new>
  1. Prepare the pull request:
git request-pull origin/<component_branch_new> \
ssh://<git_user>@<git_host>:<git_port>/<path_to_felix_bare_repo>/felix.git
  1. Send an e-mail with the pull request:
  • Either directing the pull request through mailx:

git request-pull origin/<component_branch_new>
ssh://<git_user>@<git_host>:<git_port>/<path_to_felix_bare_repo>/felix.git |
mailx <email_of_development_team> -s "FELIX - Pull request - " ```

  • Or manually copying the text provided by git pull-request to an e-mail. The text should be something like the following:

The following changes since commit fb02c8b266642d045c11198d4c4316ebf994e420:

FELIX - Pull request - (2015-09-22 12:39:36 +0200)

are available in the git repository at:

ssh://<git_user>@<git_host>:<git_port>/<path_to_felix_bare_repo>/felix.git <component_branch_new>

for you to fetch changes up to fb02c8b266642d045c11198d4c4316ebf994e420:

FELIX - Pull request - (2015-09-22 12:39:36 +0200) ```