Hi Internals,
three months ago we decided to move PHP to Git. I want to give you
an update what happend so far and what we are working on.
So far we have:
- A working import from php-src.
- A basic server setup.
- A working Karma implementation.
A little bit more details:
We will use y3.php.net as our git server. This server will run nginx
as a webserver. We will provide a web frontend using gitweb. You can
pull using HTTP and Git protocols. Pushs will be done usign HTTPS only.
You will use the same credentials that you used for SVN. A new Karma
implementation was written and will be tested within the next weeks.
The minimum required Git version for cloning using the Git protocol
will be 1.4.0. The minimum for pushing will be Git 1.6.5.3.
The migration will require some adjustements to the repository and
a proper migration of SVN properties. We also need to rewrite author
information on the repository. The Git Author information consists
of a name and a email address. Therefore we will rewrite the autor
information and use your stored Name and your username@php.net email
address as the new author information. For example:
SVN commit author | Git commit author
dsp | David Soria Parra dsp@php.net
gwynne | Gwynne Raskind gwynne@php.net
IMPORTANT: If you do not like us to use the name stored in the master
DB for your account please let me know and we will change that.
About SVN properties: We will not use 'keywords' anymore, unless
a certain code needs it. I'm aware that code like reflection use
the keyword information in their phpinfo()
text. Should we enable
keywords for this file or do we change the code?
With the transition to Git one of the main attributes of keywords
are gone. Git version nuimbers are not incremental so I don't see
much point in using them anymore.
SVN ignores will be converted to a .gitignore file.
TODO (What comes in mind atm):
- Compile a list of scripts/sites that need to be changed in order
to work with the git repo. Some sites are already on the list: - Finish the setup of the y3.php.net server. We need to figure
out how to make http digest auth work nginx. We also need to
setup email hooks, etc. - Test the current karma implementation. More details will follow.
- Setup github mirroring
Helping with the migration:
Help is always appreciated. There are differnet ways in helping.
One is preparing the listed sites (ci.qa.php.net) for the git
transition. Help with setting up the server is also much apprecaited.
Just drop me a mail if you have some time to help.
Schedule:
I hope to get the server and the migration ready for the end of this year
and probably do the switchover in the last week of december or the first
week of january, as I don't expect much commits during the holidays.
This will probably line up with the 5.4.0 release.
Github:
There was a lot of discussion if we can use github as our main
hosting platform. I spoke to github people and they said it's not
possible to implement the PHP Karma system on github without rewriting
major parts of github. Two solutions were discussed.
(1) Only a bot can merge changes into the main repository. All committers
will use pull requests. The bot checks for Karma. This approach will
substantially extend the roundtrip time commit <-> karma check and will
make every commiter wait a few seconds before he gets a status if he
is able to commit. We also would need to deal with failing automatic merges
and every developers needs to use the github GUI to create pull requests.
(2) Split the PHP repository into submodules accoriding to karma. This will
mean we will end up with dozents of submodules. This will split
commits apart. If you commit to ext/standard and Zend/ you will end
up with different 3 commits.
For me the overall conclusion is, that we take one step at a time and self host with
github mirroring, but feel free to discuss alternatives.
We will however support a direct mirror to github that makes it possible to use
discuss pull requests on github.com, and then merge them locally (which you should
anyway as you want to run the test suite before you push).
This is just a short version of what we did so far.
Questions?
About SVN properties: We will not use 'keywords' anymore, unless
a certain code needs it. I'm aware that code like reflection use
the keyword information in theirphpinfo()
text. Should we enable
keywords for this file or do we change the code?
Remove it, most other extensions have removed it from their info.
1. Compile a list of scripts/sites that need to be changed in order
to work with the git repo. Some sites are already on the list:
- http://ci.qa.php.net
- http://snaps.php.net
- http://edit.php.net
- http://lxr.php.net
rsync.. does something like cvsup or svnsync exist? :]
-Hannes
- Compile a list of scripts/sites that need to be changed in order
to work with the git repo. Some sites are already on the list:rsync.. does something like cvsup or svnsync exist? :]
Yes "git clone" (or git pull) ;-)
johannes
AFAIK, git natively supports rsync protocol, see man git pull.
2011/12/15 Johannes Schlüter johannes@schlueters.de:
1. Compile a list of scripts/sites that need to be changed in order
to work with the git repo. Some sites are already on the list:
- http://ci.qa.php.net
- http://snaps.php.net
- http://edit.php.net
- http://lxr.php.netrsync.. does something like cvsup or svnsync exist? :]
Yes "git clone" (or git pull) ;-)
johannes
--
--
Regards,
Shein Alexey
Hi Internals,
three months ago we decided to move PHP to Git. I want to give you
an update what happend so far and what we are working on.So far we have:
- A working import from php-src.
- A basic server setup.
- A working Karma implementation.
A little bit more details:
We will use y3.php.net as our git server. This server will run nginx
as a webserver. We will provide a web frontend using gitweb. You can
pull using HTTP and Git protocols. Pushs will be done usign HTTPS only.
You will use the same credentials that you used for SVN. A new Karma
implementation was written and will be tested within the next weeks.The minimum required Git version for cloning using the Git protocol
will be 1.4.0. The minimum for pushing will be Git 1.6.5.3.The migration will require some adjustements to the repository and
a proper migration of SVN properties. We also need to rewrite author
information on the repository. The Git Author information consists
of a name and a email address. Therefore we will rewrite the autor
information and use your stored Name and your username@php.net email
address as the new author information. For example:SVN commit author | Git commit author
dsp | David Soria Parra dsp@php.net
gwynne | Gwynne Raskind gwynne@php.netIMPORTANT: If you do not like us to use the name stored in the master
DB for your account please let me know and we will change that.About SVN properties: We will not use 'keywords' anymore, unless
a certain code needs it. I'm aware that code like reflection use
the keyword information in theirphpinfo()
text. Should we enable
keywords for this file or do we change the code?
With the transition to Git one of the main attributes of keywords
are gone. Git version nuimbers are not incremental so I don't see
much point in using them anymore.SVN ignores will be converted to a .gitignore file.
TODO (What comes in mind atm):
- Compile a list of scripts/sites that need to be changed in order
to work with the git repo. Some sites are already on the list:- Finish the setup of the y3.php.net server. We need to figure
out how to make http digest auth work nginx. We also need to
setup email hooks, etc.- Test the current karma implementation. More details will follow.
- Setup github mirroring
Helping with the migration:
Help is always appreciated. There are differnet ways in helping.
One is preparing the listed sites (ci.qa.php.net) for the git
transition. Help with setting up the server is also much apprecaited.
Just drop me a mail if you have some time to help.Schedule:
I hope to get the server and the migration ready for the end of this year
and probably do the switchover in the last week of december or the first
week of january, as I don't expect much commits during the holidays.
This will probably line up with the 5.4.0 release.Github:
There was a lot of discussion if we can use github as our main
hosting platform. I spoke to github people and they said it's not
possible to implement the PHP Karma system on github without rewriting
major parts of github. Two solutions were discussed.(1) Only a bot can merge changes into the main repository. All committers
will use pull requests. The bot checks for Karma. This approach will
substantially extend the roundtrip time commit <-> karma check and will
make every commiter wait a few seconds before he gets a status if he
is able to commit. We also would need to deal with failing automatic
merges
and every developers needs to use the github GUI to create pull requests.(2) Split the PHP repository into submodules accoriding to karma. This
will
mean we will end up with dozents of submodules. This will split
commits apart. If you commit to ext/standard and Zend/ you will end
up with different 3 commits.For me the overall conclusion is, that we take one step at a time and self
host with
github mirroring, but feel free to discuss alternatives.We will however support a direct mirror to github that makes it possible
to use
discuss pull requests on github.com, and then merge them locally (which
you should
anyway as you want to run the test suite before you push).This is just a short version of what we did so far.
Questions?
--
thanks for the heads up.
for the jenkins cluster (ci.qa.php.net) migration the following steps
are necessary:
- install the git plugin (already done because we pull symfony from
git(hub)) - install the git cli client on all slaves used for building php-src (it is
installed on the master node, installing on the linux/freebsd slaves would
be trivial, for windows I would go with msysgit) - change the project configuration to use the git repo instead of the svn
I don't think that it would take much effort, nor do I expect surprises,
but I will set it up ASAP, so that we can sort it out before pulling the
plug.
websvn/viewvc: we would need to replace those and the links for those, and
there is also a bunch of wiki pages to update (how to contribute, fetching
the source, etc)
this is the things from the top of my head.
Ferenc Kovács
@Tyr43l - http://tyrael.hu