Slide 1

Slide 1 text

Distribute or Die Arguing against Additional Repositories Richard Brown – openSUSE Chairman [email protected]

Slide 2

Slide 2 text

3 A Game of Two Halves

Slide 3

Slide 3 text

4 A Game of Two Halves

Slide 4

Slide 4 text

5 There Will Be Blood

Slide 5

Slide 5 text

Using our Software

Slide 6

Slide 6 text

7

Slide 7

Slide 7 text

8 Happy User

Slide 8

Slide 8 text

9 Discovering New Software

Slide 9

Slide 9 text

10 Discovering New Software

Slide 10

Slide 10 text

11 Searching

Slide 11

Slide 11 text

12 Searching

Slide 12

Slide 12 text

13 Installing

Slide 13

Slide 13 text

14

Slide 14

Slide 14 text

15 Package Not Available

Slide 15

Slide 15 text

16 Now what??

Slide 16

Slide 16 text

17 Searching for a Solution - SLE

Slide 17

Slide 17 text

18 Searching for a Solution - SLE

Slide 18

Slide 18 text

19 Searching for a Solution - SLE

Slide 19

Slide 19 text

20 Searching for a Solution - SLE

Slide 20

Slide 20 text

21 Searching for a Solution - SLE

Slide 21

Slide 21 text

22 Searching for a Solution - SLE

Slide 22

Slide 22 text

23 Searching for a Solution - SLE

Slide 23

Slide 23 text

24 Searching for a Solution - SLE

Slide 24

Slide 24 text

25 Searching for a Solution - SLE

Slide 25

Slide 25 text

26 Searching for a Solution

Slide 26

Slide 26 text

27 Searching for a Solution

Slide 27

Slide 27 text

28 Searching for a Solution

Slide 28

Slide 28 text

29 Searching for a Solution

Slide 29

Slide 29 text

30 Searching for a Solution

Slide 30

Slide 30 text

31 Searching for a Solution

Slide 31

Slide 31 text

32 1-Click Install – Click #1

Slide 32

Slide 32 text

33 1-Click Install – Click #2

Slide 33

Slide 33 text

34 1-Click Install – Click #3

Slide 34

Slide 34 text

35 1-Click Install – Click #4

Slide 35

Slide 35 text

36 1-Click Install – Click #5

Slide 36

Slide 36 text

37 1-Click Install – Click #6

Slide 37

Slide 37 text

38 1-Click Install – Click #7

Slide 38

Slide 38 text

39 1-Click Install – Click #8

Slide 39

Slide 39 text

40 1-Click Install – Click #9

Slide 40

Slide 40 text

41 1-Click Installs are BROKEN

Slide 41

Slide 41 text

42 Searching for a Solution

Slide 42

Slide 42 text

43 Searching for a Solution

Slide 43

Slide 43 text

44 Searching for a Solution

Slide 44

Slide 44 text

45 Searching for a Solution

Slide 45

Slide 45 text

46 Shell to the Rescue?

Slide 46

Slide 46 text

47 Happy Now?

Slide 47

Slide 47 text

48 Oh God No...

Slide 48

Slide 48 text

49 Oh God No...

Slide 49

Slide 49 text

50 Oh God No...

Slide 50

Slide 50 text

51 Oh God No...

Slide 51

Slide 51 text

52 Oh God No...

Slide 52

Slide 52 text

53 Oh God No...

Slide 53

Slide 53 text

54 Oh God No...

Slide 54

Slide 54 text

55 Scratching the Surface • Build Failures • Dependency Conflicts ‒ Pkg A from Repo $FOO conflicts with Pkg B from Repo $BAR • Unresolvable Dependencies • Broken Packages ‒ They are in a Devel Project for a reason ‒ Packages are MEANT to break in Devel projects

Slide 55

Slide 55 text

56 Devel repositories should not be used by users EVER

Slide 56

Slide 56 text

How do we fix this?

Slide 57

Slide 57 text

58 Option A – Fix ALL THE THINGS • OBS ‒ Cross-Project Dependency Checker ‒ Freeze Project Publishing on Build Failure ‒ Create a new type of ‘stable:’ repo • zypper ‒ Hide ‘will NOT be installed’ warnings ‒ Redesign entire ‘vendor’ concept ‒ Add OBS & SLE Module Search functionality

Slide 58

Slide 58 text

59 Option A – Continued • YaST ‒ Add OBS & SLE Module Search functionality • 1-Click Install ‒ Fix EVERYTHING ‒ Stop it adding totally INSANE repos (Power_PC for x86_64?) ‒ Rename it 9+ Clicks • software.opensuse.org ‒ Simplify search ‒ Remove home: & devel: repos

Slide 59

Slide 59 text

60 Option A - Continued • Give up on RPMs entirely ‒ Sell soul to Mark Shuttleworth and build everything as Snaps ‒ Throw decades of good engineering practice out with Flatpaks ‒ Explain to our users how a ‘minimal’ installation is now over 40GB for 300 packages. ‒ Justify many GB of downloads when Java or openSSL needs a patch

Slide 60

Slide 60 text

61 Option B Add Your Bloody Packages To The Bloody Distribution

Slide 61

Slide 61 text

62 What should Users do?

Slide 62

Slide 62 text

63 What should Users do? Ask Maintainers To Add Their Bloody Packages To The Bloody Distribution

Slide 63

Slide 63 text

Developing our Software

Slide 64

Slide 64 text

65 “Putting packages in to the distribution is too hard!” - Every single packager, ever, including me

Slide 65

Slide 65 text

66 Role of Devel Projects

Slide 66

Slide 66 text

67 Role of Devel Projects

Slide 67

Slide 67 text

68 Castles on Shifting Sand

Slide 68

Slide 68 text

69 You are perfect, but are they?

Slide 69

Slide 69 text

70 Don’t Misuse Devel Projects

Slide 70

Slide 70 text

71 Build only what you need • MANDATORY: Factory/Tumbleweed • OPTIONAL: Leap 42.x ‒ Where .x is the NEXT version of Leap • OPTIONAL: SLE_12_SPx ‒ Where x is the NEXT SLE Service Pack • Everything else is NOT suitable for a Devel Repo ‒ It’s more work for you to maintain it. Why waste time? ‒ It’s more work for OBS to build it. Why waste servers?

Slide 71

Slide 71 text

72 Do it right today, save work tomorrow • Tumbleweed today will become Leap 43.0 and SLE 13 tomorrow • Work at a relaxed pace today to avoid chaos in the future • Leap 42.x and SLE 12 SPx benefit from a healthy, feature filled Tumbleweed • Keeping packages outside of the Distributions hide MAJOR integration issues

Slide 72

Slide 72 text

73 You are not alone • [email protected][email protected] • #opensuse-factory on irc.opensuse.org • Ludwig Nussel • Dominique Leuenberger • Max Lin

Slide 73

Slide 73 text

74 Let’s talk about Policies https://en.opensuse.org/openSUSE:Packaging_guidelines • Policies exist for good reasons ‒ Developed from solid engineering experience ‒ Developed from solid COMMUNITY experience • Shared with SUSE Linux Enterprise • No openSUSE policy is set in stone ‒ Discuss at [email protected]

Slide 74

Slide 74 text

Additional Repos Done Right

Slide 75

Slide 75 text

76 How SUSE Build Add-Ons SLE Package Hub Server Desktop Workstation Ext. SDK HA

Slide 76

Slide 76 text

77 Key Features • Most are “Cut from the same cloth” • Built Together, Designed to Work Together • Easy to Test Together • Each Extension/Module is no larger than it needs to be • Each Extension/Module moves only when it needs to

Slide 77

Slide 77 text

78 When openSUSE Should Build Add-Ons • “When there is no other choice” ‒ Do not add avoidable complexity for yourselves or users • Tumbleweed – No Add-Ons ‒ Always open for submissions, so no need for add-ons ‒ Exceptions – Prop. Kernel Modules, Packman • Leap – stable: “Backport” Add-Ons ‒ Users may want a ‘stable’ version of something newer than in the released Leap version

Slide 78

Slide 78 text

79 Idea – stable: Repos • Small, tightly defined repo ‒ “just enough to give the users what they need” • Built for openSUSE Leap ‒ OpenSUSE 13.1 & 13.2 end support in Nov 2016 / Feb 2017 ‒ SLE already has Package Hub https://en.opensuse.org/Portal:Backports

Slide 79

Slide 79 text

80 Concept – stable: repos devel: Python Tumbleweed Python Submit Backport stable: Python

Slide 80

Slide 80 text

81 Concept – stable: repos Leap stable: Python zypper addrepo zypper dup stable: Python Leap Python

Slide 81

Slide 81 text

82 stable: repo Theoretical Benefits • Frees devel: repos to be used for development • stable: repos able to move at the best pace for users • Makes it clear to users which add-ons are safe • Reduces complexity of current devel: mess • Small, targeted repos should be testable

Slide 82

Slide 82 text

83 stable: repo Problems • Narrow, targeted repos – How do we enforce this? • Dependencies between repos – How do we resolve? • Upgrade policy? • Maintenance Model? • Testing? Adding Packages To The Distribution Is EASIER

Slide 83

Slide 83 text

84 Recap • Maintainers, put your packages in the distribution! • Users, do not use packages from devel: projects! • stable: repos MAY be an option for specific stacks ‒ With significant effort by a lot of people • The status quo must not continue

Slide 84

Slide 84 text

Thank you. Questions?

Slide 85

Slide 85 text

General Disclaimer This document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at https://creativecommons.org/licenses/by-sa/4.0/ Credits Template Richard Brown [email protected] Design & Inspiration openSUSE Design Team http://opensuse.github.io/branding- guidelines/