next gen tooling · v. a distribution b. fedora rings 2. build tooling today 3. build tooling...
TRANSCRIPT
![Page 1: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/1.jpg)
(For Release Engineering)
Adam MillerPresented by
Fedora Engineering, Release Engineering Team
CC-BY-SA
Next Gen Tooling
![Page 2: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/2.jpg)
Today's Topics1. Background
a. What is:i. Release Engineering
ii. An Operating System
iii. An application
iv. A package
v. A Distribution
b. Fedora Rings
2. Build Tooling Today
3. Build Tooling Tomorrow
![Page 3: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/3.jpg)
Background
![Page 4: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/4.jpg)
From Wikipedia
“is a sub-discipline in software engineering concerned with the compilation, assembly, and delivery of source code into finished products or other software components”
Goal (surely you jest):
Maintain sanity in the pipeline of source code to something consumable
Produce/maintain tooling to facilitate in that goalhttps://fedoraproject.org/wiki/ReleaseEngineering/Overviewhttps://fedoraproject.org/wiki/ReleaseEngineering/Philosophy
What is Rel-Eng?
![Page 5: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/5.jpg)
What is an Operating System?
“software that manages computer hardware and software resources and provides common services for computer programs”
(also from Wikipedia)
Operating Systems?
![Page 6: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/6.jpg)
What is an Application?
“set of computer programs designed to permit the user to perform a group of coordinated functions, tasks, or activities. Application software cannot run on itself but is dependent on system software to execute.”
(also from Wikipedia)
Thing to note and think about: “is dependent on the system software to execute”
Applications?
![Page 7: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/7.jpg)
What are Packages?
Build artifacts that can be consumed and used
What “consumed” and “used” will vary based on content vs code and end delivery format/mechanism
(Fonts, Icon sets, qcow images, rpm-ostrees, etc)
What about things that aren't rpm?pip, gem, npm, maven, etc.
Packages?
![Page 8: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/8.jpg)
What is a Distribution?
“an operating system made as a software collection based on the Linux kernel and, often, on a package management system.”
(Also from wikipedia)
What does this mean today vs yesterday?
Distros used to be one-stop-shop
Today it's the base layer where some things come from the distro but not all
Distro?
![Page 9: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/9.jpg)
Where does the Operating System end and the Application begin?
What if those things weren't tightly coupled?
Docker, Rocket(rkt), xdg-app, $other(?)
Examples:
Android
iOS
FirefoxOS
ChromeOS
Thinking about Fedora
![Page 10: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/10.jpg)
BASE DESIGN
FEDORA RPM COLLECTION
BUILD DEPS FOR BASE
FEDORA.NEXT RINGS MODEL
CONCEPT
SPRING 2015
BASE DESIGN AS RPM-OSTREE WITH SERVER, CLOUD, AND WORKSTATION AS OVERLAYS; SUBCOMPONENTS PROVIDED VIA CONTAINER TECHNOLOGIES
Fedora Rings!
![Page 11: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/11.jpg)
What does Fedora Rings mean to RelEng?
We need to be able to adapt more rapidly for build artifact delivery (things change faster than they used to)
Still need to make sure the Operating System doesn't turn into the wild west.
Rel-Eng criteria still need to be metReproducableAuditableDefinableDeliverable
Fedora Rings?
![Page 12: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/12.jpg)
Tooling Today
![Page 13: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/13.jpg)
(Yesterday too)
Koji
RPM-centric
ImageFactory Integration
LiveCD Creator
Pungi
Lorax
Bodhi
Wild West: COPR
Today
![Page 14: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/14.jpg)
Tooling Tomorrow
![Page 15: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/15.jpg)
Koji 2.0
Content Generator CentricRPM Builds being a first class Content Generator
Live Media Creator
Secondard Arches in mainline Koji
Pungi4 (Might go away? Maybe???)
Layered Image Builds for Containers
Fedora Atomic Two Week Releases
Wild West: COPR/DOPR/$Other?
Tomorrow
![Page 16: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/16.jpg)
Atomic Two Weeks
![Page 17: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/17.jpg)
Layered Image Build
OpenShift
Koji
DistGit
FedPkg
OSBS
![Page 18: Next Gen Tooling · v. A Distribution b. Fedora Rings 2. Build Tooling Today 3. Build Tooling Tomorrow. Background. From Wikipedia “is a sub-discipline in software engineering concerned](https://reader033.vdocuments.mx/reader033/viewer/2022060707/60734730af3be17eb3189383/html5/thumbnails/18.jpg)
Containers
Supporting alternate container formatsRocket (rkt)
runC
Freight agent
$other?
Atomic Workstation
Nulecule AppsMulti-Container
$NewHotness
What Next?
BASE DESIGN
FEDORA RPM COLLECTION
BUILD DEPS FOR BASE
FEDORA.NEXT RINGS MODEL
CONCEPT
SPRING 2015
BASE DESIGN AS RPM-OSTREE WITH SERVER, CLOUD, AND WORKSTATION AS OVERLAYS; SUBCOMPONENTS PROVIDED VIA CONTAINER TECHNOLOGIES