Karabo installation and software organization

Slides:



Advertisements
Similar presentations
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Advertisements

70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 1: Introduction to Windows Server 2003.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Installing software on personal computer
© 2010 IBM Corporation IBM Experience Modeler - Theme Editor Installing Python Image Library Presenter’s Name - Presenter’s Title DD Month Year.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 1: Introduction to Windows Server 2003.
SubVersioN – the new Central Service at DESY by Marian Gawron.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
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 with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Linux Operations and Administration
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
INFSO-RI Enabling Grids for E-sciencE The gLite Software Development Process Alberto Di Meglio CERN.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Overview of LHCb applications and software environment LHCb software tutorial - March
Subversion (SVN) Tutorial Source:
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
1 Chapter Overview Publishing Resources in Active Directory Service Redirecting Folders Using Group Policies Deploying Applications Using Group Policies.
Module 6: Configuring User Environments Using Group Policy.
Invitation Only Conferences Michaela Marx, DESY JACoW Team Meeting Frascati, Italy,November 2005.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
1 / 22 AliRoot and AliEn Build Integration and Testing System.
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
Semi-Automatic patch upgrade kit
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
Free Powerpoint Templates Page 1 Free Powerpoint Templates Users and Documents.
1 MSTE Visual SourceSafe For more information, see:
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
Software Engineering Overview DTI International Technology Service-Global Watch Mission “Mission to CERN in Distributed IT Applications” June 2004.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
Part 4: FCM and the UM University of Reading, December 2015.
K. Harrison CERN, 22nd September 2004 GANGA: ADA USER INTERFACE - Ganga release status - Job-Options Editor - Python support for AJDL - Job Builder - Python.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Overview Using Plugins Developing Plugins Basic Examples / Demo Outlook Overview Using Plugins Developing Plugins Basic Examples / Demo Outlook Plugin.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Towards an Information System Product Team.
Slide 1. What's New in NetBeans IDE 7.1 Name Title.
Managing User Desktops with Group Policy
Architecture Review 10/11/2004
Build and Test system for FairRoot
Integrating ArcSight with Enterprise Ticketing Systems
UNICOS Application Builder Architecture
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Development Environment
Integrating ArcSight with Enterprise Ticketing Systems
SVN intro (review).
Overview – SOE PatchTT December 2013.
SPI Software Process & Infrastructure
Testing for patch certification
Objectives Differentiate between the different editions of Windows Server 2003 Explain Windows Server 2003 network models and server roles Identify concepts.
Advanced Integration and Deployment Techniques
DHCP, DNS, Client Connection, Assignment 1 1.3
Chapter 2: System Structures
Chapter 2: The Linux System Part 1
Module 01 ETICS Overview ETICS Online Tutorials
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
JENKINS TIPS Ideas for making your life with Jenkins easier
Open Source Software Development Processes Version 2.5, 8 June 2002
Open Automation Software
Concurrent Versions System
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

Karabo installation and software organization Karabo Workshop Hamburg, 24.09.2013 Janusz Szuba WP76 How to edit the title slide Upper area: Title of your talk, max. 2 rows of the defined size (55 pt) Lower area (subtitle): Conference/meeting/workshop, location, date, your name and affiliation, max. 4 rows of the defined size (32 pt)

Outline Overview of development environment Structure and organization of Karabo software Step by step installation

Big picture Package repository Source code maintenance Continuous Integration Code development Documentation Bug tracker

Big picture Package repository Source code maintenance Continuous Integration Code development Documentation Bug tracker

Code development Supported operating systems: Ubuntu 10.04, 12.04 – 32 and 64 bit architecture Scientific Linux 6.3, 6.4 – 32 and 64 bit architecture Mac OS X, 10.7 (Lion), 10.8 (Mountain Lion) – 64 bit architecture Languages C++ (gcc 4.6, 4.7, 4.2 – native Mac OS X compiler) Python 2.7 Build system Make, GNU autotools (for dependencies) NetBeans projects

SVN repository Central SVN repository https://svnsrv.desy.de Authentication – kerberos , basic and certificate Preferred kerberos for all having DESY accounts For external collaborators – basic authentication Web interface https://svnsrv.desy.de/k5websvn/ https://svnsrv.desy.de/k5websvn/wsvn/EuXFEL.WP76/karabo/ Command line access With kerberos authentication https://svnsrv.desy.de/desy/EuXFEL/WP76/karabo With basic authentication https://svnsrv.desy.de/basic/EuXFEL/WP76/karabo

Special arrangement for tutorial SVN repository Special Karabo Tutorial repository Web interface: https://svnsrv.desy.de/k5websvn/wsvn/General.karaboTutorial (only for selected users) https://svnsrv.desy.de/baswebsvn/wsvn/General.karaboTutorial Command line: https://svnsrv.desy.de/desy/karaboTutorial (only for selected users) https://svnsrv.desy.de/basic/karaboTutorial User name and password karabo.workshop@onet.eu, 24Sep2013 When you plan to develop karabo devices or contribute to framework after the workshop Create your own account in SVN repository if you don’t have one already Instructions – Getting Started on Karabo framework site in Alfresco Documentation server Contact us to get access to karabo repository Url to karabo package development https://svnsrv.desy.de/basic/karaboTutorial/karabo/karaboPackageDevelopment

SVN repository structure Karabo repository structure karaboFramework Base libraries, binaries, python bindings, GUI karaboPackages Plugins – devices, sorted in different categories like controlDevices, computeDevices, etc. Additional dependencies for plugins karaboPackageDevelopment Environment for developing and testing plugins Helper script for creating new plugins, commiting, checking out from repository etc. Basic templates with netbeans projects for devices or dependencies Running environment – scripts for starting device servers, gui, broker etc

Code maintenance conventions Follow best practices for a project structure: Trunk, branches, tags folders for each individual project/plugin/dependency Assured when using „karabo” helper script Follow best practices for release versioning: Major, minor, patch level: e.g. 1.3.5 Major number change – possible compatibility break in API, communication protocols Minor numer change – assured API compatibility, new features Patch level change – bug fixes Naming conventions for device plugins, dependencies Camel case for package name, like simpleMotor, simulatedCamera Capitalization for class names, like TestMessageReader Camel case for executables, like tcpClientAsync Coding conventions, netbeans customization

Continuous Integration - Jenkins Automated or on demand tasks: Compiling on different OS Testing – unit tests Creating installation packages Deploying and running functional tests Current setup with Jenkins Nightly builds of karaboFramework from trunk Keeping trunk in shape all the time Release builds karaboFramework installation packages creation, testing and copying to web/ftp repository Jobs on demands, parametrized with svn version, unit tests options, build type, etc Plugin for triggering jobs from netbeans

Installation packages repository Currently contains karaboFramework binary installation packages Binary packages for plugins and dependencies, as well as packaging into rpms and debian packages will follow in future Repository location Internal network http://www-exfel-wp76.desy.de/karabo Accesible from outside ftp://karabo:framework@ftp.desy.de Repository structure Nightly builds: date subfolder, filename indicates svn revision number Released builds: trunk(branch)/version/date, filename indicates version number Links for karabo framework installation packages ftp://karabo:framework@ftp.desy.de/released-builds/tags/1.0.1/2013-09-23 http://exflserv01/karabo/released-builds/tags/1.0.1/2013-09-23

Bug tracker Mantis bug tracker http://www-exfel-wp76.desy.de/static/mantisbt Currently available within internal network Planned migration to a web service available world-wide Register first, then create a new bug report Don’t submit a bug anonymously

Documentation Karabo Framework site on Alfresco documentation server https://docs.xfel.eu/share/page/site/KaraboFramework/dashboard All EuXFEL emploees have account by default For external collaborators, tutorial participants, accounts are created and invitations to join the site sent Wiki pages, Document library Plugin/devices documentation site – Karabo Plugins Accesible from within GUI as a documentation panel Editable in GUI and on the web

Karabo support email karabo@xfel.eu Request Tracker email distribution list Serves as a support entry point

Karabo software use cases Karabo Framework developer Needs all the source code Development environment fully equipped with all necessary dependencies (mainly development packages – header files) Karabo Device Plugin developer Needs Karabo Framework binary package Binaries, libraries, header files, python source Needs plugins source code templates, examples Needs environment for testing developed plugins Karabo software deployment Needs precompiled set of plugins and their dependencies Needs configuration/versioning tool for selecting compatible set of karabo framework and plugins versions For the first two use cases we provide consistent environment setup Deployment use case is in preparation

Karabo Framework software structure Separate netbeans projects Karabo library – base library Code structured to functional groups util, net, io, core, xms, log, xip, webAuth Karathon library – python bindings Binaries Device server, broker message logger Python karabo Natively implemented device server and FSM Python GUI and command line interface Third-party dependencies – compiled and shipped with installation package Python 2.7 with addtional modules: numpy, scipy, matplotlib, ipython (with qtconsole and notebook), pyqt4, h5py Mac OS X needs its own python installation (preferred way through macports) Boost, hdf5, log4cpp, cppunit openMQ C API and JMS broker (currently broker on Linux only)

Karabo Framework binary installation package Precompiled Karabo Framework is available as a self extracting tar file Always installs under single folder karabo-version or karabo- revision_number in case of nightly builds Interactive or batch (needs --prefix=top_installation folder) installation During post-installation phase two configuration files are created $HOME/.karabo/karaboFramework Contains full path to karabo framework installation directory Used in netbeans makefiles for finding location of libraries and header files Every new installation of karabo framework overwrites this file with a new location $HOME/.karabo/karaboSvnPath Contains url pointing to karabo SVN repository for svn command line client Needed as different authentication schemes (kerberos, basic, certificate) have different urls

Karabo Package Development environment Helps with creation, development and running/testing device plugins Set of templates for new packages karabo script new - Create a new package checkout - Checkout an existing package (use list to retrieve name) install - Install a packages configuration update - Update (svn) an installed packages configuration rebuild - Rebuild packages within installed configuration list - Create listings of various type tag - Creates a svn tag for a given package branch - Creates a svn branch for a given package setsvn - Sets karabo svn repository path Run folder Set of scripts for starting up all components: device servers, GUI, CLI, local broker Packages configuration files – describing a logical set of packages to be installed

Karabo Packages Every device plugin is a separate netbeans project In SVN repository it is placed in appropriate category controlDevices, computeDevices, testDevices, etc Can be checkout separately self-contained Netbeans project Can be checkout within Karabo Package Development Helps in development and managing many plugins and their possible additional dependencies Helps with setting-up self-contained running environment

JMS broker Currently using Oracle JMS openMQ 4.5.2 broker Standalone application Or within GlassFish server Also available within full Netbeans installation including GlassFish server For our development team we have centrally maintained broker instance running all the time Communication through different topics – default is a username For standalone development Included in Karabo Framework binary installation package Start/stop/query scripts in Karabo Package Development

Netbeans development environment All karabo software ingredients comes as a separate netbeans project C++ as well as Python Note: there is no official Netbeans support for Python, user community plugin needs to be installed, description on Karabo Framework Wiki Support for command line compilation automated tasks, batch compilation Currently we require Netbeans 7.3 Version 7.3.1 comes with upgraded JMS broker v5.0, not compatible with v4.5.2, currently used with karabo software This is important when running broker from Netbeans

Step by step installation Live demo