Open-source News

Upstream first or the path lifting property of a covering space

opensource.com - Mon, 03/21/2022 - 15:00
Upstream first or the path lifting property of a covering space Aleksandra Fedorova Mon, 03/21/2022 - 03:00 Up Register or Login to like.

Don't be scared; when you reach the end of this article, you will understand its title.

Understand spaces

Geometry and Topology is an area of mathematics that deals with spaces, usually topological, and various additional structures you can define on them.

How do you turn a set of elements into a list? "You use the list() function!" say my Pythonic friends. But essentially, you add the idea of an order. You take the set and explain which point in that set is next. Similarly, spaces are sets of elements with these additional concepts:

  • For a topological space, add the idea of a neighborhood. You explain how to tell that two points are close.
  • For a metric space, add the idea of a distance. You explain how to measure the distance between any two points of the set.

There are many types of spaces in mathematics, from a well-known Euclidean space to a less known but not less common differentiable manifold all the way to exotic structures invented moments ago. And the research in this area circles around finding relationships between different structures and determining whether they define the same basic object.

For example, it is quite easy to prove that a metric space is always a topological space. But it is a bit harder to show that there are topological spaces that can not be expressed in terms of distance.

However, for the casual weekend topologists out there, I recommend two-dimensional surfaces, for example, the good old sphere, torus, or a Mobius strip. Not as square and flat as the Euclidean plane, but still manageable. And the classification theory of two-dimensional compact manifolds is a lot of fun.

Covering space

Take a spring coil and look at it from the top. You will see a circle.

 

Expressing this fact in mathematical language, you would say that the coil itself is the total space. In this case, on its own, it is just a one-dimensional line. It is made up of various components:

  • The circle you see is a base space.
  • The line of sight defines the covering map.
  • If you had a laser sight, the points where the laser would cut the coil would be called a fiber.

More great content Free online course: RHEL technical overview Learn advanced Linux commands Download cheat sheets Find an open source alternative Explore open source resources

And altogether, total space, base space, and covering map define the covering space or a covering of a circle by a line with discrete fiber.

Homework: Can a circle cover a line?

The critical quality of the covering space, which makes it different from just any projection, is that the neighborhood of each fiber point in the total space works very much the same as the neighborhood of its projection in the base space. This allows you to reason about specific properties of a total space using the pre-existing knowledge of a base space and vice versa.

And mathematicians just love to move between spaces in this way. Once you hit a certain roadblock with the space you are currently researching, you craft a clever mapping of the space onto familiar grounds. You prove something there and then transfer the result back into the original space, where it can lead to new and exciting breakthroughs.

Path lifting property

What does it all have to do with upstream first?, you may ask. (We are yet in the early stages of developing a proper mathematical apparatus for this theory. Feel free to add your suggestions and corrections in the comments section below.)

Look at how code is delivered to an enterprise-level Linux distribution, for example, CentOS Stream. There is an open source project and community which develops a specific version of a piece of software, for example, Firefox. We call such a project upstream. Once the upstream project releases a Firefox version, it gets packaged to Fedora. And then someday, the new CentOS Stream version is bootstrapped using the content of the Fedora package, which contains a specific version of Firefox from the upstream project.

When the upstream project releases a critical update of Firefox, the update is packaged and released in Fedora. But it is also packaged and released via CentOS Stream.

The FOSS space

Consider the set of all patches to all upstream projects, Fedora, and CentOS Stream. Obviously*, this is a topological space, where the Git history defines the neighborhood of a patch.

(*) Sometimes mathematicians use the word obviously to hide the fact that they can not really explain the concept in detail.

This space is not easy to grasp, and while you can connect some of the dots with a path, its global properties are yet to be explored.

The covering map

Take any commit in the FOSS space and map it to a commit in CentOS Stream, which implements the same functionality or fixes the same issue. For a regular commit in CentOS Stream, the map is trivial. The map points to its downstream version for any upstream change or a change in Fedora. Therefore, FOSS space can be represented as a covering space with CentOS Stream as its base.

Lifting a path

The path lifting property tells you that for every path in the base (a change in CentOS Stream), there should be a lifted path in the layers (a change in Fedora and in the upstream project, which maps onto it). In other words, it represents the same bugfix.

And the upstream first principle tells you to build that path.

Wrap up

Applying mathematical concepts to FOSS deployments provides new and interesting ways of understanding the interrelated nature of open source software. I hope this has been an insightful and interesting foray into space and the upstream first principle.

Applying mathematical concepts to FOSS deployments provides new and interesting ways of understanding the interrelated nature of open source software.

Image by:

João Trindade. Modified by Jason Baker. CC BY-SA 2.0.

Science What to read next This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. Register or Login to post a comment.

Customer success stories: Red Hat OpenShift paves the way toward hybrid cloud

Red Hat News - Mon, 03/21/2022 - 12:00

In this month’s customer success highlights, learn how Red Hat’s enterprise Kubernetes platform—along with our other solutions and services—has helped Credit Europe Bank, Santander Colombia, and Universidad Mayor adapt to demands in a rapidly changing world.

Newer ASUS Motherboards To See Improved Sensor Handling With Linux 5.18

Phoronix - Mon, 03/21/2022 - 12:00
Following yesterday's Linux 5.17 release, HWMON subsystem maintainer Guenter Roeck was quick to send in the feature updates for the hardware monitoring subsystem for Linux 5.18...

Linux 5.17 Released With AMD P-State Driver, Plenty Of New Hardware Support

Phoronix - Mon, 03/21/2022 - 05:59
Following the one week delay to the release schedule, Linus Torvalds issued the Linux 5.17 stable release a short time ago...

AMD Publishes New Instinct MI200 Instruction Set Documentation

Phoronix - Sun, 03/20/2022 - 19:25
AMD quietly posted a new version of its instruction set architecture documentation concerning its Instinct MI200 accelerator. AMD originally published the ISA documentation for the MI200 back in November but it seems to have gone unnoticed (including by me) while in February they went ahead and released a new version of that technical documentation...

Linux Mint Debian Edition 5 Released - Built Atop Debian 11

Phoronix - Sun, 03/20/2022 - 18:46
The Linux Mint crew have today released Linux Mint Debian Edition 5 (LMDE5). This is the effort carried out as a safeguard should Linux Mint in the future determine it unsuitable to continue basing their flagship distribution atop Ubuntu...

Many NVMe Updates & Other Block Changes For Linux 5.18

Phoronix - Sun, 03/20/2022 - 18:25
In addition to the IO_uring updates for Linux 5.18, block subsystem maintainer Jens Axboe has also submitted the core block and driver changes ahead of the v5.18 merge window opening tonight following the release of Linux 5.17...

Updated AMD GPU Firmware Blobs Land In Linux-Firmware.Git For PSP 13.0.8, GC 10.3.7

Phoronix - Sun, 03/20/2022 - 17:37
AMD's Radeon Linux graphics driver developers remain very busy working on their upcoming GPU support...

Microsoft Enables SELinux By Default For CBL-Mariner Linux Distro

Phoronix - Sun, 03/20/2022 - 17:11
It was just last week Microsoft issued a new monthly update to CBL-Mariner, its Linux distribution within use at the Windows company for tasks ranging from Azure to WSL. Now a second update for March has arrived for CBL-Mariner with security fixes and a few other updates...

Pages