Technical lag for software Jesus M. Gonzalez-Barahona deployments - - PowerPoint PPT Presentation

technical lag for software
SMART_READER_LITE
LIVE PREVIEW

Technical lag for software Jesus M. Gonzalez-Barahona deployments - - PowerPoint PPT Presentation

Technical lag Technical lag for software Jesus M. Gonzalez-Barahona deployments The balance Releases Collections Dependencies Jesus M. Gonzalez-Barahona (direct) Dependencies (all) Universidad Rey Juan Carlos Discussion @jgbarah


slide-1
SLIDE 1

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary

Technical lag for software deployments

Jesus M. Gonzalez-Barahona

Universidad Rey Juan Carlos @jgbarah http://github.com/jgbarah/presentations

Seminar at IMDEA Software Madrid (Spain), October 2nd 2018

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 1 / 35

slide-2
SLIDE 2

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary

“If I go there will be trouble And if I stay it will be double So come on and let me know” Should I Stay Or Should I Go? The Clash

https: // www. youtube. com/ watch? v= BN1WwnEDWAM

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 2 / 35

slide-3
SLIDE 3

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

The balance

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 3 / 35

slide-4
SLIDE 4

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Deployments Any deployment is the real world instance

  • f an “ideal” target

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 4 / 35

slide-5
SLIDE 5

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Deployments: the balance “If it works, don’t touch it” vs. “The quest for the ideal”

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 5 / 35

slide-6
SLIDE 6

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Deployments: example

You want the latest functionality so you deploy it but the day after it is no longer the latest Should you update?

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 6 / 35

slide-7
SLIDE 7

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Living the risky life

Upgrading in Debian/testing

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 7 / 35

slide-8
SLIDE 8

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Dependencies

You want the latest functionality so you deploy it but dependencies may prevent you from having the latest Should dependencies be updated?

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 8 / 35

slide-9
SLIDE 9

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary The balance

Living in the past

"dependencies": { "coffeescript": "~1.10.0", "dateformat": "~1.0.12", "eventemitter2": "~0.4.13", "exit": "~0.1.1", "findup-sync": "~0.3.0", ... },

  • Oct. 2018: Grunt master / coffescript

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 9 / 35

slide-10
SLIDE 10

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Releases

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 10 / 35

slide-11
SLIDE 11

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Technical lag

For a release: “difference between the deployed release and the ideal release”

  • What is “ideal release”?
  • How we measure difference between

releases?

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 11 / 35

slide-12
SLIDE 12

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Ideal release (examples)

Most recent Most recent in the stable line Less open bugs Less unfixed vulnerabilities

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 12 / 35

slide-13
SLIDE 13

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Difference (examples)

Difference in release time Difference in version number Number of commits Difference in number of open bugs Estimated effort

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 13 / 35

slide-14
SLIDE 14

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

  • ideal: P × Repos → R

Given p ∈ P, repo ∈ Repos, ideal(p, repo)

  • diff: R × R × Repos → L

Given repo ∈ Repos and r, s ∈ repo, diff (r, s, repo), if package(r) = package(s)

  • techlag: R × Repos → L

∀repo ∈ Repos, ∀r ∈ repo: techlag(r, repo) = diff (r, ideal(r, repo), repo)

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 14 / 35

slide-15
SLIDE 15

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Example

Package: Pandas Deployed: 0.22.0 Ideal: 0.23.4 Lag (releases): 6 releases Lag (reltime): 8 months, 4 days

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 15 / 35

slide-16
SLIDE 16

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Releases

Example

Debian releases for git (source code & commits diffs)

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 16 / 35

slide-17
SLIDE 17

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Collections

Collections

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 17 / 35

slide-18
SLIDE 18

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Collections

Technical lag

For a collection of releases: “aggregation of the lag for each release in the collection”

  • How do we aggregate?
  • Examples: maximum, summation, mean

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 18 / 35

slide-19
SLIDE 19

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Collections

  • techlag: P(R) × Repos → L
  • Given rcoll ∈ P(R), repo ∈ Repos,

techlagmax(rcoll, repo) = maxr∈rcoll(techlag(r, repo))

  • Given rcoll ∈ P(R), repo ∈ Repos,

techlagadd(rcoll, repo) =

r∈rcoll techlag(r, repo)

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 19 / 35

slide-20
SLIDE 20

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (direct)

Dependencies (direct)

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 20 / 35

slide-21
SLIDE 21

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (direct)

Technical lag

For direct dependencies of a release: “technical lag for the collection formed by direct dependencies of the release”

  • Having constraints into account
  • Selecting as the package manager does

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 21 / 35

slide-22
SLIDE 22

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (direct)

  • dep : R → P (P)
  • allowed : R × P × Repos → P (R)

allowed(r, p, repo) = rcol, where rcol ⊂ repo.

  • selectver : P (R) → R
  • deploy : R × Repos → P (R)

Given repo ∈ Repos, r ∈ repo, deploy(r, repo) = {selectver(allowed(r, pi, repo)), ∀pi ∈ dep(r)}

  • deplag : R × Repos → L:

deplag(r, repo) = techlag(deploy(r, repo))

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 22 / 35

slide-23
SLIDE 23

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (all)

Dependencies (all)

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 23 / 35

slide-24
SLIDE 24

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (all)

Technical lag

For all dependencies of a release: “technical lag for the collection formed by all (transitive) dependencies of the release”

  • Having constraints into account
  • Selecting as the package manager does

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 24 / 35

slide-25
SLIDE 25

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (all)

  • deploy + : R × Repos → P (R)
  • Given repo ∈ Repos, r ∈ repo,

deploy +(r, repo) as the minimal fix point such that: deploy +(r, repo) ⊇ deploy(r, repo) deploy +(r, repo) ⊇ deploy(r ′, repo)∀r ′ ∈ deploy +(r, repo)

  • deplag + : R × Repos → L:

deplag +(r, repo) = techlag(deploy +(r, repo))

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 25 / 35

slide-26
SLIDE 26

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Dependencies (all)

Example

npm releases release time lag, direct dependencies

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 26 / 35

slide-27
SLIDE 27

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Discussion

Discussion

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 27 / 35

slide-28
SLIDE 28

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Discussion

Uses

Technical lag of:

  • deployed distributions
  • container images
  • deployed applications
  • embedded systems

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 28 / 35

slide-29
SLIDE 29

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Discussion

Uses

Who can control technical lag:

  • deployers: “top level” releases
  • developers: direct dependencies
  • ecosystems: typical dependencies

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 29 / 35

slide-30
SLIDE 30

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Discussion

Types

Ideal: latest, most stable, more secure, less buggy... Difference:

  • Release metadata: versions, release time...
  • Source code: diff lines, diff files
  • SCM: commits, normalized effort
  • ITS: bugs fixed, vulnerabilities fixed, feature

requests closed Aggregations: maximum, summation, mean, median

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 30 / 35

slide-31
SLIDE 31

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Summary

Summary

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 31 / 35

slide-32
SLIDE 32

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Summary Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 32 / 35

slide-33
SLIDE 33

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Summary

Difference between real and ideal What am I missing if I upgrade? Dependencies impact on lag

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 33 / 35

slide-34
SLIDE 34

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Summary

More info...

Ahmed Zerouali, Eleni Constantinou, Tom Mens, Gregorio Robles, Jes´ us M. Gonz´ alez-Barahona: “An Empirical Analysis of Technical Lag in npm Package Dependencies” ICSR 2018: 95-110 Jes´ us M. Gonz´ alez-Barahona, Paul Sherwood, Gregorio Robles, Daniel Izquierdo-Cortazar: “Technical Lag in Software Compilations: Measuring How Outdated a Software Deployment Is” OSS 2017: 182-192

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 34 / 35

slide-35
SLIDE 35

Technical lag Jesus M. Gonzalez-Barahona The balance Releases Collections Dependencies (direct) Dependencies (all) Discussion Summary Summary

c 2018 Jesus M. Gonzalez-Barahona. Some rights reserverd. This document is distributed under the terms

  • f the Creative Commons License “Attribution-ShareAlike 4.0”,

available in

http://creativecommons.org/licenses/by-sa/4.0/

This document (including source) is available from https://github.com/jgbarah/presentaciones

Jesus M. Gonzalez-Barahona (URJC) Technical lag Seminar IMDEA Software 35 / 35