live-bootstrap/DEVEL.md

1.5 KiB

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).