OCamlot: OCaml Online Testing State for the Open Source OCaml - - PowerPoint PPT Presentation

ocamlot ocaml online testing
SMART_READER_LITE
LIVE PREVIEW

OCamlot: OCaml Online Testing State for the Open Source OCaml - - PowerPoint PPT Presentation

OCamlot: OCaml Online Testing State for the Open Source OCaml Community David Sheets, Anil Madhavapeddy, Amir Chaudhry and Thomas Gazagnaire University of Cambridge and OCamlPro OCamlot : OCaml Online Testing The Quality Quality A Typical


slide-1
SLIDE 1

OCamlot: OCaml Online Testing

State for the Open Source OCaml Community David Sheets, Anil Madhavapeddy, Amir Chaudhry and Thomas Gazagnaire

University of Cambridge and OCamlPro

slide-2
SLIDE 2

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-3
SLIDE 3

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-4
SLIDE 4

A Caml on Every Core

◮ Consistent results (“It Just Works”)

slide-5
SLIDE 5

A Caml on Every Core

◮ Consistent results (“It Just Works”) ◮ Obvious solutions (“What have I forgotten?”)

slide-6
SLIDE 6

A Caml on Every Core

◮ Consistent results (“It Just Works”) ◮ Obvious solutions (“What have I forgotten?”) ◮ Addictive actions (“I want to install more software.”)

slide-7
SLIDE 7

A Caml on Every Core

◮ Consistent results (“It Just Works”) ◮ Obvious solutions (“What have I forgotten?”) ◮ Addictive actions (“I want to install more software.”) ◮ Quality functions (“Just what I wanted.”)

slide-8
SLIDE 8

Universal Concerns

◮ Compiler hypotheses

◮ New injectivity restriction is minimally disruptive

slide-9
SLIDE 9

Universal Concerns

◮ Compiler hypotheses

◮ New injectivity restriction is minimally disruptive

◮ Build system hypotheses

◮ Compiler commands can be diverted

slide-10
SLIDE 10

Universal Concerns

◮ Compiler hypotheses

◮ New injectivity restriction is minimally disruptive

◮ Build system hypotheses

◮ Compiler commands can be diverted

◮ Package manager hypotheses

◮ OPAM 1.1 is stable

slide-11
SLIDE 11

Universal Concerns

◮ Compiler hypotheses

◮ New injectivity restriction is minimally disruptive

◮ Build system hypotheses

◮ Compiler commands can be diverted

◮ Package manager hypotheses

◮ OPAM 1.1 is stable

◮ Environment hypotheses

◮ Packages silent on OS/arch dependency can build and run

everywhere

slide-12
SLIDE 12

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-13
SLIDE 13

Evaluating the future

◮ Typical typist makes pull request to repository ◮ Curator observes proposal ◮ Hypothetical consequences evaluated ◮ Potential amendments proposed ◮ Repository administrator signs with 1 click

slide-14
SLIDE 14

Evaluating the future

◮ Typical typist makes pull request to repository ◮ Curator observes proposal ◮ Hypothetical consequences evaluated ◮ Potential amendments proposed ◮ Repository administrator signs with 1 click ◮ E.g.: Weekly Core release

slide-15
SLIDE 15

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-16
SLIDE 16

The Shared Repository Management Game

◮ Objective: promote public health and safety ◮ Strategy: get inside the humans’ loops ◮ Loop: Observe, Orient, Decide, Act ◮ Advantage: scale and heterogeneity

t

slide-17
SLIDE 17

Repository Observation

◮ GitHub bindings with web hooks

◮ Pull Requests ◮ Commits ◮ Comments

◮ Pre-build merge ◮ Other event streams?

slide-18
SLIDE 18

Dependency Orientation

◮ Capabilities with environment dependencies ◮ Packages with constraint-based dependencies ◮ Repository with revision dependencies ◮ Artifact and task interdependencies

slide-19
SLIDE 19

Dependency Orientation

◮ Capabilities with environment dependencies ◮ Packages with constraint-based dependencies ◮ Repository with revision dependencies ◮ Artifact and task interdependencies ◮ Independence predicate

slide-20
SLIDE 20

Dependency Orientation

◮ Capabilities with environment dependencies ◮ Packages with constraint-based dependencies ◮ Repository with revision dependencies ◮ Artifact and task interdependencies ◮ Independence predicate ◮ E.g.: J´

erˆ

  • me Vouillon’s Android OPAM repository
slide-21
SLIDE 21

Triage Decisions

◮ Classify common error modes

◮ Unsatisfiable ◮ Dependency ◮ Transient ◮ System ◮ Metadata ◮ External dependency ◮ Build error ◮ Multiple

◮ Judge severity and impact ◮ Generate amendments to resolve

slide-22
SLIDE 22

State Action

◮ Commit task intention ◮ Commit build evidence ◮ Commit error analysis ◮ Commit proposed amendment

slide-23
SLIDE 23

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-24
SLIDE 24

Just Representation

◮ Agents negotiate their tasks over HTTPS ◮ Independent metadata layers for orthogonal aspects ◮ Persistence to a layer in a branch consistent store ◮ All byproducts serialized as s-expressions

slide-25
SLIDE 25

Just Representation

◮ Agents negotiate their tasks over HTTPS ◮ Independent metadata layers for orthogonal aspects ◮ Persistence to a layer in a branch consistent store ◮ All byproducts serialized as s-expressions ◮ Branch-consistent stores like Git or Irminsule

slide-26
SLIDE 26

Our Present Executive

◮ Observation available and active ◮ Orientation minimally prototyped ◮ Basic triage heuristics complete ◮ No amendments ◮ Ephemeral task system (commit evidence+analysis) ◮ Simple reactions

slide-27
SLIDE 27

History So Far

◮ Lots of metadata bugs ◮ Many package bugs ◮ Some tool bugs ◮ 30+ x86-64, 30+ x86-32 ◮ 8+ ARMv6, ARMv5tel, PPC, PPC64, Sparc64... ◮ Multiple Linux distros, FreeBSD, OpenBSD, OS X ◮ Dead Rpi, panicking *nix filesystems ◮ Don’t make warnings fatal!

slide-28
SLIDE 28

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon

slide-29
SLIDE 29

To Avalon

◮ opamfu for DAG analysis + memoization ◮ Forward migration ◮ Lower overhead to administer exotic workers ◮ Advanced automation (amendments, chat bots) ◮ Better site integration ◮ Benchmarking ◮ Universal experiments with differential analysis ◮ VM-based test systems

◮ 500+ on-demand machine instances from Rackspace

slide-30
SLIDE 30

OCamlot : OCaml Online Testing

The Quality Quality A Typical Typist The Cybernetic Curator Just Representation To Avalon