= Development Projects = * libressl (current) * birdshack (future) * misc * openca-ocspd patches * wordpress-certificate login plugin * roundcube certificate login = Requirements from a developers point of view = * good branch management * easy to make a new branch * intelligent merge * good response times (to make small and frequent commits feasible) * (enforceable) workflow (more procedure than tech, non the less...) * more structured testing * what specifically to test on a patch * how many (and whose) stamps of approval are required * hashing & signing * devel: THIS is my patch, and the copy you have is unchanged. * test_1: I checked THIS patch, and I found it to be good/bad. (+comments) * test_n: I checked THIS patch, and I found it to be good/bad. (+comments) * leader: "According to policy and test results, THIS patch is acceptable. Admins please install it on the production system, ASAC." (As soon as convenient) . vs. "According to policy and test results, THIS patch is not acceptable. Admins, take note that it does NOT reach the production system." * especially important if we plan to outsource hosting of the central repository (in order to verify the hoster doesn't tamper with our code) * compatibility between the one (critical) production repository and one, or more, (non-critical) devel and/or test repositories. * frequent updates/replication (uni-directional) from production to devel/test. * continious integration * works with SCM [[https://lists.cacert.org/wws/arc/cacert-devel/2009-09/msg00062.html|PG]] * easy to grab working testimage [[https://lists.cacert.org/wws/arc/cacert-devel/2009-03/msg00019.html|DB]] == Nice to have == * fast checkouts to make bughunting easier * someone to say "enough, this patch is/isn't acceptable" * someone to prod buttock if the flow stagnates = system admin requirements = * Outsourced or standard packages on Linux distro * No sysadmin interaction required to create accounts == matrix == ||||requirement ||||||||||repo || |||| ||CVS ||Git ||Mercurial ||Subversion ||... || ||1 ||Branches (easy) || ||yes ||yes ||somewhat || || ||2 ||Branch merging ||mess ||nice ||nice ||mess || || ||3 ||Response times || ||speed of light ||speed of sound || || || ||4 ||Hashing || ||yes ||yes ||indirectly || || ||5 ||Signing || ||yes ||yes ||indirectly || || ||6 ||[[http://whygitisbetterthanx.com/#any-workflow|workflow]] || ||[[http://source.android.com/submit-patches/workflow|proposal]] || || || || ||7 ||compatibility with production repo || || || || || || ||... ||... || || || || || || ||n ||... || || || || || || == Preferences == === SCM === * git [[https://lists.cacert.org/wws/arc/cacert-devel/2009-09/msg00045.html|JS]] === Infrastructure === * Redmine[[https://lists.cacert.org/wws/arc/cacert-devel/2009-04/msg00018.html|AMP]] = Hosting Options = == Gitorious == * [[http://www.gitorious.org/about|Gitorious]] * SCM: git * OpenID registration * users can create public clones * Merge request system available == SourceForge == * [[http://sourceforge.net/apps/trac/sourceforge/wiki/WikiStart|SourceForge]] * SCM: Subversion, Git, Mercurial, Bazaar, CVS * OpenID registration == Others? == == Self hosting == * Option tools that aren't included on outsourced provider can be CAcert run if there's smooth intergration = Discussion Links = TODO - extract requirements from: * [[https://lists.cacert.org/wws/arc/cacert-devel/2009-09/msg00038.html|WvdR]] thread * [[https://lists.cacert.org/wws/arc/cacert-devel/2009-09/msg00021.html|DA]] thread * [[https://lists.cacert.org/wws/arc/cacert-devel/2009-03/msg00019.html|DB]] test image thread ---- CategorySoftware