My take on this:
GIT has already well defined and globally understood processes (for
people using GIT daily).
And the example below of Infinispan seems to match it.
-> 1 official repo -> GateIn/portal
-> For development people fork the repo into their own account ->
metacosm/portal
-> When developers are ready they do a pull request to the
guardians of "Gatein/portal"
-> The guardians approve/deny the pull request.
You add a process such as git-flow for working on various branches, and
on releases in QA ready to be tagged:
http://nvie.com/posts/a-successful-git-branching-model/
You add a regular backup script on a different machine than github (for
when github is down or some guardian screwed up)
And:
1) You follow a process well established and not confuse people
with 2 repositories that seem official
2) You simplify the approach for contributors (in general,
including support, QA) as:
a) they would be familiar with such a procedure
b) can easily and quickly do minor changes right from GitHub
(typos)
c) don't need account setup (SSH key + someone to authorize
them) unless they have to do a pull request on the dev repo
d) can follow more easily where their code is going (which
release of the gateinportal repo vs gatein repo)
3) You simplify the life of the guardians as there are not 2
promotions, you also reduce the risk of having code change stuck in dev.
And then you reduce the time between the code being written and the code
available in a release.
4) You don't need to pay for 2 GitHub accounts if both are on GitHub
Now this is my feedback on something that I find overengineered and
confusing, I may not be the one who will suffer most about this, so will
leave the decision to you and Julien
Thomas
On 07/19/2011 07:13 PM, Boleslaw Dawidowicz wrote:
Hi
We were recently brainstorming a bit with Julien around Git usage for GateIn and here is
a draft of the doc:
https://docs.google.com/document/pub?id=1dp3QODiZDG3KbolnBsCkjZWwYtIvCaQv...
I would like all of you to read it and comment.
The main concern is around having two spaces in github. Let me clarify reasoning about
this part a bit. If you look at how Infinispan uses git:
https://docs.jboss.org/author/display/ISPN/Contributing+to+Infinispan#Con...
you will notice that in the end there are few people acting as "Project Admin"
and everything goes via them as a pull request. This means that all development is being
performed in private clones and forks and only code in clean state hits the repo. It also
means that few people have a lot on their shoulders to handle pull requests.
Julien proposed to have common more open space at "https://github.com/gatein".
We would be able to collaborate more on common branches. It would be also more easy to
track all development work that is going on in the project in one place. We would be able
to also give push/pull access to guys from QA and Support.
Separately we would have something aka "blessed" repo
(
https://github.com/gateinportal). Only few people have access there, and everytime we
tag, release we push clean code with clean history there. Community doesn't really
need to be aware of it and we don't need to advertise it too much. It is more also for
safety reasons as git allows destructive operations so when more people can push things
into "gatein" space we can end up with losing some important history there.
Personally I still have a bit mixed feelings around this two places idea and thats partly
why I'm asking for feedback. I assume that we would like to commit directly into
"gatein" space repos for feature requests, bugs and etc. We would still use
private forks for prototyping, experimenting or dirty commits but it would be advised to
push things to gatein space on regular bases for other work.
The goal is to prepare some kind of public doc like infinispan wiki.
Bolek
_______________________________________________
gatein-dev mailing list
gatein-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev