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

Slides:



Advertisements
Similar presentations
Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
Advertisements

Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Free Your Mind Code.  Sometimes I write software in exchange for money (don’t judge)  Sometimes I write software in exchange for knowledge, experience,
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Version control Using Git 1Version control, using Git.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Pointers to more effective software & data in audio research Mark D Plumbley, Chris Cannam, Steve Welburn Centre for Digital Music Queen Mary, University.
Programming in Teams And how to manage your code.
Module 10: Designing an AD RMS Infrastructure in Windows Server 2008.
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
A primer on version control at OTN
Version Control. What is it? Software to help keep track of changes made to files Tracks the history of your work Helps you collaborate with others.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
Cole David Ronnie Julio. Introduction Globus is A community of users and developers who collaborate on the use and development of open source software,
Code.soundsoftware.ac.uk: A software repository for sustainable collaborative research Mark Plumbley, Chris Cannam, Luis Figueira Centre for Digital Music.
GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
TOPIC 7.0 LINUX SERVICES AND CONFIGURATION. ROOT USER Root user is called “super user” because it has power far beyond those of mortal user. As root,
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Software Sustainability Institute CW2016 Hackday Technical considerations or How to score extra marks with the judges CW2016 March 22.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Version Control How and why to control changes in a software artifact.
Initiating UK OOI CI Project 7 th /8 th March 2011.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
1 April 16, Open Source Software Project Infrastructure William Cohen NCSU CSC 591W April 16, 2008.
Biosafety Clearing-House Solutions for National Participation First Regional Advisors Meeting, Delhi, INDIA, 26 April 2007 Philippe Leblond Secretariat.
Key management issues in PGP
CS5220 Advanced Topics in Web Programming Version Control with Git
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Information Systems and Network Engineering Laboratory II
Operating System Structures
Git & Github Timothy McRoy.
Continuous Integration (CI)
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Git and GitHub primer.
External Web Services Quick Start Guide
Code Management Releases
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control overview
Version control, using Git
SPI Software Process & Infrastructure
Savannah to Jira Migration
Development and Deployment
THE STEPS TO MANAGE THE GRID
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Concurrent Version Control
Introduction to Configuration Management
DHCP, DNS, Client Connection, Assignment 1 1.3
Digital filing & note-taking
Auth0 Is Identity Made Simple for Developers, Built by Developers and Supported by the High Availability and Performance of Microsoft Azure MICROSOFT AZURE.
Getting Started with Git and Bitbucket
Chapter 2: System Structures
Lecture 1: Multi-tier Architecture Overview
Version Control at Google
JENKINS TIPS Ideas for making your life with Jenkins easier
Git CS Fall 2018.
CISC/CMPE320 - Prof. McLeod
GitHub and Git.
Configuration management suite
O.S. Security.
Chapter 4: Security Policies
Presentation transcript:

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”

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

Miscellaneous desirable items Something that helps with licence compatibility problems? Automatically tracking external repositories and integrating into our build/test?