Transcript Title

SCAPE
Developer Workshop
Getting started…
Andrew Jackson – SCAPE Technical Coordinator
The British Library
SCAPE Kick-Off Meeting
Vienna, February 2011
SCAPE
SCAPE Technical Coordinator
• Role
• To chair the Technical Coordination Committee
• To facilitate the development of an optimally integrated
high-quality preservation platform.
• To propose and evolve the technical infrastructure and
architecture to ensure the work in the individual workpackages can work together
• To resolve technical dependencies or conflicts between
work-packages
• To provide implementation support and expertise
SCAPE
An Initial Proposal
• This talk outlines a concrete proposal for an initial
shared development infrastructure
• It is set up and ready to work today
• But it is not set in stone
• How can I help you?
• The aim is to make it easy to work together
• Let me know if you have any ideas!
• [email protected]
SCAPE
Proposed Development Environment
• Source code hosted on github.com
• Great code and team management
• Other development tools:
•
•
•
•
A public-facing wiki (Confluence)
Issue tracking (JIRA)
Continuous integration (Bamboo)
Code inspection and review (FishEye & Crucible)
• Supported by the Open Planets Foundation.
SCAPE
Proposed Build System
• Java is expected to be the base language
• This does not require all components to be written in Java
• But all components must be interoperable, and any
interoperability layers should be specified in Java at least
• Maven 2 is the proposed build system
• Powerful dependency management
• The de facto standard for large Java projects
• Also used by JHOVE2, DROID, Hadoop, among others
• Supported by most IDE software
• No need to support multiple project files for Eclipse, NetBeans, etc
SCAPE
Platform Integration Plan
• Many components depend on the SCAPE Platform
• The platform will be developed over time
• At first, Hadoop: Map-Reduce, HDFS, etc.
• Building to the full SCAPE platform
• How to ensure we can run on all Platform iterations?
• An interface layer will be specified for all to work against.
• Based on the Characterise, Migrate, Compare interfaces
from Planets, but appropriate to distributed architecture.
• Consistent with JHOVE2, etc.
SCAPE
Understanding cross-package dependencies
• Achieving this will require a full understanding of the
cross-package dependencies.
• Data, models and code.
• I’ll need your help…
• Each sub-project should provide a technical expert to sit on
the coordination committee.
• Interdependencies will be mapped and resolved in that
committee.
• Thanks for your patience!
SCAPE
Practical Session
• It took about a year to get everyone set up on the
Planets development environment.
• For SCAPE, we’ll do it today.
• Go to the SCAPE public wiki:
• http://wiki.opf-labs.org/display/SP
• Click on ‘Getting started’ to see the links you need.
SCAPE
Practical 1 – Signing up…
Sign up with github.com
• Go here and sign up:
https://github.com/signup/free
• Note your username.
Sign up with OPF Labs
• Go here:
http://jira.opf-labs.org/
• Use the Sign Up link.
• Note your username
• Then email both usernames to [email protected]
• e.g.
github: anjackson
opf-labs: anjackson
• And I’ll add you to those projects.
9
SCAPE
Practical 2 – Set up git and github…
• As per http://help.github.com/
• Install git
• Generate SSH keypair
• Add your public key to your github account
• Set your user and email in git
• Note that the Eclipse git plugin (egit) is quite good.
• If you have set everything up okay, you should now
be able to check out the code:
• git clone [email protected]:openplanets/scape.git
• p.s. there is no code, yet.
10
SCAPE
Practical 3 – Adding your WP README file
• Add your work-package README file
• e.g. XA/WP.2.Technical.Coordination/README.md
• Include a list of the deliverables.
• If you know which deliverables, software or data models
your work depends on, please note them there.
• Add and commit it…
• git add XA/WP.2.Technical.Coordination/README.md
• git commit –m “Added WP README file.”
• Push your additions up to github:
• git push origin master
SCAPE
Summary
• Proposed environment for code development:
•
•
•
•
•
Mostly Java
Built with Maven
Managed with git
Hosted on github.com
OPF Labs provides additional services
• Issue tracking in JIRA
• Continuous Integration
• Wiki and more…
• Feedback please, to [email protected]