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: 1. A working import from php-src. 2. A basic server setup. 3. 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 usern...@php.net email address as the new author information. For example: SVN commit author | Git commit author ------------------------------------ dsp | David Soria Parra <d...@php.net> gwynne | Gwynne Raskind <gwy...@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): 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 2. 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. 3. Test the current karma implementation. More details will follow. 4. 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? -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php