Apache HTTPD Project
E N D
Presentation Transcript
Apache HTTPD Project • A user-driven development • Quality should override everything else • Meritocracy • The more work you have done, the more you are allowed to do • You have to prove yourself in the group
Level of involvement • Core group of committers (the PMC of Apache?) • “Business” issues and limited-circulation things • Committers • People with ‘write’ access to repository • Developers • Users
Developer Committer? • Nominated by a current active member • Unanimously approved by the voting members • In most cases, this ‘new’ member has been actively contributing to the group for over six months
Voting • Many issues are resolved by voting • Code change, feature proposal, etc • Kind of vote: • +1: yes • -1: no, or vetoes • +/- 0: no opinion Ideas must be review-then-commit (RTC); patches can be commit-then-review (CTR).
Approval Process • Consensus – for features? • Must receive at least 3 binding +1 votes and no vetos • Majority – for other thing, such as style? • Must receive at least 3 binding +1 votes and more +1 votes than -1 votes • Lazy – for patches? • No minimal requirement. No special discussion will be carried out until someone votes -1
Vetoes • Vetoes must be accompanied by a convincing explanation • Vetoes cannot be overwritten; vetoer must be the one who withdraw the vote • In progress by Apache HTTPD Group • Under what conditions a veto can be rescinded or overridden?
How do they track problems? • Apache Bug Report Database http://httpd.apache.org/bug_report.html • People not only use this tool to track problems (using PRs), but also use this tool to post occasional suggestion/fix. • State transition of PRs • Open Analyzed Feedback Closed? • Suspended?
Patches • A way to communicate proposed changes (output of a unified "diff -u oldfile newfile" command) • Official patch http://www.apache.org/dist/httpd/patches/ • Unofficial patch (Contributory) http://www.apache.org/dist/httpd/contrib/patches/
How do they track changes? • Change log http://www.apache.org/dist/httpd/CHANGES_2.0 • Categories • PR resolved by committers (majority) • Name listed on http://httpd.apache.org/contributors/ • PR resolved by developers • Enhancements/Features added by developers
Changes related to PRs • Fix suexec behavior with user directories. PR 7810. [Colm <colmmacc@redbrick.dcu.ie>] • Fix PidFile to default to rel_runtimedir instead of rel_logfiledir. PR 7841. [Andreas Hasenack <andreas@netbank.com.br>] • Properly substitute sbindir as httpd's location in apachectl. PR 7840. [Andreas Hasenack <andreas@netbank.com.br>]
Changes unrelated to PRs • Fix perchild MPM so that it uses ap_gname2id for groups instead of ap_uname2id. [Scott Lamb <slamb@slamb.org>] • Change mod_status to use scoreboard accessor functions so it can be used in any MPM without having to be recompiled. [Ryan Morgan <rmorgan@covalent.net>] • add optional fixup hook to proxy [Daniel Lopez <daniel@covalent.net>]
The “STATUS” file • Keep track of the agenda and plans for work • action items, proposed changes, tracking votes, brief note about developer’s task, release plans, etc • Automatically posted to the mailing list each week.
Apache HTTPD 2.0 series http://cvs.apache.org/viewcvs.cgi/httpd-2.0/STATUS?rev=1.621&conten-type=text/vnd.viewcvs-markup • Apache HTTPD 1.3 series http://cvs.apache.org/viewcvs.cgi/apache-1.3/STATUS?rev=1.987&content-type=text/vnd.viewcvs-markup
The ‘patch-vote-release’ process • Patch coordinator • Maintain and circulate the list of proposed patches • Vote coordinator • Announce a voting period, then tally the votes for each patch • Release manager • Apply the approved patches to the latest release
Testing/Stages? • Alpha? • Beta? • GA?
Other projects • FreeBSD http://www.freebsd.org/releng/ • NetBSD http://www.netbsd.org/developers/releng/release-process.html • OpenPKG http://www.openpkg.org/releng.html • Mozilla http://www.mozilla.org/projects/nspr/eng-process/release.html