Hi! I'd like to post a blog article which would serve as a packaging tutorial. A rough outline: --8<---------------cut here---------------start------------->8--- 0. Introduction The perks of Guix, what it means to have a full-fledged programming language at hand for package management (e.g. inheritance, en-masse modifications). 1. General Go through the various fields of the `package` record. GUIX_PACKAGE_PATH, `guix build` and `guix package`. Where to read about the build systems: Guix source code. Explain some common pitfalls, e.g. the difference between `define-public` and the `package` record (this has come up many times on the mailing list), the Texinfo syntax in descriptions, the linter, the licenses. 2. Trivial build system Provide a complete example. 3. GNU build system - Provide a complete, argument-free example. - Provide a complete example with arguments such as extra configure/make flags, some substitution, a snippet, etc. 4. Conclusion Further reading, more build systems, tips & tricks. Maybe mention a few complex package declarations --8<---------------cut here---------------end--------------->8--- What do you think? I'm mostly wondering whether the GNU build system should be introduced before the trivial build system: it's simpler and would let the user have a first package ready within minutes with fewer lines of code to understand; conversely, it also means that we would first take some black-box systems for granted ("What the hell happens under the hood?", might some readers wonder) which would only be explained later. Opinions? -- Pierre Neidhardt https://ambrevar.xyz/