Notebook Development and Testing

Slides:



Advertisements
Similar presentations
Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Pre-Tested Commits with Jenkins and Reviewboard Yardena Meymann VMware.
Advertisements

WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
1 CS428 Web Engineering Lecture 18 Introduction (PHP - I)
SubVersioN – the new Central Service at DESY by Marian Gawron.
Group 4: Web based applications/ crowdsourcing Marcel Prastawa Ziv Yaniv Patrick Reynolds Stephen Aylward Sean Megason.
RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/
HTTP; The World Wide Web Protocol
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Pragmatic Projects Prepared by Doug Glidden. Pragmatic Projects Pragmatic Teams Ubiquitous Automation Ruthless Testing It’s All Writing Great Expectations.
Log Files. eValid Log Files eValid validates your WebSite by recognizing and recording both successful and unsuccessful events. Detailed records are stored.
Source Code Control CSE 3902 Matt Boggus. Source code control options for CSE 3902 Must use source code control that is integrated with Visual Studio.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Test Data Management. Distributed Version Control Meant for source code, not data Local history of source is good –Often modified  interesting history.
Bulk Metadata Structures in CERA Frank Toussaint, Michael Lautenschlager Max-Planck-Institut für Meteorologie World Data Center for Climate.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
May 2, 2013 An introduction to DSpace. Module 1 – An Introduction By the end of this module, you will … Understand what DSpace is, and what it can be.
JSON and A Comparison of Scripts. JSON: JavaScript Object Notation Based on a subset of the JavaScript Programming Language provides a standardized data.
The CERA2 Data Base Data input – Data output Hans Luthardt Model & Data/MPI-M, Hamburg Services and Facilities of DKRZ and Model & Data Hamburg,
Google Refine for Data Quality / Integrity. Context BioVeL Data Refinement Workflow Synonym Expansion / Occurrence Retrieval Data Selection Data Quality.
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
The Insight Journal Luis Ibáñez KITWARE, Inc.. NAMIC and The Insight Journal.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
STRUCTURE OF JSP PRESENTED BY: SIDDHARTHA SINGH ( ) SOMYA SHRIVASTAV ( ) SONAM JINDAL ( )
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Meeting Date: TST #21 Document.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Petr Škoda, Jakub Koza Astronomical Institute Academy of Sciences
© 2016, Mike Murach & Associates, Inc.
Git and GitHub primer.
External Web Services Quick Start Guide
Contributing to documentation
Ch 1. A Python Q&A Session Bernard Chen 2007.
How 2 contribute to Mozilla code base
Releases and developments
Test Case Structure Test Case Module(depend on framework) MocoServer
SimpleITK Historical Overview: Standing on the Shoulders of Giants
Piotr Goryl/Tango Community, S2Innovation Sp. z o.o.,
SimpleITK Historical Overview: Standing on the Shoulders of Giants
Notebook Development and Testing
SimpleITK Setup and Schedule
SimpleITK Setup and Schedule
OSOR - new opportunities for sharing statistical software
Compilers, Make and SubVersion
Trainings 11/18 Advanced Java Things.
Jupyter Notebooks in Dyalog APL
SimpleITK Fundamental Concepts
GitHub A Tool for software collaboration James Skon
SimpleITK Fundamental Concepts
Open Source Software Development Processes Version 2.5, 8 June 2002
(UCCSC, 2017) Vince Kellen CIO, UC San Diego
CONTINUOUS INTEGRATION –WHY WE DO IT?
CI/CD Workflow and Event Pages
Python Crash Course CSC 576: Data Science.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Test Process “V” Diagram
Notebook Development and Testing
SimpleITK Historical Overview: Standing on the Shoulders of Giants
SimpleITK Setup and Schedule
Information Retrieval and Web Design
Your computer is the client
UNGP Methods & Developer Services
ITK Performance Visualization
PyWBEM Python WBEM Client: Overview #2
Overview on CI Use JJB (Jenkins Job Builder) to manage Jenkins jobs.
SeeSoft A Visualization Tool..
Presentation transcript:

Notebook Development and Testing 1Hans J. Johnson, 2Bradley C. Lowekamp, 3Ziv Yaniv 1The University of Iowa 2National Institutes of Health 3TAJ Technologies Inc. 4MSC LLC

Maintaining Your Python Notebooks Notebooks are code and prose. Use a version control system (git, hg, svn). Test them, at least execution (pytest, nose2, unittest). Notebooks are not pure code, they may also contain execution results. Commit clean notebooks to avoid messy history and an unnecessarily large repository. Use a continuous integration service to run your tests (CircleCI, Travis CI, Appveyor).

SimpleITK Notebook Development and Testing One authoritative repository: github.com/InsightSoftwareConsortium/SimpleITK-Notebooks No direct commits to this repository, only pull requests. Code review and test (pytest) pull requests: Static: (1) ensure notebooks contain no output; (2) spellcheck all markdown/prose cells and comments in code. Dynamic: (1) Run the notebook using the jupyter nbconvert tool and analyze result (notebook in JSON format). Mark code cell meta-data: simpleitk_error_allowed (may or may not happen), simpleitk_error_expected; (2) regression testing – in the works. Deal with memory constraints on build machines.

SimpleITK Notebook Development and Testing Data sharing: Storage: (1) images on MIDAS data servers or on accessible web pages (raw url); (2) code repository contains data manifest file in JSON format with md5 to validate download integrity. Retrieval: Cache images locally. (1) without internet access, bulk download script; (2) with internet access, lazy download. For additional details see: “SimpleITK Image-Analysis Notebooks: a Collaborative Environment for Education and Reproducible Research” (read freely here).

Join the Community We welcome questions/requests/contributions from the community: Ask questions (itk discourse) Request features / examples. Report bugs. Contribute code or new notebooks. github.com/SimpleITK/SimpleITK and github.com/InsightSoftwareConsortium/SimpleITK-Notebooks