FAQ
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 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):

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?

Search Discussions

  • Hannes Magnusson at Dec 15, 2011 at 5:11 pm

    On Thu, Dec 15, 2011 at 17:12, David Soria Parra wrote:
    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?
    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
  • Johannes Schlüter at Dec 15, 2011 at 5:47 pm

    On Thu, 2011-12-15 at 18:11 +0100, Hannes Magnusson wrote:

    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? :]
    Yes "git clone" (or git pull) ;-)

    johannes
  • Alexey Shein at Dec 15, 2011 at 6:00 pm
    AFAIK, git natively supports rsync protocol, see man git pull.

    2011/12/15 Johannes Schlüter <johannes@schlueters.de>:
    On Thu, 2011-12-15 at 18:11 +0100, Hannes Magnusson wrote:

    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? :]
    Yes "git clone" (or git pull) ;-)

    johannes



    --
    PHP Internals - PHP Runtime Development Mailing List
    To unsubscribe, visit: http://www.php.net/unsub.php


    --
    Regards,
    Shein Alexey
  • Ferenc Kovacs at Dec 15, 2011 at 9:57 pm

    On Thu, Dec 15, 2011 at 5:12 PM, David Soria Parra wrote:

    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 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):

    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
    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

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-internals @
categoriesphp
postedDec 15, '11 at 4:12p
activeDec 15, '11 at 9:57p
posts5
users5
websitephp.net

People

Translate

site design / logo © 2022 Grokbase