User:Sam/Useful scripts

Something we need to work on within Gentoo is sharing workflows and tooling we all use on a daily basis as developers. A lot of us end up writing the same scripts for common tasks.

We should work towards having some common package for these, but for now, let's start with a list of such known scripts to try deduplicate!

General resources
I've tried to include vaguely what each provides but they all have an interesting list of tools you should try out rather than solely relying on the description.


 * (github) is a collection of miscellaneous QA tools, mostly for post-emerge output
 * (github) has miscellaneous scripts for bumping packages and diffing changes
 * ajak has a set of scripts available here.
 * slyfox has a collection of mainly keywording/stabilisation scripts available.

QA

 * is a -based commit helper replacement
 * is a QA tool similar to . Gentoo's CI runs on pkgcheck.
 * is the traditional commit-based QA tool for ebuilds, but lacks checks which pkgcheck supports.

Non-packages

 * qa-reports has a set of useful checks carried out periodicially on the repository.
 * Repository CI output
 * View per-maintainer QA reports by changing the  parameter.
 * Useful make.conf settings
 * mgorny's workflow for cleaning up old versions
 * mgorny's workflow with git/pkgcheck
 * Exhaustive wiki article on testing packages

Patching

 * slyfox published a set of hooks for Portage's called gitify which prepares the   as a git repository to easily obtain patches.
 * mpagano has explained how to use
 * A blog post on using it in Debian
 * Another on using it in Debian

Stabilisation / keywording

 * (github)
 * (github)
 * (github) which handles updating Bugzilla/your local tree, not the testing itself
 * mgorny's workflow
 * slyfox's workflow
 * sam's archtools

Misc

 * (github) is a set of Python-specific tools
 * (github) is an ebuild generator for Haskell packages
 * (github) is a set of scripts for retiring Gentoo developers
 * bug-assign-user-js is a TamperMonkey script to easily assign bugs on Bugzilla

Chroots

 * (github)
 * gentoo-chrootiez

Testing

 * juippis's lxd based workflow
 * mgorny's puremerge tool to install minimal dependencies (use in a chroot!)
 * ebuild-commander to run commands in a container easily
 * mgorny's systemd-nspawn-config
 * mgorny's systemd-nspawn-config

Tinderboxing

 * toralf's tinderbox
 * ago's CI scripts
 * zorry's ongoing Buildbot-based CI tooling
 * The ongoing GKernelCI effort

GitHub

 * (github) makes it easy to merge GitHub PRs
 * GitHub Action for pkgcheck
 * repoman for Travis (less relevant now Travis limited FOSS credits)
 * Using repoman with GitHub Actions
 * Using ebuild-commander to test overlays

Curious bits

 * Including ebuild generation as part of a release process
 * Test ebuild as part of Action

Creating custom images

 * sping's image-bootstrap
 * kubler (a container-based tool to work with ebuilds)
 * Gentoo over PXE

Configuration management

 * Ansible example (slashbeast)
 * Salt example (mattst88)

Building binary packages

 * sping's binary-gentoo to ease building binpkgs on non-Gentoo systems
 * mgorny's Dockerfile to build binpkgs for e.g. gentoo-kernel, pypy

Misc

 * portage-gentoo-git-config
 * gentoo-git-squash