Skip to content
This repository has been archived by the owner on Aug 20, 2020. It is now read-only.

contributions and applying changes in master branch #22

Closed
tiagovignatti opened this issue Aug 21, 2013 · 17 comments
Closed

contributions and applying changes in master branch #22

tiagovignatti opened this issue Aug 21, 2013 · 17 comments

Comments

@tiagovignatti
Copy link
Contributor

For the changes in master, I think we need to decide something and then write down so eventual developers can read and contribute easily with the project.

developers need:

  1. set up a pull request.
  2. get review from a OWNER; meaning a LGTM and wait them to merge.

owners need:

  1. unless critical build fix nothing should go into master branch without the review from another owner. Does this work?
@ghost ghost assigned tiagovignatti Aug 21, 2013
@kalyankondapally
Copy link
Contributor

LGTM. We can always learn and improve with feedback as people get involved.

@kalyankondapally
Copy link
Contributor

I would also propose this:

While merging changes to fix builds, one should always include this at start of commit message:
Unreviewed Build fix.

This would make it clear for any developer(other than original patch contributor) as to why changes where merged without any review.

@kalyankondapally
Copy link
Contributor

We also need to figure out as to how we should deal with situations similar to recent DesktopRootWindowHost commits.

How about this:
1)Fast implementation which fixes the build/functionality.
2)Set up a proper review request for rest of team (with proper solution or with the same patch).

@tiagovignatti
Copy link
Contributor Author

@kalyankondapally PTAL in d7db1fd and feel free to close this issue if appropriated. Thanks.

@kalyankondapally
Copy link
Contributor

LGTM. Closing this one.

@kalyankondapally
Copy link
Contributor

Re-Opening.

One issue with pull requests: It could add un-necessary noise to commit log (with un-necessary commits in the branch):

Consider the scenario:
1)A pull request is done.
2)Owner does review and leaves behind comments which need to be fixed.
3)Contributor does the changes and he pushes them to the branch.

This process might continue till the final outcome in achieved(which may mean n no of commits).

I am bir worried that this would make un-necessary noise in commit log. History/Discussion can always be seen from the closed issues.

I am proposing the following after getting a LGTM on current pull request:
in case branch contains more than one commit, one should set up a separate branch (which wouldn't need any review) but the branch can be merged directly(this would also help in case the patch needs re-basing).

Commit message can include:
First Line: Issue/Pull Request no. (Original pull request no where all the discussion happened)
short description as to what it fixes.
Reviewed by: . -> This would help as any other owner could just merge the patch.

@tiagovignatti
Copy link
Contributor Author

"I am proposing the following after getting a LGTM on current pull request:
in case branch contains more than one commit, one should set up a separate branch (which wouldn't need any review) but the branch can be merged directly(this would also help in case the patch needs re-basing)."

I thought we already been doing this, no?

@kalyankondapally
Copy link
Contributor

currently, we would merge the same branch having " having n commits" but what I am proposing is to ask contributor to create a new branch with the changes after he gets LGTM.

1)Set up a pull request.
2)Go through review process, get a LGTM.
3)If now the branch has more than 1 or 2 commits(lets say around 10 to 15 commits with review feedback), we would merge the branch with all the commits. This could make it hard to follow relevant commits.

What I am proposing is at Step 3 contributor can set up a separate pull request with the final patch and pointing to the pull request(where discussion happened) in his commit log. Any Owner would be able to merge it.
I have been trying to find best practices for GitHub and one useful link I came around was this
http://codeinthehole.com/writing/pull-requests-and-other-good-practices-for-teams-using-github/

@kalyankondapally
Copy link
Contributor

If we do agree on this route but think that it's an un-necessary over burden for the contributor(i.e rebasing and publishing a new branch, closing two pull requests.), than the owner doing the merge can take care of this.(Hopefully we are able to automate it some how.)

@tiagovignatti
Copy link
Contributor Author

ah, I understood you now -- it's all about cleaning up a patch set after comments were made in there and presenting another set instead just pilling up new quick fixes on top of it.

I just thought that this was some kind of implicit rule that every experienced owner should follow :) Jokes apart, if you feel like, you can propose an expansion to the: https://github.com/otcshare/ozone-wayland/blob/master/README.md#contributing . I was trying to be concise at first in that section and I think that's how we should be on the whole README.md after all.

@kalyankondapally
Copy link
Contributor

cool, sure I will add and close this issue.

@tiagovignatti
Copy link
Contributor Author

let's do the review before you close and apply. tkx!

@kalyankondapally
Copy link
Contributor

This is something we are going to try out:
1)Push a new branch with changes.
2)Ask Owner to review and comment on the branch.
3)Go through the review process till one gets LGTM.
4)Make a pull request with the final patch.

One thing we still need to figure out is how we track the history (or relevant discussions) for commits as we would need to close branch after the pull.

What I mean is:

I upload a branch and all review happens there.
Now, I get a LGTM and set up a pull request with final patch.
The pull request is merged and commit history will always point to this pull request.
Now, we close the branch(we dont want to be hanging around with "n" branches).

Lets say down the line, we want to go back to a commit and understand the rationale behind the change. Now the history is lost as branch is closed. Is there a way we can preserve the history?
In case of pull request it seems to be always present in closed pull requests.

Thats one reason I proposed earlier (on top) for two pull requests:
1)Have a pull request.
2)After LGTM you should make another pull request if your current pull request(created in step 1) ends up with more than 1 commit. Use 'Fixes #Id of pull request in step1' (Need to try this out) at bottom of the message. Use common sense.

Either of the approaches are fine for me as long as we are able to preserve history of a commit.(Discussion during review process)

@tiagovignatti
Copy link
Contributor Author

in the following model, the history of each git commit remains intact with one only merge commit in the top of the tree, presented by the developer. So in the section "users and developers" should:
1 ... (same as it is in the current README.md)
2 ...
3 ...
4. address all the review points, until one OWNER gives the LGTM.
5. clean up the branch, separating the solution in several semantically related commits and send a pull request

what do you think?

@kalyankondapally
Copy link
Contributor

I moved this section from README to our wiki page as the section was getting too long. I will update the README file accordingly.

@kalyankondapally
Copy link
Contributor

I was looking for some way to share this information on our IRC channel and wiki fits perfectly. I will add the link to our irc channel once we are public

@kalyankondapally
Copy link
Contributor

Closing this now, feel free to fix anything in wiki.

tiagovignatti added a commit that referenced this issue May 28, 2014
[17567:17567:0528/100616:ERROR:display.cc(227)] Not implemented reached in virtual void ozonewayland::WaylandDisplay::SetWidgetState(unsigned int, ui::WidgetState, unsigned int, unsigned int) SHOW 1
[17567:17606:0528/100616:WARNING:server_connection_manager.cc(296)] ServerConnectionManager forcing SYNC_AUTH_ERROR
[17567:17606:0528/100616:WARNING:syncer_proto_util.cc(277)] Error posting from syncer: Response Code (bogus on error): -1 Content-Length (bogus on error): -1 Server Status: SYNC_AUTH_ERROR
[17567:17606:0528/100616:ERROR:get_updates_processor.cc(240)] PostClientToServerMessage() failed during GetUpdates
[17567:17584:0528/100617:WARNING:backend_impl.cc(1780)] Destroying invalid entry.
[17567:17567:0528/100616:FATAL:input_device.cc(216)] Check failed: input_pointer_.
 #0 0x7f9f01fd0a99 base::debug::StackTrace::StackTrace()
 #1 0x7f9f02022a33 logging::LogMessage::~LogMessage()
 #2 0x7f9f03337610 ozonewayland::WaylandInputDevice::SetCursorType()
 #3 0x7f9f0332f9c8 ozonewayland::WaylandDisplay::SetWidgetCursor()
 #4 0x7f9f06f07869 views::DesktopWindowTreeHostWayland::SetCursorNative()
 #5 0x7f9f033238ad aura::WindowTreeHost::SetCursor()
 #6 0x7f9f06f1da8d views::DesktopNativeCursorManager::SetCursor()
 #7 0x7f9f06dcdf5c wm::CursorManager::SetCursor()
 #8 0x7f9f06dc94d8 wm::CompoundEventFilter::UpdateCursor()
 #9 0x7f9f06dc99bf wm::CompoundEventFilter::OnMouseEvent()
 #10 0x7f9f086c0093 ui::EventHandler::OnEvent()
 #11 0x7f9f086bdcf1 ui::EventDispatcher::DispatchEvent()
 #12 0x7f9f086bdab7 ui::EventDispatcher::DispatchEventToEventHandlers()
 #13 0x7f9f086bd79d ui::EventDispatcher::ProcessEvent()
 #14 0x7f9f086bd476 ui::EventDispatcherDelegate::DispatchEventToTarget()
 #15 0x7f9f086bd33d ui::EventDispatcherDelegate::DispatchEvent()
 #16 0x7f9f0331bcbf aura::WindowEventDispatcher::DispatchMouseEnterOrExit()
 #17 0x7f9f0331dde1 aura::WindowEventDispatcher::PreDispatchMouseEvent()
 #18 0x7f9f0331c5c1 aura::WindowEventDispatcher::PreDispatchEvent()
 #19 0x7f9f086bd2dd ui::EventDispatcherDelegate::DispatchEvent()
 #20 0x7f9f086c15e7 ui::EventProcessor::OnEventFromSource()
 #21 0x7f9f0331d845 aura::WindowEventDispatcher::SynthesizeMouseMoveEvent()
 #22 0x7f9f0331fe00 base::internal::RunnableAdapter<>::Run()
 #23 0x7f9f0331fc87 base::internal::InvokeHelper<>::MakeItSo()
 #24 0x7f9f0331fab8 base::internal::Invoker<>::Run()
 #25 0x7f9f00e1beb9 base::Callback<>::Run()
 #26 0x7f9f02033288 base::MessageLoop::RunTask()
 #27 0x7f9f020333ac base::MessageLoop::DeferOrRunPendingTask()
 #28 0x7f9f020338d3 base::MessageLoop::DoWork()
 #29 0x7f9f01fb45ef base::MessagePumpLibevent::Run()
 #30 0x7f9f02032dd7 base::MessageLoop::RunHandler()
 #31 0x7f9f0207300a base::RunLoop::Run()
 #32 0x7f9f01678366 ChromeBrowserMainParts::MainMessageLoopRun()
 #33 0x7f9f05851634 content::BrowserMainLoop::RunMainMessageLoopParts()
 #34 0x7f9f058589dc content::BrowserMainRunnerImpl::Run()
 #35 0x7f9f0584dba8 content::BrowserMain()
 #36 0x7f9f01f73f75 content::RunNamedProcessTypeMain()
 #37 0x7f9f01f74fa1 content::ContentMainRunnerImpl::Run()
 #38 0x7f9f01f73439 content::ContentMain()
 #39 0x7f9f00d75344 ChromeMain
 #40 0x7f9f00d752ea main
 #41 0x7f9efcbc876d __libc_start_main
 #42 0x7f9f00d751f9 <unknown>
rakuco pushed a commit to rakuco/ozone-wayland that referenced this issue Jun 19, 2014
[17567:17567:0528/100616:ERROR:display.cc(227)] Not implemented reached in virtual void ozonewayland::WaylandDisplay::SetWidgetState(unsigned int, ui::WidgetState, unsigned int, unsigned int) SHOW 1
[17567:17606:0528/100616:WARNING:server_connection_manager.cc(296)] ServerConnectionManager forcing SYNC_AUTH_ERROR
[17567:17606:0528/100616:WARNING:syncer_proto_util.cc(277)] Error posting from syncer: Response Code (bogus on error): -1 Content-Length (bogus on error): -1 Server Status: SYNC_AUTH_ERROR
[17567:17606:0528/100616:ERROR:get_updates_processor.cc(240)] PostClientToServerMessage() failed during GetUpdates
[17567:17584:0528/100617:WARNING:backend_impl.cc(1780)] Destroying invalid entry.
[17567:17567:0528/100616:FATAL:input_device.cc(216)] Check failed: input_pointer_.
 #0 0x7f9f01fd0a99 base::debug::StackTrace::StackTrace()
 intel#1 0x7f9f02022a33 logging::LogMessage::~LogMessage()
 intel#2 0x7f9f03337610 ozonewayland::WaylandInputDevice::SetCursorType()
 intel#3 0x7f9f0332f9c8 ozonewayland::WaylandDisplay::SetWidgetCursor()
 intel#4 0x7f9f06f07869 views::DesktopWindowTreeHostWayland::SetCursorNative()
 intel#5 0x7f9f033238ad aura::WindowTreeHost::SetCursor()
 intel#6 0x7f9f06f1da8d views::DesktopNativeCursorManager::SetCursor()
 intel#7 0x7f9f06dcdf5c wm::CursorManager::SetCursor()
 intel#8 0x7f9f06dc94d8 wm::CompoundEventFilter::UpdateCursor()
 intel#9 0x7f9f06dc99bf wm::CompoundEventFilter::OnMouseEvent()
 intel#10 0x7f9f086c0093 ui::EventHandler::OnEvent()
 intel#11 0x7f9f086bdcf1 ui::EventDispatcher::DispatchEvent()
 intel#12 0x7f9f086bdab7 ui::EventDispatcher::DispatchEventToEventHandlers()
 intel#13 0x7f9f086bd79d ui::EventDispatcher::ProcessEvent()
 intel#14 0x7f9f086bd476 ui::EventDispatcherDelegate::DispatchEventToTarget()
 intel#15 0x7f9f086bd33d ui::EventDispatcherDelegate::DispatchEvent()
 intel#16 0x7f9f0331bcbf aura::WindowEventDispatcher::DispatchMouseEnterOrExit()
 intel#17 0x7f9f0331dde1 aura::WindowEventDispatcher::PreDispatchMouseEvent()
 intel#18 0x7f9f0331c5c1 aura::WindowEventDispatcher::PreDispatchEvent()
 intel#19 0x7f9f086bd2dd ui::EventDispatcherDelegate::DispatchEvent()
 intel#20 0x7f9f086c15e7 ui::EventProcessor::OnEventFromSource()
 intel#21 0x7f9f0331d845 aura::WindowEventDispatcher::SynthesizeMouseMoveEvent()
 intel#22 0x7f9f0331fe00 base::internal::RunnableAdapter<>::Run()
 intel#23 0x7f9f0331fc87 base::internal::InvokeHelper<>::MakeItSo()
 intel#24 0x7f9f0331fab8 base::internal::Invoker<>::Run()
 intel#25 0x7f9f00e1beb9 base::Callback<>::Run()
 intel#26 0x7f9f02033288 base::MessageLoop::RunTask()
 intel#27 0x7f9f020333ac base::MessageLoop::DeferOrRunPendingTask()
 intel#28 0x7f9f020338d3 base::MessageLoop::DoWork()
 intel#29 0x7f9f01fb45ef base::MessagePumpLibevent::Run()
 intel#30 0x7f9f02032dd7 base::MessageLoop::RunHandler()
 intel#31 0x7f9f0207300a base::RunLoop::Run()
 intel#32 0x7f9f01678366 ChromeBrowserMainParts::MainMessageLoopRun()
 intel#33 0x7f9f05851634 content::BrowserMainLoop::RunMainMessageLoopParts()
 intel#34 0x7f9f058589dc content::BrowserMainRunnerImpl::Run()
 intel#35 0x7f9f0584dba8 content::BrowserMain()
 intel#36 0x7f9f01f73f75 content::RunNamedProcessTypeMain()
 intel#37 0x7f9f01f74fa1 content::ContentMainRunnerImpl::Run()
 intel#38 0x7f9f01f73439 content::ContentMain()
 intel#39 0x7f9f00d75344 ChromeMain
 intel#40 0x7f9f00d752ea main
 intel#41 0x7f9efcbc876d __libc_start_main
 intel#42 0x7f9f00d751f9 <unknown>

(cherry picked from commit 374e95a)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants