-
Notifications
You must be signed in to change notification settings - Fork 1.1k
DevelopmentPrinciples
Martin Pitt edited this page Jul 15, 2020
·
10 revisions
- keep master working on as many (current) OSes as possible; use run-time feature/API detection
- test for every change; some OS conditionals in tests
- code is easy (or possible+documented) to run straight out of git tree; no permanent system modifications
- test VMs double as devel environment for testing intrusive changes; faster iteration with
scp
instead ofimage-prepare
- tests are easy to run and debug locally
- test on every supported OS
- offline build and tests
- provide our own versions of third-party services: FreeIPA, Samba AD, candlepin, OpenShift, ovirt, selenium containers
- provide mechanics for creating rpms, debs, and entire repositories from scratch locally
- separate OS image refreshes
- test robustness: touched tests succeed 3x in a row, untouched tests succeed 1 out of 3; database of test flakes
- run upstream integration tests in downstream gating
- the above approach allows us to upload current master until the latest freeze
- automate everything: github, fedora, copr, PPA, dockerhub, home page (docs)
- process in principle: create tag, write blog post