live-bootstrap/DEVEL.md

46 lines
1.5 KiB
Markdown
Raw Normal View History

2021-01-20 01:43:40 +00:00
# Development Guidelines
## Testing
Before making a PR, please test your change locally. It is OK to develop outside
of the live environment, but please be sure to test inside the live environment
and that a full build completes.
## Structure
Each system corresponds to a reboot of the live environment. There is only one
appropriate structure as shown below (eg for sysa):
```
sysa
├── any-global-files.sh
├── somepackage-version
│   ├── somepackage-version.kaem (or .sh)
│   ├── files
│   ├── mk
│   ├── patches
│   └── src
└── tmp
```
Global scripts that drive the entire system go directly under `sysx`. `tmp`
contains the temporary system used for QEMU or a chroot.
Then, each package is in its own specific directory, named `package-version`.
Within that, there must be a driving script, labelled either
`package-version.kaem` when driven by kaem or `package-version.sh` when driven
by a shell (normally bash).
In this folder, there are other folders. `src` is required, others are optional.
Permissable folders:
- `files`: auxiliary files required for the build distributed by live-bootstrap.
- `mk`: makefiles.
- `patches`: patches for the source.
- `src`: the upstream unmodified source code. This must be either:
- a submodule
- a folder contianing only `.placeholder` as distributed by git and gitignored,
where the tarball is saved to in rootfs.sh. (The gitignore is already
global, so the first time it is created with `.placeholder` it must be git
added with `-f`).