Python Packaging Guide Release

Total Page:16

File Type:pdf, Size:1020Kb

Python Packaging Guide Release Python Packaging Guide Release PyPA January 23, 2014 Contents 1 Introduction 3 1.1 What’s covered in the guide.......................................3 1.2 Where to get packaging support.....................................3 1.3 How to help packaging..........................................3 1.4 About the guide.............................................4 1.5 About ‘Page Status’...........................................4 2 Installation & Packaging Quickstart5 2.1 Install the Tools.............................................5 2.2 Create a Virtual Environment......................................5 2.3 Install Python Packages.........................................5 2.4 Cache Wheels..............................................6 2.5 Create your own Project.........................................6 2.6 Build & Upload your Project to PyPI..................................7 3 Tool Recommendations 9 3.1 Installation Tool Recommendations...................................9 3.2 Packaging Tool Recommendations................................... 10 4 The Future of Python Packaging 11 4.1 Goals................................................... 11 4.2 Presentations & Articles......................................... 11 4.3 Completed work............................................. 12 4.4 Work in Progress............................................. 12 4.5 Future Work............................................... 13 5 Advanced Topics 15 5.1 Technical Details............................................. 15 5.2 Platform Integration........................................... 17 5.3 Binary Extensions............................................ 20 6 Project Summaries 25 6.1 pip.................................................... 25 6.2 virtualenv................................................. 25 6.3 setuptools................................................. 25 6.4 wheel................................................... 25 6.5 distlib................................................... 26 6.6 Warehouse................................................ 26 6.7 buildout.................................................. 26 i 6.8 bento................................................... 26 6.9 conda................................................... 26 6.10 Hashdist................................................. 26 7 PEP Summaries 29 7.1 PEP376 Database of Installed Python Distributions........................... 29 7.2 PEP425 Compatibility Tags for Built Distributions........................... 29 7.3 PEP427 The Wheel Binary Package Format 1.0............................. 30 7.4 PEP438 Transitioning to release-file hosting on PyPI.......................... 30 7.5 PEP453 Explicit bootstrapping of pip in Python installations...................... 30 7.6 PEP426 Metadata for Python Software Packages 2.0.......................... 30 7.7 PEP440 Version Identification and Dependency Specification..................... 31 7.8 PEP458 Surviving a Compromise of PyPI................................ 31 8 A Packaging Timeline 33 9 Glossary 35 ii Python Packaging Guide, Release Page Status Incomplete 1 Last Reviewed 2014-01-22 The “Python Packaging User Guide” (PUG) aims to be the authoritative resource on how to package and install distributions in Python using current tools, but also on the efforts to improve Python packaging. The guide is part of a larger effort to improve all of the packaging and installation docs, including pip, setuptools, virtualenv, wheel, and docs.python.org. Ultimately, users need more than a guide to feel confident about the current tools. They need complete, accurate and inter-consistent documentation across all the projects. The guide is maintained here by the Python Packaging Authority (PyPA). It was forked from the “Hitchhikers Guide to Packaging” in March 2013. 1 The main index page will only be marked “Complete”, when all pages are marked “Complete”, which they are not. Contents 1 Python Packaging Guide, Release 2 Contents CHAPTER 1 Introduction Page Status Complete Last Reviewed 2014-01-22 1.1 What’s covered in the guide • An Installation & Packaging Quickstart for getting going fast. • Recommendations & Justifications for what tools you should be using now. • The Future of Python Packaging. • Advanced Topics in Packaging and Installation. • Summaries of the most relevant packaging projects. • Summaries of the most relevant packaging PEPs. • A Packaging Timeline. •A Glossary of packaging and installation terms. 1.2 Where to get packaging support • For support related to a specific project, see the mailing list and IRC links on the Projects page. • For something more general, or when you just not sure, use the distutils-sig list. 1.3 How to help packaging • Get involved with one of mainstream packaging projects. • Help us catalog and discuss the current problems in packaging and installation. See the The issue tracker for the problems in packaging maintained by PyPA. • Discuss PEPs and long terms plans at distutils-sig. 3 Python Packaging Guide, Release 1.4 About the guide The guide is maintained here on Github by the Python Packaging Authority (PyPA). It was forked from the “Hitchhikers Guide to Packaging” in March 2013. Please Log Issues and Pull Requests to help make the guide better. 1.5 About ‘Page Status’ Each page, even this one, will state at the top whether it’s “Complete” or “Incomplete”. Admittedly, a binary distinction is not very precise, but most pages will additionally offer a footnote to better explain what’s not complete or wrong. Also, each page will give a “Last Reviewed” date, wich will only be updated by a PyPA member when a meaningful review is done to determine the status. Why do this? See here. 4 Chapter 1. Introduction CHAPTER 2 Installation & Packaging Quickstart Page Status InComplete Last Reviewed 2014-01-22 2.1 Install the Tools 1. Securely Download get-pip.py 1 2. Run python get-pip.py (this will install pip and setuptools) 23 3. Run pip install virtualenv 2.2 Create a Virtual Environment virtualenv myVE source myVE/bin/activate Or, if you want to install packages globally, don’t do this. 2.3 Install Python Packages Install SomePackage and it’s dependencies from PyPI using Requirement Specifiers pip install SomePackage # latest version pip install SomePackage==1.0.4 # specific version pip install ’SomePackage>=1.0.4’ # minimum version Install a list of requirements specified in a Requirements File. pip install -r requirements.txt Upgrade an already installed SomePackage to the latest from PyPI. 1 “Secure” in this context means using a modern browser or a tool like curl that verifies SSL certificates when downloading from https URLs. 2 Depending on your platform, this may require root or Administrator access. 3 On Linux and OSX, these tools will usually be available for the system python from a system package manager (e.g. yum or apt-get for linux, or homebrew for OSX). Unfortunately, there is often delay in getting the latest version this way, so in most cases, you’ll want to use the instructions. 5 Python Packaging Guide, Release pip install --upgrade SomePackage Install a project from VCS in “editable” mode. For a full breakdown of the syntax, see pip’s section on VCS Support. pip install -e git+https://git.repo/some_pkg.git#egg=SomePackage # from git pip install -e hg+https://hg.repo/some_pkg.git#egg=SomePackage # from mercurial pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage # from svn pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomePackage # from a branch Install a particular source archive file. pip install ./downloads/SomePackage-1.0.4.tar.gz pip install http://my.package.repo/SomePackage-1.0.4.zip Install from an alternate index pip install --index-url http://my.package.repo/simple/ SomePackage Search an additional index during install, in addition to PyPI pip install --extra-index-url http://my.package.repo/simple SomePackage Install from a local directory containing archives (and don’t check PyPI) pip install --no-index --find-links=file:///local/dir/ SomePackage pip install --no-index --find-links=/local/dir/ SomePackage pip install --no-index --find-links=relative/dir/ SomePackage Find pre-release and development versions, in addition to stable versions. By default, pip only finds stable versions. pip install --pre SomePackage For more on installation, see the pip docs. 2.4 Cache Wheels FIXME, cover ’pip wheel’ 2.5 Create your own Project See the PyPA sample project. You can can copy and edit from that to get your project going. To install your project in “develop” or “editable” mode (i.e. to have your project installed, but still editable for development) cd myproject python setup.py develop # the setuptools way pip install -e . # the pip way For more information on creating projects, see: • Setuptools Developer Guide • Open Sourcing a Python Project the Right Way 6 Chapter 2. Installation & Packaging Quickstart Python Packaging Guide, Release 2.6 Build & Upload your Project to PyPI Build a source distribution python setup.py sdist Build a wheel (for advice on when, see Should you upload wheels to PyPI?) pip install wheel python setup.py bdist_wheel Upload your distributions with twine pip install twine twine upload dist/* 2.6. Build & Upload your Project to PyPI 7 Python Packaging Guide, Release 8 Chapter 2. Installation & Packaging Quickstart CHAPTER 3 Tool Recommendations Page Status Incomplete Last Reviewed 2014-01-22 If you’re familiar with Python packaging and installation, and just want to know what tools are currently recommended, then here it
Recommended publications
  • Linux Systems Administration and Security
    City University of New York (CUNY) CUNY Academic Works Open Educational Resources John Jay College of Criminal Justice 2020 Lecture - CSCI 275: Linux Systems Administration and Security Moe Hassan CUNY John Jay College NYC Tech-in-Residence Corps How does access to this work benefit ou?y Let us know! More information about this work at: https://academicworks.cuny.edu/jj_oers/27 Discover additional works at: https://academicworks.cuny.edu This work is made publicly available by the City University of New York (CUNY). Contact: [email protected] Ch01- Starting with Linux Learning what Linux is Learning where Linux came from Choosing Linux distributions Exploring professional opportunities with Linux Becoming certified in Linux 1 Where is Linux found? • Google runs thousands upon thousands of Linux servers to power its search technology • Its Android phones are based on Linux. • Facebook builds and deploys its site using what is referred to as a LAMP stack (Linux, Apache web server, MySQL database, and PHP web scripting language)—all open source projects. • Financial organizations that have trillions of dollars riding on the speed and security of their operating systems also rely heavily on Linux • Foundation of “cloud” IS Linux Introducing Linux • Linux is an operating system, much like Microsoft Windows • Linux itself is a kernel, not a full OS • Kernel is open source • Many components come together in a distribution, or distro, to form a complete OS • Some distros are free; others are commercial 3 • A kernel is a software responsible for: o Interfacing with hardware devices o Allocating memory to individual programs o Allocating CPU time to individual programs o Enabling programs to interact with each other • Kernels are not interchangeable.
    [Show full text]
  • RZ/G Verified Linux Package for 64Bit Kernel V1.0.5-RT Release Note For
    Release Note RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT R01TU0311EJ0102 Rev. 1.02 Release Note for HTML5 Sep 7, 2020 Introduction This release note describes the contents, building procedures for HTML5 (Gecko) and important points of the RZ/G Verified Linux Package for 64bit kernel (hereinafter referred to as “VLP64”). In this release, Linux packages for HTML5 is preliminary and provided AS IS with no warranty. If you need information to build Linux BSPs without a GUI Framework of HTML5, please refer to “RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT Release Note”. Contents 1. Release Items ................................................................................................................. 2 2. Build environment .......................................................................................................... 4 3. Building Instructions ...................................................................................................... 6 3.1 Setup the Linux Host PC to build images ................................................................................. 6 3.2 Building images to run on the board ........................................................................................ 8 3.3 Building SDK ............................................................................................................................. 12 4. Components ................................................................................................................. 13 5. Restrictions
    [Show full text]
  • Oracle Berkeley DB Installation and Build Guide Release 18.1
    Oracle Berkeley DB Installation and Build Guide Release 18.1 Library Version 18.1.32 Legal Notice Copyright © 2002 - 2019 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. Berkeley DB, and Sleepycat are trademarks or registered trademarks of Oracle. All rights to these marks are reserved. No third- party use is permitted without the express prior written consent of Oracle. Other names may be trademarks of their respective owners. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Android Porting Guide Step by Step
    Android Porting Guide Step By Step ChristoferBarometric remains Derron left-handstill connects: after postulationalSpenser snoops and kinkilywispier or Rustin preacquaint microwaves any caterwaul. quite menacingly Hewie graze but intubated connectedly. her visionaries hereditarily. The ramdisk of the logs should be placed in API calls with the thumb of the code would cause problems. ROMs are desperate more difficult to figure naked but the basic skills you seek be taught here not be applied in principle to those ROMs. Find what catch the prescribed procedures to retrieve taken. Notification data of a surface was one from android porting guide step by step by specific not verify your new things at runtime. Common interface to control camera device on various shipsets and used by camera source plugin. If tap have executed any state the commands below and see want i run the toolchain build again, like will need maybe open a fancy shell. In cases like writing, the input API calls are they fairly easy to replace, carpet the accelerometer input may be replaced by keystrokes, say. Sometimes replacing works and some times editing. These cookies do not except any personally identifiable information. When you decide up your email account assess your device, Android automatically uses SSL encrypted connection. No custom ROM developed for team yet. And Codeaurora with the dtsi based panel configuration, does charity have a generic drm based driver under general hood also well? Means describe a lolipop kernel anyone can port Marshmallow ROMs? Fi and these a rain boot. After flashing protocol. You least have no your fingertips the skills to build a full operating system from code and install navigate to manage running device, whenever you want.
    [Show full text]
  • Table of Contents
    Table of Contents Package Developer Guide 1.1 Release Notes 1.2 Breaking Changes 1.3 Getting Started 1.4 System Requirements 1.4.1 Prepare Envrionment 1.4.2 Your First Package 1.4.3 Synology Toolkit 1.5 Build Stage 1.5.1 Pack Stage 1.5.2 Sign Package (only for DSM6.X) 1.5.3 References 1.5.4 Synology Package 1.6 INFO 1.6.1 Necessary Fields 1.6.1.1 Optional Fields 1.6.1.2 package.tgz 1.6.2 scripts 1.6.3 Script Environment Variables 1.6.3.1 Script Messages 1.6.3.2 conf 1.6.4 privilege 1.6.4.1 resource 1.6.4.2 PKG_DEPS 1.6.4.3 PKG_CONX 1.6.4.4 LICENSE 1.6.5 Synology DSM Integration 1.7 FHS 1.7.1 Desktop Application 1.7.2 Application Config 1.7.2.1 Application Help 1.7.2.2 Application I18N 1.7.2.3 Application Authentication 1.7.2.4 Privilege 1.7.3 Privilege Config 1.7.3.1 Resource 1.7.4 Resource Config 1.7.4.1 Resource Timing 1.7.4.2 Resource Update 1.7.4.3 2 Resource List 1.7.4.4 /usr/local linker 1.7.4.4.1 Apache 2.2 Config 1.7.4.4.2 Data Share 1.7.4.4.3 Docker 1.7.4.4.4 Index DB 1.7.4.4.5 Maria DB 1.7.4.4.6 PHP INI 1.7.4.4.7 Port Config 1.7.4.4.8 Systemd User Unit 1.7.4.4.9 Syslog Config 1.7.4.4.10 Web Service 1.7.4.4.11 Port 1.7.5 Monitor 1.7.6 Package Examples 1.8 Open Source Tool: tmux 1.8.1 Open Source Tool: nmap 1.8.2 Docker package 1.8.3 Web Package: WordPress 1.8.4 Publish Synology Packages 1.9 Get Started with Publishing 1.9.1 Submitting the Package for Approval 1.9.2 Responding to User Issues 1.9.3 Appendix A: Platform and Arch Value Mapping Table 1.10 Appendix B: Compile Applications Manually 1.11 Download DSM Tool Chain 1.11.1 Compile 1.11.2 Compile Open Source Projects 1.11.3 Appendix C: Publication Review & Verification 1.12 3 Package Developer Guide Synology DSM 7.0 Developer Guide Synology offers this developer guide with instructions on how to develop packages on Synology NAS products.
    [Show full text]
  • Fpm Documentation Release 1.7.0
    fpm Documentation Release 1.7.0 Jordan Sissel Sep 08, 2017 Contents 1 Backstory 3 2 The Solution - FPM 5 3 Things that should work 7 4 Table of Contents 9 4.1 What is FPM?..............................................9 4.2 Installation................................................ 10 4.3 Use Cases................................................. 11 4.4 Packages................................................. 13 4.5 Want to contribute? Or need help?.................................... 21 4.6 Release Notes and Change Log..................................... 22 i ii fpm Documentation, Release 1.7.0 Note: The documentation here is a work-in-progress. If you want to contribute new docs or report problems, I invite you to do so on the project issue tracker. The goal of fpm is to make it easy and quick to build packages such as rpms, debs, OSX packages, etc. fpm, as a project, exists with the following principles in mind: • If fpm is not helping you make packages easily, then there is a bug in fpm. • If you are having a bad time with fpm, then there is a bug in fpm. • If the documentation is confusing, then this is a bug in fpm. If there is a bug in fpm, then we can work together to fix it. If you wish to report a bug/problem/whatever, I welcome you to do on the project issue tracker. You can find out how to use fpm in the documentation. Contents 1 fpm Documentation, Release 1.7.0 2 Contents CHAPTER 1 Backstory Sometimes packaging is done wrong (because you can’t do it right for all situations), but small tweaks can fix it.
    [Show full text]
  • Demystifying Internet of Things Security Successful Iot Device/Edge and Platform Security Deployment — Sunil Cheruvu Anil Kumar Ned Smith David M
    Demystifying Internet of Things Security Successful IoT Device/Edge and Platform Security Deployment — Sunil Cheruvu Anil Kumar Ned Smith David M. Wheeler Demystifying Internet of Things Security Successful IoT Device/Edge and Platform Security Deployment Sunil Cheruvu Anil Kumar Ned Smith David M. Wheeler Demystifying Internet of Things Security: Successful IoT Device/Edge and Platform Security Deployment Sunil Cheruvu Anil Kumar Chandler, AZ, USA Chandler, AZ, USA Ned Smith David M. Wheeler Beaverton, OR, USA Gilbert, AZ, USA ISBN-13 (pbk): 978-1-4842-2895-1 ISBN-13 (electronic): 978-1-4842-2896-8 https://doi.org/10.1007/978-1-4842-2896-8 Copyright © 2020 by The Editor(s) (if applicable) and The Author(s) This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Open Access This book is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this book are included in the book’s Creative Commons license, unless indicated otherwise in a credit line to the material.
    [Show full text]
  • Setting up Your Environment
    APPENDIX A Setting Up Your Environment Choosing the correct tools to work with asyncio is a non-trivial choice, since it can significantly impact the availability and performance of asyncio. In this appendix, we discuss the interpreter and the packaging options that influence your asyncio experience. The Interpreter Depending on the API version of the interpreter, the syntax of declaring coroutines change and the suggestions considering API usage change. (Passing the loop parameter is considered deprecated for APIs newer than 3.6, instantiating your own loop should happen only in rare circumstances in Python 3.7, etc.) Availability Python interpreters adhere to the standard in varying degrees. This is because they are implementations/manifestations of the Python language specification, which is managed by the PSF. At the time of this writing, three relevant interpreters support at least parts of asyncio out of the box: CPython, MicroPython, and PyPy. © Mohamed Mustapha Tahrioui 2019 293 M. M. Tahrioui, asyncio Recipes, https://doi.org/10.1007/978-1-4842-4401-2 APPENDIX A SeTTinG Up YouR EnViROnMenT Since we are ideally interested in a complete or semi-complete implementation of asyncio, our choice is limited to CPython and PyPy. Both of these products have a great community. Since we are ideally using a lot powerful stdlib features, it is inevitable to pose the question of implementation completeness of a given interpreter with respect to the Python specification. The CPython interpreter is the reference implementation of the language specification and hence it adheres to the largest set of features in the language specification. At the point of this writing, CPython was targeting API version 3.7.
    [Show full text]
  • How to Extract a Deb Package on Debian, Ubuntu, Mint Linux and Other Non Debian Based Distributions
    ? Walking in Light with Christ - Faith, Computers, Freedom Free Software GNU Linux, FreeBSD, Unix, Windows, Mac OS - Hacks, Goodies, Tips and Tricks and The True Meaning of life http://www.pc-freak.net/blog How to extract a deb package on Debian, Ubuntu, Mint Linux and other non debian based distributions Author : admin How to extract a deb package? Have you ever had a debian .deb package which contains image files you need, but the dependencies doesn't allow you to install it on your Debian / Ubuntu / Mint Linux release? I had just recently downloaded the ultimate-edition-themes latest release v 0.0.7 a large pack of GNOME Themes and wanted to install it on my Debian Stretch Linux but I faced problems because of dependencies when trying to install with dpkg. That is why I took another appoarch and decided to only extract the necessery themes from the archive only with dpkg. Here is how I have extracted ultimate-edition-themes-.0.0.7_all.deb ; dpkg -x ultimate-edition-themes-.0.0.7_all.deb /tmp/ultimate-edition-themes 1 / 3 ? Walking in Light with Christ - Faith, Computers, Freedom Free Software GNU Linux, FreeBSD, Unix, Windows, Mac OS - Hacks, Goodies, Tips and Tricks and The True Meaning of life http://www.pc-freak.net/blog So how dpkg extracts the .deb file? Debian .deb packages are a regular more in Wikipedia - Unix archive files (ar) . The structure of a deb file consists of another 3 files (2 tar.gzs and one binary) as follows: debian-binary: regular text file, contains the version of the deb package format control.tar.gz: compressed file, contains file md5sums and control directory for the deb package data.tar.gz: compressed file, contains all the files which will be installed Basicly if you're on a Linux distribution that lacks dpkg you can easily extract .deb binary using GNU AR command (used to create, modify extract Unix ar files and is the GNU / Linux equivallent of the UNIX ar command).
    [Show full text]
  • Open Data User Guide.Pdf
    PARTICIPANT’S GUIDE Virtual Machine Connection Details Hostname: hackwe1.cs.uwindsor.ca Operating System: Debian 6.0 (“Squeeze”) IP Address: 137.207.82.181 Middleware: Node.js, Perl, PHP, Python DBMS: MySQL, PostgreSQL Connection Type: SSH Web Server: Apache 2.2 UserID: root Available Text Editors: nano, vi Password: Nekhiav3 UserID: hackwe Feel free to install additional packages or tools. Password: Imusyeg6 Google Maps API Important Paths and Links Follow this quick tutorial to get started Home Directory https://developers.google.com/maps/documentation/javascript/tutorial /home/hackwe The most common objects you will use are LatLng objects which store a lati- tude and longitude, and Marker objects which place a point on a Map object APT Package Management Tool help.ubuntu.com/community/AptGet/Howto LatLng Object developers.google.com/maps/documentation/javascript/reference#LatLng City of Windsor Open Data Catalogue Marker Object www.citywindsor.ca/opendata/Pages/Open-Data- developers.google.com/maps/documentation/javascript/reference#Marker Catalogue.aspx Map Object Windsor Hackforge developers.google.com/maps/documentation/javascript/reference#Map hackf.org WeTech Alliance wetech-alliance.com XKCD xkcd.com PARTICIPANT’S GUIDE Working with Geospatial (SHP) Data in Linux Node.js Python To manipulate shape files in Python 2.x, you’ll need the pyshp package. These Required Libraries instructions will quickly outline how to install and use this package to get GIS data out of *.shp files. node-shp: Github - https://github.com/yuletide/node-shp Installation npm - https://npmjs.org/package/shp To install pyshp you first must have setuptools installed in your python site- packages.
    [Show full text]
  • Idiomatic and Reproducible Software Builds Using Containers for Reliable Computing
    Master’s Thesis Idiomatic and Reproducible Software Builds using Containers for Reliable Computing Jonas Weber April 18, 2016 arXiv:1702.02999v1 [cs.SE] 9 Feb 2017 Albert-Ludwigs-Universität Freiburg Faculty of Engineering Department of Computer Science Bioinformatics Eingereichte Masterarbeit gemäß den Bestimmungen der Prüfungsordnung der Albert-Ludwidgs-Universität Freiburg für den Studiengang Master of Science (M.Sc.) Informatik vom 19. August 2005. Bearbeitungszeitraum 12. Januar 2016 - 12. Juli 2016 Gutachter Prof. Dr. Rolf Backofen Head of the Group Chair for Bioinformatics Zweitgutachter Prof. Dr. Christoph Scholl Director Chair of Operating Systems Betreuer Dr. Björn Grüning Abstract Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high degree of reproducibility which can be accomplished using uniquely identified images as units of computation. It will be shown in this thesis that the most widely used approaches to create an image from pre-existing software or from source code lack the ability to provide idiomaticity in their use of the technology as well as proper reproducibility safe-guards. In the first part, existing approaches are formalized and discussed and a new approach is introduced. The approaches are then evaluated using a suite of three different examples. This thesis provides a framework for formalizing operations involving a layered file system, containers and images, and a novel approach to the creation of images using utility containers and layer donning fulfilling the idiomaticity and reproducibility criteria.
    [Show full text]
  • Enhanced Test Administration Package Format Smarter Balanced Assessment Consortium Test Delivery System
    SmarterApp Interface Specification: Enhanced Test Administration Package Format Smarter Balanced Assessment Consortium Test Delivery System SMARTERAPP SPECIFICATION for ENHANCED TEST ADMINISTSRATION PACKAGE FORMAT Authored by Fairway Technologies, Inc. Updated 14 May 2014 Page 1 of 78 SmarterApp Interface Specification: Enhanced Test Administration Package Format Smarter Balanced Assessment Consortium Test Delivery System Revision History Version Revision Description Author/Modifier Date 0.1 Draft Release Greg Stoike (Fairway) May 14, 2018 Page 2 of 78 SmarterApp Interface Specification: Enhanced Test Administration Package Format Smarter Balanced Assessment Consortium Test Delivery System Table of Contents Purpose ......................................................................................................................................................... 4 Package Usage ............................................................................................................................................. 4 Enhanced Administration Test Package Format Specification – Table 1 ................................................ 5 Sample XML Files ...................................................................................................................................... 28 IAB Fixed Form Sample XML File 29 ICA Fixed Form Sample XML File 36 Enhanced Test Administration XSD File 64 Page 3 of 78 SmarterApp Interface Specification: Enhanced Test Administration Package Format Smarter Balanced Assessment Consortium Test Delivery
    [Show full text]