Re: [Plplot-devel] Trying to understand how git workflow for CMake is enforced

2014-08-16 Thread Hezekiah M. Carty
On Fri, Aug 15, 2014 at 8:45 PM, Hazen Babcock hbabc...@mac.com wrote:
 On 8/15/2014 2:53 PM, Alan W. Irwin wrote:
 Hi Hazen:

 Earlier today I sent an e-mail to Brad King, the CMake git guru (with
 CC to you to keep you fully informed) asking how they implemented the
 enforcement hooks in their git repo to maintain the desired
 --first-parent properties of the integration branches used in their
 workflow.  Assuming we adopt their workflow, then I think it is
 absolutely essential that we get these enforcement hooks in place
 before proceeding further with PLplot development using git so I think
 it is a good idea to make our SF git repo read-only until this
 implementation issue for our workflow is resolved.  I plan to do that
 later today if you don't have any strong objections.

 I object, but not strongly. What is the worst thing that can happen? We
 have to delete the repo and start over? Hooks or no hooks, mistakes are
 going to be made and will have to be dealt with, might as well start
 learning how to do that now.

 In Arjen's case he would do the following:

 git checkout master
 git pull
 git checkout -b fix_replot_08_15_2014
 ..
 edit files
 ..
 git add -- files
 git commit -m Fixed width issue in replot.

 ..
 check that the fix works
 ..

 git checkout next
 git pull
 git merge fix_replot_08_15_2014
 git push sf-repo next

 The only sticking point would be that we don't yet have a next (or a
 release) branch in our repo..


I agree with Hazen here - adding hooks on day one seems overkill for
the project.  Further, if we do go the github route then using
Github's pull request structure provides a means of enforcement and
verification of whatever pre-merge checks we want to enforce.

With the github fork + pull request approach a developer (any
developer - core or external) would create a personal 'fork' of the
main repository.  A fork in this case is simply a github-generated and
hosted clone of the official PLplot repository.  The developer would
clone their forked repository to their local machine, make and commit
their changes and push the changes back to their fork on github.  Once
the developer is happy with their changes they can submit a pull
request for their changes back to the main repository.  It would then
be up to one or more core developers (people with write access to the
official repository) to review and accept the pull request.  Once the
pull request is acceppted and merged the result is a nice, clear
history showing when changes were made and when they were merged.

Given that the project and developers are overall new to git I think
it would be premature to start stacking automated restrictions on top
of our use of the tool.

Hez

--
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] Trying to understand how git workflow for CMake is enforced

2014-08-16 Thread Hazen Babcock
On 8/16/2014 1:50 PM, Alan W. Irwin wrote:
 On 2014-08-16 06:50-0400 Hezekiah M. Carty wrote:

 I agree with Hazen here - adding hooks on day one seems overkill for
 the project.  [...]
 Given that the project and developers are overall new to git I think
 it would be premature to start stacking automated restrictions on top
 of our use of the tool.

 That said, I appreciate you and Hazen are anxious to get started with
 git for PLplot after such a long wait, and I also feel similarly even
 though I am pretty much still a git newbie.  So I suggest we should
 jointly review my decision (to not allow push to the official repo
 until we get the required modification of the update hook figured out)
 sometime late next week (say roughly in 6 days from now).  That gives
 enough time to find out if Brad King is willing to share his
 implementation, and also to pursue a lot further the backup plan of
 modifying .git/hooks/update(.sample) appropriately ourselves.

Unfortunately all I can report so far is that I have not had much luck 
with the obvious google searches such as git hook enforce merge only. 
So while presumably this enforcement is possible, it also seems to be rare.

As an aside, an interesting client-side hook to develop would be one 
that automatically runs uncrustify. I know that I'm not very good about 
doing this manually.

-Hazen


--
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel