diff --git a/content/posts/evolving-qa-tooling.md b/content/posts/evolving-qa-tooling.md index 3e86246..ba84cf5 100644 --- a/content/posts/evolving-qa-tooling.md +++ b/content/posts/evolving-qa-tooling.md @@ -5,11 +5,11 @@ date: 2024-06-22T21:09:36-06:00 tags: ["linting", "Gentoo"] --- -QA support in Gentoo has been a fluid, amorphous goal over the project's -history. Throughout the years, developers have invented their own scripts and -workflows to workaround the limitations of official tooling. More recently, the -relaxed standards have been tightened up a fair amount, but it should be -possible to achieve more results with further improvement. +QA support in Gentoo has been a fluid, amorphous goal over the project's history. +Throughout the years, developers have invented their own scripts and workflows to +workaround the limitations of official tooling. More recently, the relaxed standards have +been tightened up a fair amount, but it should be possible to achieve more results with +further improvement. Having become an official developer in 2010, much of my initial ebuild development revolved around CVS and repoman, both of which felt slow and antiquated even at the outset @@ -27,23 +27,21 @@ towards a potential alternative is not easy. # Pkgcraft support Similar to how pkgcheck builds on top of pkgcore, pkgcraft provides its core set of QA -tooling via pkgcruft[^pkgcruft] which is currently an ebuild linter supporting a small -subset of the checks provided by pkgcheck. Most of pkgcruft's current checks are provided -as examples to implement similar ones so they run the spectrum from bash parsing to -dependency scanning. - -A basic scanning and report API is also provided, potentially allowing for language -bindings to provide native pkgcruft support or building report (de)serialization support -into web interfaces and other tools. For example, it could be interesting to write a -client/server combination that can create and respond to queries related to reports -generated by given packages between certain commit ranges. - -Looking towards the future, the current design allows for extending its ability past -ebuild repos to any viable targets that make sense on Gentoo systems. For example, it -could be handy to scan binary repos for outdated packages, flag installed packages removed -from the tree, or warn about USE flag settings in config files that aren't relevant -anymore. These types of tasks are often handled in a wide variety of places (or left up to -user implementation) at varying quality and performance levels. +tooling via pkgcruft[^pkgcruft], an ebuild linter featuring a small subset of pkgcheck's +functionality with several extensions. As the project is quite new, its limited number of +checks run the spectrum from bash parsing to dependency scanning. + +An API for scanning and reports is also provided, allowing language bindings for pkgcruft +or building report (de)serialization into web interfaces and other tools. For example, a +client/server combination could be constructed that creates and responds to queries +related to reports generated by given packages between certain commit ranges. + +Looking towards the future, the current design allows extending its ability past ebuild +repos to any viable targets that make sense on Gentoo systems. For example, it could be +handy to scan binary repos for outdated packages, flag installed packages removed from the +tree, or warn about USE flag settings in config files that aren't relevant anymore. These +types of tasks are often handled in a wide variety of places (or left to user +implementation) at varying quality and performance levels. ### Install @@ -307,12 +305,12 @@ for feedback. Extending pkgcheck's git support provided by `pkgcheck scan --commits`, it should be possible to natively support bisecting ebuild repo commit ranges to find a bad commit -generating certain report variants. Gentoo CI supports this in some fashion for its -pkgcheck notification setup, but implements it in a scripted fashion that doesn't allow -for regular users to leverage it without recreating a similar environment. +generating certain report variants. Gentoo CI supports this in some form for its +notification setup, but implements it in a more scripted fashion preventing regular users +from leveraging it without recreating a similar environment. Pkgcruft could internally run the procedure using native git library support and expose it -via a command such as `pkgcruft bisect a..b`. While this is often a workflow only used by +via a command such as `pkgcruft bisect a..b`. While this may be a workflow only used by more experienced devs, it would be handy to support natively instead of forcing users to roll their own scripts.