Goal & motivation
Once upon a time Fuchsia OS & platform built out of multiple repositories, designed in a cascade so that changes would flow from the lower-level repositories to the higher-level repositories. This arrangement was called the Layer Cake, and was comprised of four layers: Zircon (mostly kernel and drivers), Garnet (low-level usermode services), Peridot (application-facing services), and Topaz (application layer).
The distinctions between layers weren't crystal clear, the cost/benefit of this arrangement wasn't compelling, and so eventually we moved the majority of Fuchsia OS & platform development into a single repository and established a new source code layout.
However the old model left a lingering mark on our directory structure, as you can still find top-level directories named after layers.
These holdover-directories only serve to confuse new team members. Let's move on.
Technical background
Not much to say here. Move slow and don't break things.
Don't let them eat cake?
How to help
Picking a task
The following directories remain in the Fuchsia git repository:
//zircon/
//garnet/
Show them that you mean business by picking one of their subdirectories and
moving it elsewhere - typically to //src
.
At the time of writing, prime targets for migrations include:
//zircon/system/ulib/
//zircon/system/utest/
//garnet/bin/
//garnet/lib/
Doing a task
This mostly involves moving files and renaming some build targets. 9 out of 10 changes will be entirely mechanical.
Completing a task
Find reviewers via OWNERS, merge your change, and take us one step closer to deleting layer directories.
In your commit messages, include:
Bug: 36063
Examples
424156: [fuchsia-cprng] Move to src/lib/zircon/rust
449714: [build][power] Move power_manager to //src/power
461096: [thermd][shuffle] Migrate thermd from //garnet to //src
473957: [sysmem] Move sysmem_connector to src/devices/sysmem/bin
592547: [log_listener] Move from garnet to src/diagnostics
627766: [boards][garnet] Cleanup graphics targets
Sponsors
Reach out for questions, status updates, or OWNERS approvals:
- jamesr@google.com
- shayba@google.com