You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Where to start

You need the source code tree to work with. You can clone the repo.

Clone the repo

git clone https://git-wip-us.apache.org/repos/asf/incubator-ignite

How to generate patches

We use git as our version control system. To streamline the process of giving proper credit to the contributors when committing patches, we encourage contributors to submit patches generated using "git format-patch" command. This has many benefits:

  • Committers will not forget to give proper credit to a contributor
  • Contributor's name and email address show up in the git log

Long story short, it makes both the contributors' and committers' lives easier, so please generate your patches using git format-patch.

We have the following requirements for patches:

  • patch can be applied to the HEAD of current ignite-sprint-xxx branch by "git am <patch-file>" without conflicts.
  • patch has to have all changes in one commit with comment like "ignite-xxx: Implemented."
  • patch-file has to have 'patch', 'txt' or 'diff' extension

Patch creation process

We prefer that you use the following step-by-step instructions when developing with Ignite.

For example, if you are starting working on the feature IGNITE-9999, the work should be done in ignite-sprint-999 branch.

## Get the repo
git clone -b ignite-sprint-999 https://github.com/apache/incubator-ignite.git
git checkout -b ignite-9999
## Some development here with many commits at ignite-9999.
git commit -a -m 'ignite-9999: Intermediate commit 1';
...
git commit -a -m 'ignite-9999: Intermediate commit 100';
## Commit the last changes.
git commit -a -m 'ignite-9999: Implemented.';
## Making patch.
## There are a lot of changes at ignite-sprint-999 and we need to get it, resolve conflicts (if exists), rerun tests for ignite-9999.
git merge ignite-sprint-999
## Run script to make patch. Patch will have all changes as one commit.
<ignite_home>/scripts/git-format-patch.sh

Note: it is strongly recommended to merge current sprint branch (git merge ignite-sprint-999) to your development branch, for example, every day (or after each commit).

Patch validation

Created patch-file should be attached to a JIRA ticket and the ticket status should be changed on Patch Available.

If you do everything correctly, then all necessary TC test builds will be triggered automatically in 3 minutes period, and a comment with triggered build information (test package names, TC build links) will be added to the JIRA.

Requirements (to auto triggering the test builds):

  • patch-file has to have 'patch', 'txt' or 'diff' extension
  • patch-file has to be attached by JIRA user with contributor role.
  • No labels