Request for pull mailbot - nesciens/xmms2-wiki GitHub Wiki

This page contains discussion about a certain issue or technical concept - feel free to edit and add comments. Once the issue has been resolved and/or the relevant details have been worked out, the comments and discussion will be moved to the talk page and this page will be finalised.

This page outlines ideas for a more well defined process for integrating code in the main repository

The main point of this change is to foster peer review. But as a side effect it should also make it easier to do automated sanity checks on code and changesets and hopefully make it _easier_ to get code integrated. Today the developer (DEV) needs to tell/nag someone with write access to -devel, the integrator (IGR), to get their changes accepted and propagated to -devel. There is no well-defined process of what the requirements are, and how easy it is depends on the IGR and his/her mood, how busy (s)he is and a lot of other things (like how annoying the DEV is).

My idea is to have a little mailbot.

DEV has done some (at least (s)he thinks so) nice commits in his tree. To integrate the changes in -devel the following steps need to be taken:

  • push the commits to his public repository, git://git.xmms.se/xmms2/xmms2-randdev.git.
  • send a mail to [email protected] stating the commit id for the top of tree he wishes to integrate into -devel
    • Is this really necessary, isn't the idea that whatever is pushed is something you want to get included? tru
  • [email protected] is the mailbot, which now does some sanitychecking. Suggested tests:
    • check that current -devel is included in the tree to integrate.
    • check that all changeset comments have correct tagging (OTHER/BUG/FEATURE)
    • merge / compilation test? tru
      • I've done some work on automating this with waf and parsing the results. puzzles
      • See also [BuildLog]]. [Anders Gustafsson
  • If any of the tests failed DEV will get a reply informing him of the tests that failed.
  • If all tests passed a mail is sent to the mailinglist. This will include:
    • Each commit's changelog and diffstat.
    • If small enough, the diff.
    • Any non fatal warnings that the sanitychecker may have produced.
  • Other DEVs/IGRs can review the code, and reply to the mail (to the mailinglist).
    • If they think it is ok to integrate they include a RFP OK line in their mail.
    • The change can also be vetoed by including RFP VETO in the mail.
  • When required number of OK's is received, the changesets are automatically pulled into -devel.

The criteria could be something like (this is just an example!):

  • No vetos from core developers
  • Two OK from core developers, or...
    • One OK from core developers and more than 2 OK from non core developers

Other ideas:

  • How about mailing patches more or less in the same way? Maybe pulled directly from mantis? tru