On Fri, Aug 14, 2015 at 03:23PM, Valentin Kulichenko wrote:
> Artem,
> 
> Why do we need a requirement about one commit per pull request? I
> understand that we should should avoid garbage in history and properly deal
> with merges from master. But I don't see anything wrong with 2-3 commits in
> a PR if they are meaningful. E.g., "implemented initial version" -> "fixed
> failures in tests" -> "addressed comments from a committer". They should
> just contain good comments and (probably) corresponding JIRA ticket number.

Because such incremental commits for the same JIRA have two properties:
 - they are largely irrelevant and lack of substance for anyone but their author
 - they make later navigation through the history a royal PITA because you
   never know if this JIRA had one commit or six

Cos

> In your process (if I understood everything correctly) we will create two
> PRs for each feature. This looks weird and confusing for me. And I really
> don't understand what issue we're trying to solve here.
> 
> I think we should take a look at Spark .py script that can be found here:
> https://cwiki.apache.org/confluence/display/SPARK/Committers#Committers-HowtoMergeaPullRequest.
> It looks like they already addressed and automated everything we discuss
> here.
> 
> Thoughts?
> 
> -Val
> 
> On Fri, Aug 14, 2015 at 7:03 AM, Denis Magda <dma...@gridgain.com> wrote:
> 
> > Artem,
> >
> > Seems that TC doesn't write down comments into a corresponding JIRA issue
> > for branches that have 'dev' suffix (like 'ignite-xxx-dev').
> >
> > I've created a pull-request to merge from 'ignite-1241-dev':
> > https://github.com/apache/incubator-ignite/pull/19
> >
> > I've received an e-mail saying that the request has been received and I
> > see that TC triggered the request for validation.
> > However, there is no any info left regarding this in a corresponding
> > ticket:
> > https://issues.apache.org/jira/browse/IGNITE-1241
> >
> > Meanwhile, here I see that such info from GitHub Bot:
> > https://issues.apache.org/jira/browse/IGNITE-1203
> >
> > In addition I have one more thing to clarify.
> > When TC ends validating my changes will it send links to tests' results
> > over email or to JIRA ticket?
> > Cause as you know TC cleans 'active branches' history and I guess that it
> > won't be easy for me to find the results on TC in a couple of days.
> >
> > --
> > Denis
> >
> >
> > On 8/14/2015 1:30 PM, Artem Shutak wrote:
> >
> >> Alexey,
> >>
> >> You are right and big thanks for the diagram on the wiki!
> >>
> >> In bounds of IGNITE-1217
> >> <https://issues.apache.org/jira/browse/IGNITE-1217> I've
> >> created a script for commiters (see patch). You need to point to the
> >> script
> >> a contributor_github_user_name and a branch_name_with_contribution. The
> >> script just fetchs a remote repository (by contributor_github_user_name)
> >> and cherry-picks last commit from this branch to local master - it stores
> >> commit author information. So, the commiter can push master at apache git.
> >>
> >> In this case we have one requirement: a pull-request should have only one
> >> commit (as with patches).
> >>
> >> I've mention next model of development at fork (see steps below). But now,
> >> I see it has too many steps. I will think about more simple way.
> >> 1. Preparation (need to configure once):
> >>
> >> git remote add apache
> >> https://git-wip-us.apache.org/repos/asf/incubator-ignite
> >> git remote my_fork https://github.com/<github_uname>/incubator-ignite.git
> >>
> >> 2. Forking on jira ignite-xxxx
> >> # Update local master from apache repo
> >> git checkout master
> >> git pull apache master
> >>
> >> # Create new development branch for the ticket.
> >> git checkout -b ignite-xxxx-dev
> >>
> >> # Some development here with many commits at ignite-xxxx-dev.
> >> git commit -a -m 'ignite-xxxx: Intermediate commit 1'
> >> ...
> >> git commit -a -m 'ignite-xxxx: Intermediate commit 100'
> >>
> >> # Push at fork
> >> git push my_fork ignite-xxxx-dev
> >>
> >> Now a pull-request can be created. TC will be triggered. To fix some
> >> something and rerun TC, you need just fix it at ignite-xxxx-dev and push
> >> to
> >> fork again, TC will be triggered again for new commit.
> >>
> >> When TC is green, it needs to create 'final' pull-request branch with one
> >> commit. For it:
> >> # Update local master from apache repo
> >> git checkout master
> >> git pull apache master
> >>
> >> # Create a final pull-request branch for the ticket.
> >> git checkout -b ignite-xxxx
> >>
> >> # Squash all changes at one commit.
> >> git merge --squash ignite-xxxx-dev
> >> git commit -a -m 'ignite-xxxx: Implemented'
> >>
> >> Then need to push it to fork and open new pull-request.
> >>
> >>
> >> -- Artem --
> >>
> >> On Fri, Aug 14, 2015 at 5:30 AM, Alexey Goncharuk <
> >> alexey.goncha...@gmail.com> wrote:
> >>
> >> I forgot that the mailing list takes out all formatting, the diagram meant
> >>> to be in a monospaced font :)
> >>>
> >>> I added it to Ignite wiki:
> >>> https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute
> >>>
> >>> 2015-08-13 19:22 GMT-07:00 Alexey Goncharuk <alexey.goncha...@gmail.com
> >>> >:
> >>>
> >>> While the process of a pull-request creation and CI run is clear for, the
> >>>> whole cycle from start to end is still fuzzy. Let me summarize my
> >>>> understanding and correct me if I got something wrong.
> >>>>
> >>>> For any committer/contributor John Doe we will have the following
> >>>> structure:
> >>>>
> >>>>   +------------+             +---------------+
> >>>>   +-----------------+
> >>>>   |            |   replica   |               |    fork    |
> >>>> |
> >>>>   | Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's
> >>>>
> >>> Fork
> >>>
> >>>> |
> >>>>   |            |             |               |            |
> >>>> |
> >>>>   +------------+             +---------------+
> >>>>   +-----------------+
> >>>>          ^                                                         ^
> >>>>          |                                                         |
> >>>>          |                                                         |
> >>>>          |
> >>>>   +-----------------+
> >>>>          |    *Apache Git remote handle for committers*   |
> >>>> |
> >>>>          +------------------------------------------------|   Local
> >>>> clone
> >>>> |
> >>>>                                                           |
> >>>> |
> >>>>
> >>>>   +-----------------+
> >>>> Development is going in the JD's fork and at some point he thinks that
> >>>>
> >>> the
> >>>
> >>>> feature is ready to be tested by CI.
> >>>>
> >>>> He creates a pull request. Usually it takes more than one iteration to
> >>>> have a successful CI run, but each pull request sends an e-mail to the
> >>>>
> >>> dev
> >>>
> >>>> list. I think we should have some mechanism allowing to differentiate
> >>>> "work" pull requests and final pull requests that passed CI and should
> >>>> be
> >>>> reviewed by a committer. We also need to create (maybe) a maven profile
> >>>> with a set of quick tests that cover as much functionality as possible,
> >>>>
> >>> so
> >>>
> >>>> that a developer could run it locally before submitting a request to the
> >>>>
> >>> CI.
> >>>
> >>>> Let's say now the pull request is approved. If the pull request was
> >>>> submitted by a contributor, a committer should pull it to it's local
> >>>>
> >>> clone.
> >>>
> >>>> Then commit is pushed to the apache git repository. I glanced through
> >>>> the
> >>>> Apache Spark development process document [1] and it seems that we
> >>>> should
> >>>> have a similar script that will properly process commits (squash or
> >>>> whatever we need) before the push.
> >>>>
> >>>> Assuming my understanding is correct and the minor things I mentioned
> >>>> above are addressed, I like the new process :)
> >>>>
> >>>> [1]
> >>>> https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark
> >>>>
> >>>>
> >>>> 2015-08-13 18:13 GMT-07:00 Konstantin Boudnik <c...@apache.org>:
> >>>>
> >>>> On Thu, Aug 13, 2015 at 05:54PM, Dmitriy Setrakyan wrote:
> >>>>>
> >>>>>> On Thu, Aug 13, 2015 at 5:51 PM, Konstantin Boudnik <c...@apache.org>
> >>>>>>
> >>>>> wrote:
> >>>>>
> >>>>>> On Thu, Aug 13, 2015 at 05:40PM, Alexey Goncharuk wrote:
> >>>>>>>
> >>>>>>>> Maybe I miss a good piece of information about how Git works, but
> >>>>>>>>
> >>>>>>> I
> >>>
> >>>> always
> >>>>>>>
> >>>>>>>> thought that if a pull request is accepted, it will be merged to
> >>>>>>>>
> >>>>>>> the
> >>>
> >>>> GitHub
> >>>>>>>
> >>>>>>>> mirror of Apache Ignite. How will this change get to the original
> >>>>>>>>
> >>>>>>> Apache
> >>>>>
> >>>>>> git repository?
> >>>>>>>>
> >>>>>>> It won't. github repo is a mirror of Apache git mirror. In order to
> >>>>>>>
> >>>>>> have
> >>>>>
> >>>>>> the
> >>>>>>> changes from github PR to be in visible in the github a committer
> >>>>>>>
> >>>>>> needs to
> >>>>>
> >>>>>> commit it into our Apache repo.
> >>>>>>>
> >>>>>>> Cos, will the original contributor's name be preserved or should the
> >>>>>>
> >>>>> Ignite
> >>>>>
> >>>>>> committer add "-author" parameter when committing?
> >>>>>>
> >>>>> It depends on how the patch file was made. If 'git format-patch' was
> >>>>>
> >>>> used
> >>>
> >>>> then
> >>>>> the name will be preserved. Otherwise, it won't. Sorry, I don't know
> >>>>>
> >>>> much
> >>>
> >>>> about github and I really am not using it.
> >>>>>
> >>>>> Cos
> >>>>>
> >>>>> Can somebody explain to me the merge procedure?
> >>>>>>>>
> >>>>>>>> 2015-08-12 3:15 GMT-07:00 Artem Shutak <ashu...@gridgain.com>:
> >>>>>>>>
> >>>>>>>> Inline.
> >>>>>>>>>
> >>>>>>>>> On Wed, Aug 12, 2015 at 10:19 AM, Dmitriy Setrakyan <
> >>>>>>>>>
> >>>>>>>> dsetrak...@apache.org
> >>>>>>>
> >>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> On Tue, Aug 11, 2015 at 6:28 AM, Artem Shutak <
> >>>>>>>>>>
> >>>>>>>>> ashu...@gridgain.com>
> >>>>>
> >>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> And one more question. Is it mandatory to have possibility
> >>>>>>>>>>>
> >>>>>>>>>> works
> >>>>>
> >>>>>> via
> >>>>>>>
> >>>>>>>> patches if we will have pull-request way for contributions?
> >>>>>>>>>>>
> >>>>>>>>>>> I'd like to have only one approach.
> >>>>>>>>>>>
> >>>>>>>>>>> Artem, if possible I would allow 2 approaches and document
> >>>>>>>>>>
> >>>>>>>>> the 2
> >>>
> >>>> approaches
> >>>>>>>>>
> >>>>>>>>>> on Wiki.
> >>>>>>>>>>
> >>>>>>>>>> At least it increases support efforts. And if all will use only
> >>>>>>>>>
> >>>>>>>> one,
> >>>>>
> >>>>>> then
> >>>>>>>
> >>>>>>>> there is a big chance that second will not work properly.
> >>>>>>>>>
> >>>>>>>>> And, to complete patch-way:
> >>>>>>>>> - need to split simple "master" builds and "patch" builds on TC
> >>>>>>>>>
> >>>>>>>> -
> >>>
> >>>> I
> >>>>>
> >>>>>> can do
> >>>>>>>
> >>>>>>>> it by yourself.
> >>>>>>>>> - need to implement git-format-patch.bat for Windows users. It's
> >>>>>>>>>
> >>>>>>>> not
> >>>>>
> >>>>>> mandatory, all can be done manually by contributors, but it
> >>>>>>>>>
> >>>>>>>> would
> >>>
> >>>> be
> >>>>>
> >>>>>> nice.
> >>>>>>>
> >>>>>>>> This script can make any Windows user (I'm not :) ).
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> One question, does a pull request automatically generate a
> >>>>>>>>>>
> >>>>>>>>> Jira
> >>>
> >>>> comment
> >>>>>>>
> >>>>>>>> (see Spark, Camel)?
> >>>>>>>>>>
> >>>>>>>>>> I will look at mentioned projects. From my view, by default,
> >>>>>>>>>
> >>>>>>>> GitHub
> >>>>>
> >>>>>> know
> >>>>>>>
> >>>>>>>> nothing about our Jira. So, there's no way to GitHub can add any
> >>>>>>>>>
> >>>>>>>> comments
> >>>>>>>
> >>>>>>>> to unknown Jira.
> >>>>>>>>> DVCS plugin - it's a standard way to acquaint Jira and GitHub
> >>>>>>>>>
> >>>>>>>> and
> >>>
> >>>> it
> >>>>>
> >>>>>> will
> >>>>>>>
> >>>>>>>> work pretty nice.
> >>>>>>>>>
> >>>>>>>>> --Artem--
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> -- Artem --
> >>>>>>>>>>>
> >>>>>>>>>>> On Tue, Aug 11, 2015 at 4:15 PM, Artem Shutak <
> >>>>>>>>>>>
> >>>>>>>>>> ashu...@gridgain.com>
> >>>>>>>
> >>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>> Igniters,
> >>>>>>>>>>>>
> >>>>>>>>>>>> I'm working on
> >>>>>>>>>>>>
> >>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-1217
> >>>>>
> >>>>>> .
> >>>>>>>
> >>>>>>>> Currently, everyone can fork Mirror of Apache Ignite on
> >>>>>>>>>>>>
> >>>>>>>>>>> GitHub (
> >>>>>
> >>>>>> https://github.com/apache/incubator-ignite), works with
> >>>>>>>>>>>>
> >>>>>>>>>>> own fork
> >>>>>
> >>>>>> (create
> >>>>>>>>>>
> >>>>>>>>>>> branches, commit, pull changes at fork) and then creates a
> >>>>>>>>>>>>
> >>>>>>>>>>> pull-request
> >>>>>>>>>
> >>>>>>>>>> to
> >>>>>>>>>>>
> >>>>>>>>>>>> Mirror of Apache Ignite on GitHub (all changes should be
> >>>>>>>>>>>>
> >>>>>>>>>>> done in
> >>>>>
> >>>>>> one
> >>>>>>>
> >>>>>>>> commit
> >>>>>>>>>>>
> >>>>>>>>>>>> as in patch-way approach). Then test TC builds will
> >>>>>>>>>>>>
> >>>>>>>>>>> triggered
> >>>>>
> >>>>>> automatically. Results can be found by branch filtering by
> >>>>>>>>>>>>
> >>>>>>>>>>> pattern
> >>>>>>>
> >>>>>>>> <pull-request-number>/merge. "Merge" suffix here means
> >>>>>>>>>>>>
> >>>>>>>>>>> pull-request
> >>>>>>>
> >>>>>>>> merged
> >>>>>>>>>>>
> >>>>>>>>>>>> with master branch (if pull-request at master branch).
> >>>>>>>>>>>>
> >>>>>>>>>>>> Notes:
> >>>>>>>>>>>>
> >>>>>>>>>>>> 1. I tried to use TC plugin for github to see TC result at
> >>>>>>>>>>>>
> >>>>>>>>>>> pull-request.
> >>>>>>>>>>
> >>>>>>>>>>> But the plugin works in unexpected way and add comments
> >>>>>>>>>>>>
> >>>>>>>>>>> not
> >>>
> >>>> only
> >>>>>
> >>>>>> to
> >>>>>>>
> >>>>>>>> pull-requests. Example:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>> https://github.com/apache/incubator-ignite/commit/ae11e9b5aa9af4d0d58e2a16dd3a3331969961df#commitcomment-12635375
> >>>
> >>>> .
> >>>>>>>>>>>> Maybe someone had this problem before?
> >>>>>>>>>>>>
> >>>>>>>>>>>> 2. I'm looking for a simple way to add information about
> >>>>>>>>>>>>
> >>>>>>>>>>> new
> >>>
> >>>> pull-request
> >>>>>>>>>>
> >>>>>>>>>>> to associated jira.
> >>>>>>>>>>>> The better way to use existing Jira plugin for it - DVCS
> >>>>>>>>>>>>
> >>>>>>>>>>> plugin (
> >>>>>
> >>>>
> >>> https://confluence.atlassian.com/display/BITBUCKET/Linking+Bitbucket+and+GitHub+accounts+to+JIRA
> >>>
> >>>> ).
> >>>>>>>>>>>
> >>>>>>>>>>>> But I need both: Jira administration rights to configure
> >>>>>>>>>>>>
> >>>>>>>>>>> the
> >>>
> >>>> plugin
> >>>>>>>
> >>>>>>>> and
> >>>>>>>>>
> >>>>>>>>>> GitHub password for "apache" user. Or I missed something
> >>>>>>>>>>>>
> >>>>>>>>>>> and we
> >>>>>
> >>>>>> can't
> >>>>>>>
> >>>>>>>> use
> >>>>>>>>>>
> >>>>>>>>>>> this plugin at Apache infrastructure?
> >>>>>>>>>>>> Maybe someone can suggest another solution?
> >>>>>>>>>>>>
> >>>>>>>>>>>> Thanks,
> >>>>>>>>>>>> Artem.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>
> >

Reply via email to