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