Hi everyone,

I just want to write a quick mail to mention the git workflow for contributing 
code and also start a discussion for best practice way.


So first of all I created a fork of the apache/incubator-streampipes-extensions 
(https://github.com/apache/incubator-streampipes-extensions)

After this, the branch is my GitHub  account as a repository, which I can clone 
as usually to my hard drive.

       git clone  
[email protected]<mailto:[email protected]>:<GITHUBUSER>/incubator-streampipes-extensions.git

The current work takes place in the dev branch so to get the latest code I 
checkout the dev branch

       git checkout dev


But I learned that this is still not a good place to start writing code. To do 
later on a clean push request it is better to create a new branch, so called 
feature branch. It can be either created via git (creating a 
myNewFeature-Branch depending on the dev branch)

       git checkout -b myNewFeature dev


or, because I personally like and use gitflow, which automatically uses the 
prefix feature for naming the branch, I do:

       git flow feature start myNewFeature

The name of the branch will be feature/myNewFeature

In this branch, I do all my code work and commit and push it to github (still 
in the feature branch)

If I work on two features at ones I simply created two feature branches to work 
separately on it, so both features will not be mixed up during pull request and 
the discussion and code is clear to all members.


If I think I have finished my work and everything is ready to to start a pull 
request,  I simple go to Github and do following steps,

1. Switch to the finished feature branch and click merge request. Here I can 
choose

   a)  the base repository address  --> apache/incubator-streampipes-extensions 
and the base branch --> here I choose dev

   b) the head repository address (my fork) 
<GITHUBUSER>/incubator-streampipes-extensions and the branch I want to use as pull 
request --> feature/myNewFeature

2. If I see "Able to merge" I can simple click on View pull request, where I 
can add some comments and introductions to start the discussion


and then ready to pull and waiting.

While waiting and discussion time, I finished my other feature and start 
another pull request clean and tidy.


In my eyes  the important step is that the feature branch is never be merged  
into my local dev branch or in gitflow terms finish my feature branch.

This is because I want to synchronize the dev branch with the main channel of 
the apache/incubator-streampipes-extensions without merge conflicts. So after 
the pull request is accepted (with maybe some changes from the community) I get 
my own code anyway in the dev channel.


So the main step is to synchronize my fork with the main streampipes channel to 
get the latest updates and my accepted branch.

To get this I only have to add another remote channel:

       git remote add upstream 
git://github.com/apache/incubator-streampipes-extensions.git

So with

   git remote -v


I see the origin and the upstream channel.


To be sure to get the latest changes  I use

       git fetch upstream


The dev channel is still the place to be so I checkout the origin dev channel

       git checkout origin dev



and merge the latest changes from upstream dev into my local branch

       git merge upstream/dev



And here my only and properly also a philosophical question: would be a rebase 
better in this case?


After the pull request is accepted and found its way into the upstream dev 
branch, I can easily delete my feature branch.

If I want to improve my feature again, I start to create a fresh new feature 
branch from the updated local dev :)

I think this can be illustrated  with some screenshots as well  and added next to the 
"how to import the project into intellij"  post ;-)


During the pull request, what general information would be helpful to add as 
comment? I think a short description what the code is for is one major bullet 
point. Or is this information already in the resource file?

A short template list  with the necessary information would be good.


Kind regards

Florian


Disy Informationssysteme GmbH
Florian Micklich
Lösungsentwickler
+49 721 16006 477,  [email protected]

Firmensitz: Ludwig-Erhard-Allee 6, 76131 Karlsruhe
Registergericht: Amtsgericht Mannheim, HRB 107964
Geschäftsführer: Claus Hofmann

Bitte beachten Sie folgende Informationen für Kunden, Lieferanten und Bewerber
- Datenschutz: www.disy.net/datenschutz
- Informationspflichten:  www.disy.net/informationspflichten

Reply via email to