Linux Kernel Subsystem Maintenance. Linus Walleij, Lund Linux Conference

Similar documents
Kernel maintainership: an oral tradition

Git. Ľubomír Prda. IT4Innovations.

A Survivor's Guide to Contributing to the Linux Kernel

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

Git. A Distributed Version Control System. Carlos García Campos

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Basics of Git GitHub

Version Control: Gitting Started

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

Introduction to GIT. Jordi Blasco 14 Oct 2011

Git Introduction CS 400. February 11, 2018

git the SCM system Jan-Simon Möller training.linuxfoundation.org

OTC Tools Development and Release process. Igor Stoppa & Eduard Bartosh & JF Ding V May 2013

Git at Eclipse. Shawn Pearce (Google)

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control?

Distributed Version Control (with Git)

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

How to be a git. Dominic Mitchell

Keeping up with LTS Linux Kernel Functional Testing on Devices

an introduction to git

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18

Git for Subversion users

The Embedded Linux Problem

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová,

Contribute To Linux Mainline

Belle II - Git migration

Git for Newbies. ComMouse Dongyue Studio

Two years of ARM SoC support mainlining: lessons learned

Introduction to Version Control with Git

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Building a reference IoT product with Zephyr. Ricardo Salveti Michael Scott Tyler Baker

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

Using GitHub to Share with SparkFun a

February 2 nd Jean Parpaillon

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

INET

ARM support in the Linux kernel

Submitting your Work using GIT

Software configuration management

Revision Control. An Introduction Using Git 1/15

CS 390 Software Engineering Lecture 5 More Git

Version Control System - Git. zswu

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

Version Control Systems

Chapter 5. Version Control: Git

From Commits to Collaboration: A Git Tutorial for Social Scientists

Getting the Source Code

Lab Objective. Lab Assignment. Downloads and Installation

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

VCS VERSION CONTROL SYSTEMS

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

ATS report. Linux Plumbers 2018, Vancouver Kevin Hilman

Git tips. Some tips to use Git.

Version Control. So#ware Quality Quality Audit and Cer2fica2on. Master in Computer Engineering. Roberto García

News from Git in Eclipse. Matthias Sohn (SAP)

Index. Alias syntax, 31 Author and commit attributes, 334

PCIe driver development for Exynos SoC

EGit in Eclipse. Distributed Verzion Control Systems

GIT for companies Mark Struberg, INSO TU Vienna

MOOSE-Based Application Development on GitLab

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system

Git. A fast distributed revision control system. Nils Moschüring PhD Student (LMU)

Git for Version Control

Github/Git Primer. Tyler Hague

Source Code Management wih git

Continuous Delivery the hard way with Kubernetes. Luke Marsden, Developer

Git, The Developers Perspec ve

Accessing OSIRIS and using OSIRIS through GitHub

Version Control with Git

Fundamentals of Git 1

MySQL Development Cycle

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Real Time BoF ELC 2012

Introduction, Instructions and Conventions

August 22, New Views on your History with git replace. Christian Couder

Software Development I

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

Software Revision Control for MASS. Git Basics, Best Practices

Linux Kernel Testing: Where Are We? Guenter Roeck, Google

a handful of Git workflows for the agilist steven harman twitter: stevenharman

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

Con$nuous Integra$on Development Environment. Kovács Gábor

Git. (Why not CVS?... because Git.) Karel Zak Florian Festi Bart Trojanowski December 20, 2007

Version control with Git.

Git - A brief overview

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Best Practices. Joaquim Rocha IT-DSS-TD

Git and Gerrit Workflows. Enforcing Manual & Automated Review

Version Control. Version Control

Android System Development Training 4-day session

Mike McQuaid INCLUDES 66 TECHNIQUES. Foreword by Scott Chacon MANNING

Introduction to GIT. The distributed SCM

Putting Taiwan on the Kernel.org Keysigning Map. Tsai, Chen-Yu

Azure Sphere: Fitting Linux Security in 4 MiB of RAM. Ryan Fairfax Principal Software Engineering Lead Microsoft

[RFC] Obtaining Management Buy-in for Mainline Development

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

Git Like You Mean it. Alan Ott SCaLE 16x March 8-11, 2018

From Tiny Acorns Your first submission to OpenAFS. Simon Wilkinson

Transcription:

Linux Kernel Subsystem Maintenance Linus Walleij, Lund Linux Conference

A Day in the Life of a Subsystem Maintainer - Why are we doing it? - How did we come to be subsystem maintainers? - What do we actually do?

Why Do We Do It? - I am existentialist, people do what they do because of active choices - I have chosen to have subsystem maintenance as part of my life for self-development, technology development, career, social recognition... - I became a subsystem maintainer for pin control after inventing the subsystem in 2011 - In 2012 I was also given the sole maintenance of the GPIO subsystem after being co-maintainer with Grant Likely

A Typical Day - Go through the mail in reverse date order - gmail filters used extensively to cut through dozens of mail lists and unrelated discussions - Putting me on To: line is a good idea

Review Patches - Anachronistic definition: it s like Gerrit but in mail...

Technical Discussion and of course: CONFERENCE PRESENTATIONS!

Technical Discussion in Person

Administration of Patch Mechanics

Refactoring Other examples include: - Switching the gpiolib to only use descriptors internall (instead of global GPIO numbers) - Exposing the GPIO descriptor API to the outside world with a new <linux/gpio/consumer.h> API - Refactoring the whole world to use the above (ongoing) - Early refactoring in pin control creating a shared state transition to be used with a device for both pin multiplexing and pin configuration - Move all ARM32 systems (well ) to device tree and multiplatform boot

Accumulating Patches Save patch in plaintext from gmail show original, select patch text and middle-button paste into a text editor. I have two important topic branches for mainstream stuff: Regression? git checkout fixes git am --signoff foo.patch New functionality? git checkout devel git am --signoff bar.patch

Fixes and Devel Branches fixes is constantly rebased against the latest release candidate vn.n-rcn devel is usually based on one of the early release candidates like -rc1 or -rc2/3 and then kept linearly accumulative until the merge window for-next is created like so: git checkout for-next git reset --hard fixes git merge devel

Occasional Rebasing - If prerequisites appear in fixes to Torvalds tree I may either (say we have a devel branch based on v3.15-rc1 and need a commit from v3.15-rc4): A) git merge v3.15-rc4 B) git rebase v3.15-rc4 Another reason to rebase at least a few top commits is to add Acked-by, Reviewed-by and Tested-by: tags.

Push Branches to git.kernel.org - When a fixes, devel and/or for-next branch is to be pushed over to the kernel.org GIT server I simply force the remote branch to be overwritten git push --all --force <REMOTE> - The set-up for kernel.org tree uses gitolite to provide remote access to GIT without shell access for security reasons - Surplus branches are purged from the remote tree at uneven intervals: git push <REMOTE> :deadbranch

How This Works

How Linux-next Works

Integration tests: Kautobuild & friends - When the branches are pushed to git.kernel.org Fenguang s autobuilder Kautobuild is triggered and will build all branches (fixes, devel, for-next) for a plethora of architectures and configs - The for-next branch gets pulled into the linux-next tree for integration test and more build and boot tests - The linux-next tree is for example built by Olof Johansson and booted on a farm of ARM boards, and Kevin Hilman has yet another set of boards

Results 1

Results 2

Sending Pull Requests to Torvalds Once a branch has been through linux-next and feels stable I will prepare a signed tag utilizing the kernel community chain of trust, and issue a pull request to Linus Torvalds, example: git tag -s -u 0xb0195d73 gpio-v3.15-3 git request-pull v3.15-rc4 git://git. kernel.org/.../linux-gpio tags/gpiov3.15-3

More about Linaro Connect: http://connect.linaro.org More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ Linaro members: www.linaro.org/members