Managing 666 packages, or how to tame the beast Introducing PET, a tool to track packages' health.

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

Tridion 5.3 Templates.
July 2010 D2.1 Upgrading strategy Javier Soto Catalog Release 3. Communities.
Dr Gordon Russell, Napier University Unit Data Dictionary 1 Data Dictionary Unit 5.3.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
VisIt Software Engineering Infrastructure and Release Process LLNL-PRES Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
Subversion Takes Back the Night How Version Control makes web development better.
Microsoft Office Open XML Formats Brian Jones Lead Program Manager Microsoft Corporation.
1 CMPT 275 Software Engineering Revision Control.
Working with SharePoint Document Libraries. What are document libraries? Document libraries are collections of files that you can share with team members.
Objectives of the Lecture :
Erlware For Managing Distribution and Build Erlang User Conference 2007.
Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Version Control. How do you share code? Discussion.
(Sub)Version Control. 2 Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Setting up and getting going with…. MIT App Inventor.
Security monitoring boxes Andrew McNab University of Manchester.
March 11, 2008 USCMS Tier-2 Workshop Oh Dear God Alain made a PowerPoint presentation 1.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Version Control and SVN ECE 297. Why Do We Need Version Control?
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
Development Project Management Jim Kowalkowski. Outline Planning and managing software development – Definitions – Organizing schedule and work (overall.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
SCDB Update Michel Jouvin LAL, Orsay March 17, 2010 Quattor Workshop, Thessaloniki.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
1 Working with Queues Presented to KC PUG: Kansas City's PHP User Group Daniel Holmes.
Giving back to the community: how does Debian perform? Sam Hocevar Debian Project Leader FOSS.IN ’07 Bangalore, India.
debtags.debian.net reloaded!
Indefero Source Code Management Jethro Carr Improving your project's source, bug tracking and documentation with quality open source tools. Indefero Source.
Andrew Elwell White Areas, October 2009
Debtags, and what you can do with it today 1 /14 LinuxTag, May 5, :33 Enrico Zini May 5, slides Enrico Zini
Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.
Zope-cookbook.org Tarek Ziadé, Nuxeo
Debian Data Export 1 /15 Fosdem, Brussels, February 7, :28 Enrico Zini Feb 7, slides Enrico Zini
Packaging Software for Debian Roberto C. Sánchez Ohio Linuxfest Saturday, September 29, 2007.
Engaging Business Analysts in Test Automation
Open-O Integration Project Introduction
Development Environment
Component and Deployment Diagrams
Build Automation with Gradle
CMS DCS: WinCC OA Installation Strategy
Continuous Localization
Subversion for administrators
The next-gen. list archiver
PERL.
Version Control.
Code Management Releases
Version Control System using Git
Community RE Report from the Bleeding Edge
Testing for patch certification
PDSF Host Database Shane Canon HEPiX Fall 2003.
GLAST Release Manager Automated code compilation via the Release Manager Navid Golpayegani, GSFC/SSAI Overview The Release Manager is a program responsible.
Introduction an Open Source, Open Data international collaboration, based entirely in the internet started following a CECAM meeting in Zaragoza:
Concurrent Version Control
Software Version System Part1: Subversion at CERN
Version Control System
SU Development Forum Introduction to Git - Save your projects!
Applied Software Implementation & Testing
Design and Maintenance of Web Applications in J2EE
JENKINS TIPS Ideas for making your life with Jenkins easier
All About Gump Presentation
How l learned to work with others instead of working around them.
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management
APE EAD3 introduction - DARIAH - Brussels
Presentation transcript:

Managing 666 packages, or how to tame the beast Introducing PET, a tool to track packages' health

What ● Finding out what packages need love ● Gather information in one single place ● Be able to “see” the overall situation ● Make team work easier ● Track packages in the archive and in VCS

Existing tools

Way too much

Shortcomings ● Good information, but dispersed ● Lack of categorisation, filtering, sorting, etc. ● Doesn't track work in progress ● Grouping key: maintainer ● Non-DDs need to RFS

A different approach ● Grouping key: the VCS repository ● Update information on every commit ● A few conventions about repository usage ● Don't make reports, build a database to report from ● Bonus points: make it modular, separate the presentation from the logic

PET Package Entropy Tracker ● Started as a few ad-hoc scripts in pkg-perl ● Rewritten during 2007 for better code and wider audience ● Not only me, Damyan Ivanov and Gregor Herrmann

Not only for packaging groups! Also useful to keep track of your own packages

Sources of information ● Debian archive (source packages) ● SVN (to be extended to other VCSs) ● BTS ● Upstream websites (watch files) ● New ideas? – Popcon – DEHS – svn-buildstat, etc.

Archive information ● Current versions in all distributions – Flag packages that aren't in unstable, and versions that disappeared after an upload ● Control data: – Detect packages that don't have the group as Maintainer or Uploader. – DM-Upload-Allowed status – Map source and binary packages ● Presence in NEW and INCOMING

Repository information ● Same information as the archive (reading debian/control) – But current ● Know which are in fact all your packages ● Presence of patches ● Changelogs ● Watch files ● Differentiate work in progress from released work (“UNRELEASED” distribution, tags)

Conventions ● Assume a few conventions are followed ● Encourage good practices in the way ● Use the changelog as a communication medium among team members – TODO notes, warnings to other members – Use the UNRELEASED tag to differentiate ready to be uploaded (or already uploaded) packages ● Create a tag on each upload

Watch files ● Is there a new upstream version? ● Included in the price: an uscan equivalent, written from scratch. – Mental note: release it as uscan-ng – Mental note 2: design a sane watch file format ● Perl group bias: use CPAN indexes to avoid most HTTP queries

CGI report goodies

Packaging workflow Nothing new here, just the assumed workflow ● Do initial import / merge new upstream version – You already know you want all source changes in separate patches – Set the distribution to “UNRELEASED” ● Commit early, commit often – You end writing meaningful changelogs in the way – Other members can see what you're up to

Packaging workflow ● When you're done – debchange -r (sets the distribution to “unstable”) – debcommit ● Upload it and tag it – debcommt -r ● Or wait for a DD to do it for you. No need to ask, as your package already shows as “ready for upload”

Components ● Data retrieval script – Run on each commit – Long running tasks done in a cronjob – Knows data relationships (watch file updated implies need to rescan upstream) – Uses Storable files as backend

Components ● Reporting tools – CGI (qareport.cgi) – RSS feed with new packages ready to be uploaded – CLI (qareport) – Custom reports (CPANTS metrics)

Future ● Remove SVN dependency, make the VCS component pluggable ● Allow meta-repositories to be created spanning several sources ● Give proper structure the internal data model and the backend database (Perl hashes make lazy programmers) ● Integrate other sources of information

Questions?