On Wed, Nov 7, 2012 at 5:58 PM, Alex Huang <alex.hu...@citrix.com> wrote: > We should remember that we didn't have Jira setup until very late into the > 4.0 release. There were a lot of things that leaked through because of that. > > We should make use of the Jira functionalities.
Absolutely! > These steps can be performed by everyone. > - A bug is filed in issues.apache.org/cloudstack. This should target the > releases that it is to be fixed in. > - If the bug needs to be propagated to another release, a subtask is created > for that release. > > The release manager decides on whether the bug should be put into the > release. Upon which he can do the following things. > - The bug shouldn't be in the release, then resolve the sub-task with reason > why it is not in the release. > - The bug should be in, release manager either assigns to the developer to > cherry-pick or cherry-picks himself. This is a great workflow to suggest - as it requires that the developer understand the value of pulling it back into the previous feature release for a bug-fix release. The RM is then responsible for "gating" fixes into that branch. > The person doing the cherry-pick then does the following: > - The commit message for the bug should include the subtask's bug id and not > the original bug's id. > - Once the cherry-pick is done, commit id should be placed with the sub task > and the sub-task is resolved. > > There's a lot of benefits to this. The primary is that there's a trail on > where the fixes went. It's also an official channel of communication between > demand on where the bug is fixed, release manager, and developer. > > I like to ask that release managers do not accept a bug as resolved until the > commit id has been put into the bug. I like to have this done automatically > by git but I understand there's pushback on adding git-hooks to apache infra. > Although, apache should really adopt this practice for all projects. It's a > life-save when trying to figure out how a bug is fixed. > It's a bit of a challenge, in that you (as the RM) have to track all bugs in the system really. However, if we are limiting the scope of review to those tagged by developers for a specific release, then it should work. -chip > --Alex > -----Original Message----- > From: Edison Su [mailto:edison...@citrix.com] > Sent: Wednesday, November 07, 2012 2:25 PM > To: cloudstack-dev@incubator.apache.org > Subject: RE: Rant: Request for better commit messages > > We'd better fire bugs on issues.apache.org/cloudstack, add a tag for each > maintenance release(e.g. the upcoming 4.0.1), then release manager assign the > bugs to each developer. It's the developer's responsibility to fix the bug on > each maintenance branch, and write proper commit message, like, "BUGFIX: bug > number ", then close the bug with the corresponding commit. It's easier for > release manager to track the release procedure, and for QA team verify the > bugs. > >> -----Original Message----- >> From: Marcus Sorensen [mailto:shadow...@gmail.com] >> Sent: Wednesday, November 07, 2012 11:11 AM >> To: cloudstack-dev@incubator.apache.org >> Subject: Re: Rant: Request for better commit messages >> >> That's great, I'm fine with that if I need to create a bug for >> everything that I know needs to be fixed in the 4.0 branch for >> example. The header/tag in the commit message may not be something we >> end up officially relying on by any means, but would help me as >> someone who perhaps maintains a specific feature to take a quick look >> at the logs in master and branch X and make sure that everything I >> thought should be committed ended up in the branch, or at least >> provides me a way to audit. I suppose that's a personal thing so I'll >> just go forward doing that, but it brought up the question as to who >> else might be able to use it or what the official way to tell the maintainer >> of a branch that something needs to be considered for inclusion. >> >> It seems like several things were missed at different points when 4.0 >> was getting cleaned up, and I don't know if that was due to not >> following procedure or a lack of procedure. >> >> >> On Wed, Nov 7, 2012 at 11:31 AM, John Burwell <jburw...@basho.com> >> wrote: >> >> > Marcus, >> > >> > To my mind, it does not seem appropriate for developers to be making >> > release decisions at commit time. Instead, it feels more >> > appropriate to me that these decisions are captured in a ticket that >> > is referenced from the commit message. This separation allows the >> > PMO/release management team/community to determine release contents >> > based on >> the >> > results of review (via Review Board) and testing. If you feel your >> > change is a high priority and should be in the next release, you >> > would >> capture that in the ticket. >> > The PMO/release management team/community can then review that >> > decision and comment/adjust as necessary. A commit message does not >> > permit this type of collaboration. This separation also seems make >> > the creation of release notes more straightforward as well. >> > >> > Thanks, >> > -John >> > >> > On Nov 7, 2012, at 1:16 PM, Marcus Sorensen <shadow...@gmail.com> >> wrote: >> > >> > > Really I just want to make sure that a commit I make that I know >> > > needs to be pushed into the next 4.0 bugfix release gets there. >> > > Since someone else is in charge of maintaining 4.0 and merging bug >> > > fixes, I can't do it myself, and I'm not really sure how it works >> > > now. For example, does that maintainer look through a JIRA report >> > > and only merge bugfixes listed >> > there? >> > > >> > > >> > > On Wed, Nov 7, 2012 at 11:03 AM, Rohit Yadav >> > > <rohit.ya...@citrix.com> >> > wrote: >> > > >> > >> I'm not sure how (cherry picking, pull based on commit message) >> > >> this >> > will >> > >> work, but it's good idea to mark the commit with some tag with >> > >> say >> > branch >> > >> so we always commit on master? >> > >> (Bugfix-for or Branch: <branches> ) >> > >> Branch: 4.0, master #(comma separated branch names). >> > >> Bug-id: CLOUDSTACK-xxx >> > >> >> > >> This may be ambiguous, says some developer did not know if some >> > >> commit would apply for some branch? Another issue is to encourage >> > >> everyone of >> > us >> > >> to use this convention. >> > >> If we could solve it, that would be great. >> > >> >> > >> ________________________________________ >> > >> From: Marcus Sorensen [shadow...@gmail.com] >> > >> Sent: Wednesday, November 07, 2012 8:56 PM >> > >> To: cloudstack-dev@incubator.apache.org >> > >> Subject: Re: Rant: Request for better commit messages >> > >> >> > >> Should we add a line to this commit message, where people can >> > >> mark >> > whether >> > >> this patch should be considered for the next bugfix release? Or >> > >> is that >> > all >> > >> handled/tracked through JIRA or some other means? I just thought >> > >> it >> > would >> > >> be nice for the guy maintaining a release to be able to >> > >> eventually pull >> > in >> > >> stuff based on the commit messages. It also allows the committers >> > >> to >> > give >> > >> some sort of indication that commit X is important and needs to >> > >> go into >> > the >> > >> bugfix. >> > >> >> > >> For now I'm just adding "Bugfix-for: 4.0" to my commits. >> > >> >> > >> >> > >> On Thu, Oct 18, 2012 at 3:59 PM, Marcus Sorensen >> > >> <shadow...@gmail.com >> > >>> wrote: >> > >> >> > >>> Ok, this is now in master, see >> > >>> 9ba7509c70fe82a8ce0b08826d424de452aef1d2 >> > >>> >> > >>> set it up by running the following from your incubator-cloudstack dir: >> > >>> >> > >>> 'ln -s ../../tools/git/prepare-commit-msg >> > .git/hooks/prepare-commit-msg' >> > >>> >> > >>> Developers can also optionally commit different >> > >>> prepare-commit-msg scripts for each branch, and the link will point to >> > >>> the one you're on. >> > >>> >> > >>> On Sun, Oct 14, 2012 at 10:19 AM, Rohit Yadav >> > >>> <rohit.ya...@citrix.com> >> > >>> wrote: >> > >>>> >> > >>>> On 14-Oct-2012, at 9:18 PM, Marcus Sorensen >> <shadow...@gmail.com> >> > >> wrote: >> > >>>> >> > >>>>> I'm by no means a git guru, but in searching around it didn't >> > >>>>> seem >> > >> like >> > >>>>> there was a way to enforce the application of hooks from the >> > >>>>> repo >> > >> side. >> > >>>>> I'm not sure we'd want to anyway. I was just going to commit >> > >>>>> the file >> > >>> and >> > >>>>> then add instructions on the wiki for people to add it in >> > >>>>> their local >> > >>> repo >> > >>>>> config. >> > >>>> >> > >>>> I think that's fine. Instead of hooks what people can do is add >> > >>>> a >> > >> commit >> > >>> template to their local git configuration. >> > >>>> http://git-scm.com/book/en/Customizing-Git-Git-Configuration >> > >>>> >> > >>>> Checkout commit.template, add following to your ~/.gitconfig: >> > >>>> [commit] >> > >>>> template = ~/.gitmessage >> > >>>> >> > >>>> And create a ~/.gitmessage like: >> > >>>> #Header: one line explaination >> > >>>> # >> > >>>> #Body of commit message explaining things in more detail, >> > >>>> possibly >> > >>> giving some >> > >>>> #background about the issue being fixed, etc. Maybe use bullets: >> > >>>> # - Write in present tense >> > >>>> # - Keep text width of commit message within 80 characters. >> > >>>> # >> > >>>> #Use more than one paragraphs, that's is fine. >> > >>>> # >> > >>>> #Reviewed-by: Person or link to review on review.apache.org >> > >>>> #Reported-by: whoever-reported-it, if applicable >> > >>>> #Signed-off-by: Your Name <yourem...@yourhost.com> >> > >>>> >> > >>>> Now every time one does git commit, she will see this in their >> > >>>> editor >> > >>> and use this as a reminder to write better commit message. >> > >>>> For example my: >> > >>>> gitconfig: >> > >>> https://github.com/bhaisaab/dotfiles/blob/master/git/gitconfig >> > >>>> gitmessage: >> > >>> https://github.com/bhaisaab/dotfiles/blob/master/git/gitmessage >> > >>>> >> > >>>> Regards. >> > >>>> >> > >>>>> On Oct 14, 2012 4:07 AM, "Rohit Yadav" >> > >>>>> <rohit.ya...@citrix.com> >> > >> wrote: >> > >>>>> >> > >>>>>> >> > >>>>>> On 12-Oct-2012, at 10:29 PM, Marcus Sorensen >> > >>>>>> <shadow...@gmail.com> >> > >>> wrote: >> > >>>>>> >> > >>>>>>> Sure thing. A few questions: >> > >>>>>>> >> > >>>>>>> the "CLOUDSTACK-<BUGID> prefix:" line, should that be >> > >>>>>>> changed to simply "Bug id:"? >> > >>>>>> >> > >>>>>> I guess as there are already several commits that follow >> > >>> CLOUDSTACK-BUGID >> > >>>>>> convention, we should continue that. >> > >>>>>> Also, there are commits with bug id's of old jira, like >> > >>>>>> CS-16414 >> > etc. >> > >>>>>> >> > >>>>>>> I'm assuming that if the commit is a bug fix, the fix will >> > >>>>>>> already be described in the summary and detail of the >> > >> commit. >> > >>>>>>> Or are we looking for something else here other than a >> description? >> > >> I >> > >>>>>>> could just see this being redundant, but perhaps I don't >> > >>>>>>> understand what's being asked for on that line. Should id >> > >>>>>>> describe the bug >> > >> itself >> > >>>>>>> in one line, rather than the bug fix? >> > >>>>>> >> > >>>>>> Whatever makes sense, I usually write what that commit does >> > >>>>>> in one >> > >>> line. >> > >>>>>> >> > >>>>>>> >> > >>>>>>> I'm also assuming it's ok to add the "Signed-off-by:" to the >> > >> message. >> > >>>>>>> I realize that some people will have their own configs that >> > >>>>>>> already >> > >> do >> > >>>>>>> this, or be used to using -s to auto-add it to the message, >> > >>>>>>> but judging by the logs it seems that the majority don't. So >> > >>>>>>> hopefully this doesn't upset anyone horribly :-) They can >> > >>>>>>> always change their copy since the hook will need to be >> > >>>>>>> manually >> installed. >> > >>>>>> >> > >>>>>> I've just put up bunch of guidelines on the wiki, let's take >> > whatever >> > >>>>>> seems good and follow whatever makes sense. >> > >>>>>> My whole intension was to bring up the issue that a short >> > >>>>>> commit >> > >>> message >> > >>>>>> makes it hard for folks to follow commits. >> > >>>>>> >> > >>>>>>> Attached is an example commit message generated by the hook >> so far. >> > >>>>>> >> > >>>>>> Cool, I guess you would have to contact someone from ASF >> > >>>>>> infra to >> > set >> > >>> this >> > >>>>>> up. >> > >>>>>> >> > >>>>>>> I >> > >>>>>>> left in the default comment message as well, simply because >> > >>>>>>> it includes a list of what's modified,etc for reference when >> > >>>>>>> typing up the notes. >> > >>>>>> >> > >>>>>> -- >> > >>>>>> Rohit >> > >>>>>> >> > >>>>>>> >> > >>>>>>> On Fri, Oct 12, 2012 at 2:56 AM, Rohit Yadav < >> > >> rohit.ya...@citrix.com> >> > >>>>>> wrote: >> > >>>>>>>> >> > >>>>>>>> I ported an old wiki from wiki.cloudstack to cwiki.a.o >> > >>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Git#Git- >> CommitM >> > essages >> > >>>>>>>> >> > >>>>>>>> Pl. check and edit as needed. >> > >>>>>>>> >> > >>>>>>>> One more thing, I checked looks like ASF infra guys have >> > >>>>>>>> upgraded >> > >>> their >> > >>>>>> review board. >> > >>>>>>>> The bug ( >> > >>>>>> >> > >>> >> > >> >> > >> http://code.google.com/p/reviewboard/issues/detail?id=2690&thanks=2690 >> > &ts=1343826104 >> > >>> ) >> > >>>>>> got fixed so now downloading the diff downloads the actual >> > >>>>>> uploaded >> > >> git >> > >>>>>> formatted patch. >> > >>>>>>>> >> > >>>>>>>> On 12-Oct-2012, at 2:42 AM, Marcus Sorensen >> > >>>>>>>> <shadow...@gmail.com> >> > >>>>>> wrote: >> > >>>>>>>> >> > >>>>>>>>> Might be cool if we could make/document git hooks for a >> > >>>>>>>>> standard >> > >>>>>> message form. >> > >>>>>>>> >> > >>>>>>>> Marcus it's a good idea, pl. check if we can add git hooks >> > >>>>>>>> to ASF >> > >>> repo >> > >>>>>> that would be great. >> > >>>>>>>> >> > >>>>>>>> Regards. >> > >>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> On Thu, Oct 11, 2012 at 3:05 PM, Wido den Hollander < >> > >> w...@widodh.nl >> > >>>> >> > >>>>>> wrote: >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> On 10/10/2012 08:50 PM, Noah Slater wrote: >> > >>>>>>>>>>> >> > >>>>>>>>>>> Perhaps we could document this on the wiki, as part of a >> > nascent >> > >>>>>> coding >> > >>>>>>>>>>> standards policy? >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> I'd say so. We already have a coding convention, it's >> > >>>>>>>>>> just a >> > >> small >> > >>>>>> step to >> > >>>>>>>>>> add a commit convention. >> > >>>>>>>>>> >> > >>>>>>>>>> I personally like 'clean' GIT repos with clear commit messages. >> > >>>>>>>>>> >> > >>>>>>>>>> Wido >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>>> >> > >>>>>>>>>>> On Wed, Oct 10, 2012 at 8:01 AM, Rohit Yadav < >> > >>> rohit.ya...@citrix.com >> > >>>>>>> >> > >>>>>>>>>>> wrote: >> > >>>>>>>>>>> >> > >>>>>>>>>>>> Hi folks, >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> With due respect, I would like to request all the >> > >>>>>>>>>>>> committers >> > >> and >> > >>>>>>>>>>>> contributors to write better commit message. [0] >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> For example, a good commit message: >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c >> > ommit;h=384c03e42578f17432a483d5828aad64175d9c49 >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> A good commit message subject should have something >> like >> > >>>>>>>>>>>> this >> > >>> with >> > >>>>>> 80 >> > >>>>>>>>>>>> chars width: >> > >>>>>>>>>>>> <Header line>: <short log description> <blank line> >> > >>>>>>>>>>>> <body of commit message, explain things why, what, how, etc. >> > >>> giving >> > >>>>>>>>>>>> background> >> > >>>>>>>>>>>> <bulleted points help> >> > >>>>>>>>>>>> <blank line> >> > >>>>>>>>>>>> <Reported-by: if it's a bug> >> > >>>>>>>>>>>> <Reviewed-by: if it was reviewed> >> > >>>>>>>>>>>> <Signed-off: turn on signature in your .gitconfig> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> This is what we follow on >> > >>>>>>>>>>>> http://git.videolan.org/?p=vlmc.git;a=shortlogand they >> > >>>>>>>>>>>> are >> > >> crazy >> > >>>>>> about >> > >>>>>>>>>>>> commits and patches, they just don't accept junk >> > >>>>>>>>>>>> messages, even if code is fine. You may check, there is >> > >>>>>>>>>>>> no or >> > >> few >> > >>>>>>>>>>>> reverts. >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> When something breaks, I check all last commits and do >> > >>>>>>>>>>>> a git >> > >> log >> > >>> -p >> > >>>>>>>>>>>> <file> >> > >>>>>>>>>>>> to go through recent changes to a file, in case I think >> > >> something >> > >>>>>> broke I >> > >>>>>>>>>>>> like to identify the changes that may have caused it >> > >>>>>>>>>>>> instead >> > of >> > >>>>>> fixing it >> > >>>>>>>>>>>> which may introduce further problems. I use tig and zsh >> > >>>>>>>>>>>> to >> > >>> regularly >> > >>>>>>>>>>>> follow >> > >>>>>>>>>>>> commits and read commit messages. >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> Also, please fix your editors and follow coding conventions. >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> [0] >> > >> https://github.com/torvalds/subsurface/blob/master/README(at >> > >>>>>> the >> > >>>>>>>>>>>> end) >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> Regards. >> > >>>>>>>>>>>> PS. I had to email about it as we're uncool with our >> > >>>>>>>>>>>> git >> > commit >> > >>>>>> habits, >> > >>>>>>>>>>>> we >> > >>>>>>>>>>>> are doing triple or quadruple reverts, we need to fix >> > >>>>>>>>>>>> our >> > >> habits. >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c ommit;h=7bcbae5e91a4cd122d0efa7f2542eab73debb6df >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c >> > ommit;h=c49f3beccfcd1257eca1ea06606fb55b3fdf5093 >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c ommit;h=66daa1a2bc6e86adea265a8a0b8b512756c8f77c >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c >> > ommit;h=828fa3389bbe7cd0378c4e55152d671932badca2 >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c >> > ommit;h=bb7f9ad9774019f4fdb4d72b2e32a36df9c89188 >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c ommit;h=75e2a1012fccc01c639c7f41be564ac0e32088fb >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c >> > ommit;h=5078dff6e76649fbc51e2b9c003fd8e03eef18f3 >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>>>>>>>> >> > >>>>>> >> > >>> >> > >> >> > https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a >> > =c ommit;h=850433240401cd318f1d8d8b0fa2032a60d52c1f >> > >>>>>>>>>>> >> > >>>>>>>>>>> >> > >>>>>>>>>>> >> > >>>>>>>>>>> >> > >>>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>> >> > >>>>>>> <examplecommitmsg.txt> >> > >>>>>> >> > >>>>>> >> > >>>> >> > >>> >> > >> >> > >> > >