2 nd SUMOVER Workshop: Code Management Systems
2nd SUMOVER Workshop - Code Management WP2: Software management systems Surveyed a number of systems –Source code versioning systems CVS, RCS, Git, Bitkeeper, Arch, Subversion –Bug tracking systems Bugzilla, Mantis, Trac –Static analysis tools, Testing suites, Doc systems Now running selected system –Trac with Subversion –Imported all existing code and history –Local and external users active –Active use by other UCL
2nd SUMOVER Workshop - Code Management Subversion Advantages over CVS –Atomic commits –Directory versioning –File renaming/deletion handled nicely HTTP based access –WebDAV use for storage and retrieval Apache/LDAP user authentication –File based Authorisation
2nd SUMOVER Workshop - Code Management Trac Written in Python –Uses apache python Subversion code access –Revisions, diffs, syntax colouring, line numbered Wikis –Generally editable (despite Spam probs) –News, Tool info pages, Dev info, Docs… Tickets –Bugs reports, Feature requests, milestone tracking
2nd SUMOVER Workshop - Code Management Apache Running apache –Prefork mode (each HTTP request handled in a separate process) Two virtual hosts –Mediatools.cs.ucl.ac.uk (User friendly name) Apache rewrite used simply access and switch to SSL Non-SSL access –Frostie.cs.ucl.ac.uk (Actual machine name) Used by other projects SSL capable Utilises modules –WebDAV, Python, LDAP, SSL LDAP –Simplifies/Converges user management –Provides authentication for Trac and Subversion users –Authorisation info for some Trac users
2nd SUMOVER Workshop - Code Management Load tuning Robots.txt –Limited access to just main Source Code Tuned apache –Match “MaxClients” to machine memory –Reduce KeepaliveTimeout to 5 secs –Removed non-essential modules
2nd SUMOVER Workshop - Code Management Anti-Spam measures Implemented –Only certain ‘leaf’ pages are editable –SSL enabled: Logged in users Trac tickets and Comments –Added ticket modification Trac module Investigating –Apache modsecurity.org Rule based application level firewall –Protection against a range of HTTP based attacks –Trac anti-spam module Uses pattern matching to trip up spammers –CAPTCHA’s "Completely Automated Public Turing test to tell Computers and Humans Apart"