Software Sustainability Services. Some vague initial technical thoughts Chris Cannam, March 2010



Similar documents
My review of Webfaction

Source Control Systems

Hudson Continous Integration Server. Stefan Saasen,

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

How To Manage Change In Jeepers

Is the Scanning of Computer Networks Dangerous?

Version Control with Git

SOFTWARE DEVELOPMENT BASICS SED

What CCPForge does Introduction to SESC and CCPForge Workshop Gemma Poulter

ALERT installation setup

Retour d'expérience sur le choix d'une forge logicielle / Choosing a software forge

Advanced Computing Tools for Applied Research Chapter 4. Version control

Writing Books Using Open Source Software

Redmine: A project management software tool. January, 2013

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

Content. Development Tools 2(63)

SEVENTH FRAMEWORK PROGRAMME Networked Media. Specific Targeted Research Project SMART (FP )

Jenkins TestLink Plug-in Tutorial

Open Source vs. Collaborative Software: FOSS is Not Enough

Continuous integration with Jenkins CI

Filippo Lanubile, Christof Ebert, Rafael Prikladnicki, and Aurora Vizcaíno

StriderCD Book. Release 1.4. Niall O Higgins

Continuous Integration Multi-Stage Builds for Quality Assurance

Version Control with. Ben Morgan

Project Management. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Version Control using Git and Github. Joseph Rivera

Is This Your Pipe? Hijacking the Build Pipeline

Collaborative Software Development Using R-Forge

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

Introducing Xcode Source Control

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Orion: Software Development in the Browser

Solving the Package Problem? Or Making it Infinitely Worse?

Delivering Quality Software with Continuous Integration

Source Code Control & Bugtracking

SA4 Software Developer Survey Survey Specification v2.2

A central continuous integration platform

Requirements INTLAND SOFTWARE. Management Guide INTLAND SOFTWARE LIBRARY QUIET ZONE. Requirements. Requirements

Practical continuous deployment

Continuous Integration/Testing and why you should assume every change breaks your code

Jenkins: The Definitive Guide

Database Build and Release will get started soon

Information Security Group Active-client based identity management

Getting Started. UC Santa Barbara Setup public repository (GitHub, Bitbucket) Identify workflow:

Continuous Integration

Priority: Medium Channel to Actor: Graphical User Interface (GUI) Usage Frequency: Weekly Secondary Actors: Database, Brisk Application

Zero-Touch Drupal Deployment

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Single Sign-On Framework in Tizen Contributors: Alexander Kanavin, Jussi Laako, Jaska Uimonen

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Software Configuration Management and Continuous Integration

Lab Exercise Part II: Git: A distributed version control system

Best Practices for Java Projects Horst Rechner

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Software infrastructure for Java development projects

Software Continuous Integration & Delivery

Continuous Integration using Docker & Jenkins

The Benefit of Experience: the first four years of digital archiving at the National Archives of Australia

STABLE & SECURE BANK lab writeup. Page 1 of 21

DEVELOPMENT OF A AUTONOMOUS BUILD AND DISTRIBUTION SYSTEM FOR SOFTWARE WITH HYBRID DEVELOPMENT MODELS

Career Paths... Digital Job Areas Digital

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

The Cordova Development Lifecycle

Continuous Integration Northwestern University. Evanston, Illinois November The Business of IT

Working Copy 1.4 users manual

Mastering Redmine. Andriy Lesyuk. Chapter No. 3 "Configuring Redmine"

Double Feature Talk. 1) Intro to SSL 2) Git Basics for Devs & Designers

Identity Management in Liferay Overview and Best Practices. Liferay Portal 6.0 EE

IKAN ALM and Collabnet TeamForge

OpenShift on you own cloud. Troy Dawson OpenShift Engineer, Red Hat November 1, 2013

How to Create a Free Private GitHub Repository Educational Account

Steve Gibson Revolutionizing Website Login and Authentication with SQRL SQRL

Transcription:

Software Sustainability Services Some vague initial technical thoughts Chris Cannam, March 2010

What services do we want to offer? Code repository For use by developers of new software and maintainers of old software Build service Continuous integration Cross-platform builds, unit tests Data service Perhaps integrated with build & test procedures What else?

Successful services Will be immediately useful Obvious how the service will assist research & development Factors specific to our field to make it more compelling than other existing services Will not present cultural or diplomatic obstacles e.g. support private work protected (from us, and others) by both technical and policy mechanisms Will help to build the community by making associations between related pieces of work, and between code and publications Will be friendly, reliable, and trustworthy

Some technical goals Simple integrated build service: commit code trigger cross-platform rebuild and test read a report of current status on the website Easy authentication, preferably permitting existing credentials such as OpenID At least 15% of our Subversion users have forgotten their passwords Support multiple projects with different owners, but permit individuals to work on many of them Support various hosting levels (see next page)

Levels of hosted-ness 1. New code developed entirely within the service Open source / closed source / decide later 2. Code published elsewhere then maintained within the service (abandonware, forks) 3. Code published elsewhere but mirrored / tracked within the service (build, test, portability services) Diplomatic considerations needs to be clear that this is an assistance rather than a rival to existing developers 4. Code hosted entirely elsewhere but which the service assists indexing and discovery of?

Things that would obviously be good Providing everything we would need to maintain Sonic Visualiser (current build infrastructure in particular is a bit of a mess) Providing build, test, and general help infrastructure for prospective authors of Vamp plugins Providing whatever would be useful for e.g. MSc students trying to convert Xue's code to plugins What else do we know about already...?

Review of existing forge services SourceForge the original, recently overhauled Savannah, BerliOS, Alioth, many others based on old SourceForge code Google Code simple but not always intuitive; popular with the true geek GitHub, BitBucket specific to Git and Mercurial respectively; former is very trendy at the moment Lighthouse, Assembla, JIRA commercial offerings aimed at business use Launchpad Ubuntu/Canonical hosted service

Software for running your forge Name Comments For Against FusionForge, Savane Forks of original SourceForge code Widely used Clumsy compared with newer software Trac Minimal, developerfocused code and tracker application Widely used Single project per instance; not intuitive to normal people InDefero Clone of Google Code Origo Academic project? Published by ETH Zurich Redmine Uses Ruby on Rails Nice to use, has Mercurial support Ugly; apparently not widely used Retrospectiva Reminiscent of GitHub; uses Ruby on Rails

Version control systems Centralised Subversion the only current practical option Distributed Git and Mercurial most popular, Bzr most unpronounceable Git popular with kernel hackers and überleet Mercurial more limited but easier to get into, better cross-platform support, possibly easier to manage server for (authentication etc) Centralised or distributed? Distributed may be far more appropriate when hosting or mirroring software that was originated elsewhere Single system, or a choice?

Continuous integration systems BuildBot (Python) Hudson (Java) TeamCity (primarily commercial) CruiseControl Originally Java, Ruby implementation (CruiseControl.rb) looks promising if using one of the Ruby forge systems