Open Source Content Management Framework

New cvs-model mRFC

1 2 next
  1. New cvs-model mRFC

    Mon June 15 2009 07:35:06 UTC
    While touring Poland I had time to think about the rules for commiting,
    so that we wouldn't have so much problems when upgrading something.

    http://www.midgard-project.org/development/mrfc/0046/

    Please share your thoughts.

    //Osku

    --
    Oskari Kokko
    Consultant
    Nemein Oy
    oskari.kokko@nemein.com
    020 1986034
    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  2. Re: [midgard-dev] New cvs-model mRFC

    Mon June 15 2009 08:35:05 UTC
    On Mon, Jun 15, 2009 at 11:19 AM, Oskari Kokko <oskari.kokko@nemein.com>wrote:

    > While touring Poland I had time to think about the rules for commiting,
    > so that we wouldn't have so much problems when upgrading something.
    >
    > http://www.midgard-project.org/development/mrfc/0046/
    >
    > Please share your thoughts.


    Somehow I feel, that this is a bit overreaction.By the way how many active
    commiters do we have? Does anyone have stats?

    I think that most problems would be solved by good automated test-suite.
    In this case, we just need to have rule, that every commit which changes (or
    adds) functionality needs to include corresponding test-case.

    I know, there is the opinion, that unit-tests are not enough to test
    everything. I believe they are enough to test everything which is really
    important.

    Anyway, what I am trying to say is: we don't need to require test-reports.
    We need to require tests and the person who applies things to "stable"
    branch needs ability to easily run all the tests.

    --
    Alexey Zakhlestin
    http://www.milkfarmsoft.com/
    Sent from St Petersburg, Russian Federation

    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  3. Re: [midgard-dev] New cvs-model mRFC

    Mon June 15 2009 09:20:07 UTC
    Hi,

    On Mon, Jun 15, 2009 at 11:23 AM, Alexey Zakhlestin<indeyets@gmail.com> wrote:
    > By the way how many active commiters do we have? Does anyone have stats?

    Ohloh has some:
    http://www.ohloh.net/p/midgard/contributors
    http://www.ohloh.net/p/midgard2/contributors

    > I think that most problems would be solved by good automated test-suite.
    > In this case, we just need to have rule, that every commit which changes (or
    > adds) functionality needs to include corresponding test-case.

    That would be the optimal situation, but so far to my experience,
    getting tests out of people has proven to be difficult or impossible.
    We even organized phpunit training for the whole group in a recent
    Midgard Gathering, but still...

    > Alexey Zakhlestin

    /Henri

    --
    Henri Bergius
    Motorcycle Adventures and Free Software
    http://bergie.iki.fi/

    Skype: henribergius
    Jabber: henri.bergius@gmail.com
    Microblog: http://www.qaiku.com/home/bergie/
    Sent from Helsinki, ES, Finland
    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  4. Re: [midgard-dev] New cvs-model mRFC

    Mon June 15 2009 09:50:05 UTC
    On Mon, Jun 15, 2009 at 1:10 PM, Henri Bergius <henri.bergius@iki.fi> wrote:

    > Hi,
    >
    > On Mon, Jun 15, 2009 at 11:23 AM, Alexey Zakhlestin<indeyets@gmail.com>
    > wrote:
    > > By the way how many active commiters do we have? Does anyone have stats?
    >
    > Ohloh has some:
    > http://www.ohloh.net/p/midgard/contributors
    > http://www.ohloh.net/p/midgard2/contributors
    >
    > > I think that most problems would be solved by good automated test-suite.
    > > In this case, we just need to have rule, that every commit which changes
    > (or
    > > adds) functionality needs to include corresponding test-case.
    >
    > That would be the optimal situation, but so far to my experience,
    > getting tests out of people has proven to be difficult or impossible.
    > We even organized phpunit training for the whole group in a recent
    > Midgard Gathering, but still...


    if there's no test, there's no moving to stable ;)
    in case of git that would be really simple

    --
    Alexey Zakhlestin
    http://www.milkfarmsoft.com/

    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  5. Re: [midgard-dev] New cvs-model mRFC

    Mon June 15 2009 11:30:06 UTC
    Alexey Zakhlestin writes:

    Hi!

    > I think that most problems would be solved by good automated test-suite.
    > In this case, we just need to have rule, that every commit which changes
    > (or adds) functionality needs to include corresponding test-case.

    Yes, automated unit and regression tests are a good start.
    But we do not have them.

    Piotras
    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  6. Re: New cvs-model mRFC

    Thu June 18 2009 10:49:36 UTC

    First off, I have to say that I wholeheartedly agree with this mRFC, because this is an issue that "gets" me on almost a weekly basis as I work on client websites.

    While I understand that the mental shift, which is required for something like this to be instituted is a huge undertaking, I think and have always thought, that it has to be done.

    Current situation is, as Oskari pointed out, unbearable - really. Countless frustrating hours are spent on figuring out which commit has broken what, when, why and by whom. Instead this time could be spent on much more useful things, like further development or writing test / documentation.

    I agree on the point that a separate development branch and stable branch are needed for each "generation" of Midgard, even if Ragnaroek is supposedly LTS and therefore should be stable (as we've noticed over some time, this is not the case). Obviously stable would be rock solid branch (Debian equivalent version of that generation) which could be used for production without having to even think about things breaking, and development in turn would be used for introducing bug fixes and features.

    As far as what should be the model for submitting patches/features, I think we should look at some of the other successful open source projects. I would propose something similar to what has been agreed upon in Django, more on their patching guidelines can be read at http://docs.djangoproject.com/en/dev/internals/contributing/#submitting-patches

    Of course, as Alexey pointed out earlier, automated testing-suite is necessary to make something like this work, because no-one in the project really has that much time in their hands to run through all of the patches by hand. In addition, automated test-suite will more than likely lower the threshold for all of the developers to write tests.

    To summarize, I think this problem is actually two-fold:

    First, the project needs to have an automated test-suite for running the tests, which generates the necessary test information for the person submitting a patch as well as for the person committing the patch to stable.

    Secondly, there needs to be a mental shift (which is the difficult part here) made in the community where writing tests (and documentation, I hope!) becomes de facto, that they are required with every patch (and hopefully every commit, if applicable).

    The first and second points will require some guidelines to be written and agreed upon by the community, the decision should not be in the hands of any single person, but the community as whole.

    Continuing a little bit further from this, I think it would also be nice to have some kind of a code coverage report available on the midgard project website (or trac), so people could actually see what needs work.

    // Joonas

    •  Reply
  7. Re: [midgard-dev] New cvs-model mRFC

    Mon June 22 2009 12:45:07 UTC
    Joonas Bergius wrote:
    >
    > Continuing a little bit further from this, I think it would also be *nice* to have some kind of a code coverage report available on the midgard project website (or trac), so people could actually see what needs work.
    >

    teppheikk promised in last years Otaniemi gathering to set up
    PHPUndercontrol for M-P.org but I guess it has proven to be a bit difficult.

    Writing unit tests for Thor/Ragnaroek generation is more than slightly
    complex since MidCOM core supposes we're inside libapache2-mod-midgard.

    As for stable and devel branches, this is simple to do and in fact I
    would do it very soon regardless of the unittest situation and severely
    restrict commit rights to the stable branches.

    This way when someone want to get their changes to stable they will do
    "pull-request" (in git lingo) (basically list the revisions and uris as
    usable with svn merge) and they will need to get someone else to also
    state "I have tested this to work as specified", then VCS tyrant or his
    assistant can do the merge and we have single commit to revert in case
    it didn't turn out so good. These merge requests would be tracked as
    tickets with the ticket description listing the revisions and uris to
    merge and list of the tickets fixed by said revisions.

    Going for "Debian stable" kind of stability is not really workable since
    that's strictly security fixes only.

    /Rambo

    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  8. Re: [midgard-dev] New cvs-model mRFC

    Mon June 22 2009 12:50:10 UTC
    Hi,

    On Mon, Jun 22, 2009 at 3:32 PM, Eero af
    Heurlin<eero.afheurlin@nemein.com> wrote:
    > teppheikk promised in last years Otaniemi gathering to set up
    > PHPUndercontrol for M-P.org but I guess it has proven to be a bit difficult.

    I would believe this is not due to difficulties, but because of
    available time. If we bribe him by beer to work on this for a day, I'd
    imagine we'll see a lot of progress ;-)

    > Writing unit tests for Thor/Ragnaroek generation is more than slightly
    > complex since MidCOM core supposes we're inside libapache2-mod-midgard.

    Yep. I believe we should *mostly* forget about Ragnaroek (and
    especially Thor!) tests-wise. Though Ragnaland setup makes it somewhat
    possible to emulate the libapache2-mod-midgard environment with
    PHP-CLI:
    http://trac.midgard-project.org/browser/branches/ragnaroek/midcom/midcom.core/support/midgard-root-ragnaland.php

    > As for stable and devel branches, this is simple to do and in fact I
    > would do it very soon regardless of the unittest situation and severely
    > restrict commit rights to the stable branches.

    Agreed. In any case the first thing to do would be to sit down and get
    the test coverate of midcom_core to an acceptable level. I imagine
    this requires couple of days of hacking "with a destructive mindset"
    from me or somebody else well-versed with MidCOM3 internals.

    Alexey already started working on phpt tests for php5-midgard2, and I
    think Piotras had some GObject tests for core.

    > This way when someone want to get their changes to stable they will do
    > "pull-request" (in git lingo) (basically list the revisions and uris as
    > usable with svn merge) and they will need to get someone else to also
    > state "I have tested this to work as specified", then VCS tyrant or his
    > assistant can do the merge and we have single commit to revert in case
    > it didn't turn out so good.

    Yep, that sounds like a sane approach.

    But anyway, having a sane test coverage is the first requirement here.
    Otherwise regardless of the commit process we will end up with vague
    "it feels like it is working" sort of testing.

    > /Rambo

    /Henri

    --
    Henri Bergius
    Motorcycle Adventures and Free Software
    http://bergie.iki.fi/

    Skype: henribergius
    Jabber: henri.bergius@gmail.com
    Microblog: http://www.qaiku.com/home/bergie/
    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  9. Re: [midgard-dev] New cvs-model mRFC

    Mon June 22 2009 13:20:09 UTC
    Henri Bergius wrote:
    > Yep. I believe we should *mostly* forget about Ragnaroek (and
    > especially Thor!) tests-wise.
    >
    >> As for stable and devel branches, this is simple to do and in fact I
    >> would do it very soon regardless of the unittest situation and severely
    >> restrict commit rights to the stable branches.
    >
    > Agreed. In any case the first thing to do would be to sit down and get
    > the test coverate of midcom_core to an acceptable level. I imagine
    > this requires couple of days of hacking "with a destructive mindset"
    > from me or somebody else well-versed with MidCOM3 internals.
    >

    The core issue is much more of a problem for Ragnaroek (if we forget
    about Thor for a moment) than Vinland/Mjölnir

    >> This way when someone want to get their changes to stable they will do
    >> "pull-request" (in git lingo) (basically list the revisions and uris as
    >
    > Yep, that sounds like a sane approach.
    >
    > But anyway, having a sane test coverage is the first requirement here.
    > Otherwise regardless of the commit process we will end up with vague
    > "it feels like it is working" sort of testing.
    >

    having two "it feels like it's working" opinions is better than one (and
    for "core" components I think we may demand more than that and also have
    the person doing the merge personally verify the merge works as
    specified) and in any case we will have single commit to revert with
    this approach rather than many.

    My point with fasttracking this is that we will never have proper test
    coverage for Ragnaroek and having merges to the stable branch behind
    *some* process will improve the situation immensely even if it still
    will be far from "perfect".

    /Rambo
    _______________________________________________
    dev mailing list
    dev@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/dev
    •  Reply
  10. Re: [midgard-dev] New cvs-model mRFC

    Mon June 22 2009 20:42:08 UTC

    Hi,

    The core issue is much more of a problem for Ragnaroek (if we forget about Thor for a moment) than Vinland/Mjölnir

    Yes, for the moment. Partly this is because new MidCOM has been written with PHP5 in mind from the beginning and so is much simpler codebase.

    But mostly this is because there are far fewer people hacking on it so far. When Mjolnir starts to get anything close to the usage numbers of Ragnaroek we're sure to see similar regressions and other issues unless we address them on the process level early on.

    having two "it feels like it's working" opinions is better than one (and for "core" components I think we may demand more than that and also have the person doing the merge personally verify the merge works as specified) and in any case we will have single commit to revert with this approach rather than many.

    Related to this, how about putting all merge requests to core components through code review? Review Board is now at 1.0 at looks quite promising:

    http://www.review-board.org/docs/manual/dev/users/getting-started/introduction/ http://www.review-board.org/screenshots/

    In optimal world everybody would be free to hack on Midgard and components in their private Git repositories. But merging to the official repository would only happen when:

    • tests pass (and have sufficient coverage)
    • the code is reviewed
    • possible IP rights issues are resolved (copyright assignments to the foundation or whatever)

    This may sound bureaucratic, but I'm quite convinced in the end it'd be more productive for all of us, as then we could focus less on hunting regressions and more on writing new working code :-)

    /Henri

    •  Reply
1 2 next
Designed by Nemein, hosted by Kafit