1 / 16

Apache HTTPD Project

Learn the user-driven development process and quality standards of the Apache HTTPD Project, including the approval process, voting system, and vetoes. Discover how vetoes can be rescinded or overridden and how issues are tracked through the Apache Bug Report Database. Explore the patch submission process and how changes are tracked through the change log. Dive into the 'STATUS' file that keeps track of project plans and agendas. Gain insights into the patch-vote-release process and the roles of patch coordinator, vote coordinator, and release manager in applying patches and managing releases. Lastly, explore testing stages and discover related processes in other projects like FreeBSD, NetBSD, OpenPKG, and Mozilla.

darrellj
Download Presentation

Apache HTTPD Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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).

  5. 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

  6. 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?

  7. 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?

  8. 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/

  9. 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

  10. 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>]

  11. 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>]

  12. 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.

  13. 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

  14. 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

  15. Testing/Stages? • Alpha? • Beta? • GA?

  16. 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

More Related