Document 7878144

Download Report

Transcript Document 7878144

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 <[email protected]>]
Fix PidFile to default to rel_runtimedir instead
of rel_logfiledir. PR 7841. [Andreas Hasenack
<[email protected]>]
Properly substitute sbindir as httpd's location
in apachectl. PR 7840. [Andreas Hasenack
<[email protected]>]
Changes unrelated to PRs
Fix perchild MPM so that it uses
ap_gname2id for groups instead of
ap_uname2id. [Scott Lamb
<[email protected]>]
Change mod_status to use scoreboard
accessor functions so it can be used in any
MPM without having to be recompiled. [Ryan
Morgan <[email protected]>]
add optional fixup hook to proxy [Daniel
Lopez <[email protected]>]
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/httpd2.0/STATUS?rev=1.621&contentype=text/vnd.viewcvs-markup
Apache HTTPD 1.3 series
http://cvs.apache.org/viewcvs.cgi/apache1.3/STATUS?rev=1.987&contenttype=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/engprocess/release.html