RSSAmplifier

Blog

The Lunar Cowboy

lunarcowboy.comRSS feed ↗30 posts

Latest posts

Gentoo Build Publisher: GraphQL Interface

It's been four years since I've talked about Gentoo Build Publisher 's GraphQL API. The 3.2 release contains a number of improvements worth mentioning. The GraphQL API is mostly intended to support the CLI, however it can also be used for other purposes. Plugins can also extend the API …

An Introduction to Gentoo Build Publisher Plugins

For a while I have been thinking about writing documentation on how to write plugins for Gentoo Build Publisher . There have been a couple of reasons for putting it off, the main one is that the plugin system is still in active development. But I figured that if I instead …

Announce: Gentoo Build Publisher 3.0.0

I have released Gentoo Build Publisher 3.0.0. The reason for the major version bump is due to backwards-incompatible changes, which include: Support for "old-style" plugins has been dropped. The original multi-entrypoint way of declaring plugins has been removed. None of the "official" plugins use this method anymore so …

Introducing unittest-fixtures

I would like to introduce unittest-fixtures . The unittest-fixtures package is a helper for the unittest.TestCase class that allows one to define fixtures as simple functions and declare them in your TestCase using decorators. The unittest-fixtures package is available now from PyPI . The following is extracted from the project's README …

Announce: Gentoo Build Publisher 2.7.0 / gbp-feeds 1.0.0

Gentoo Build Publisher 2.7.0 has been released. Gentoo Build Publisher is a CI/CD binhost/repo publishing system for Gentoo Linux . Notable features in this release include: Chart animations have been disabled in case you found them annoying. Individual builds now have their own page in the web …

Gentoo Build Publisher 2.5.0

Gentoo Build Publisher 2.5.0 is now released, along with releases for its various plugins. Speaking of plugins, when 2.0.0 was released I was very pleased that GBP had support for plugins. Back then there were (only) two plugins available: gbp-ps and gbp-notifications. Since then the plugins …

Gentoo Build Publisher: Auth & API Keys

This article explains how to enable authentication in Gentoo Build Publisher using API keys to secure the server's access via GraphQL. The gbpcli command-line tool (client) communicates with Gentoo Build Publisher (server) by way of a GraphQL API. Some of the gbpcli subcommands (e.g. pull , tag , etc). change the …

Gentoo Build Publisher: dump & restore

The upcoming release of Gentoo Build Publisher will have the ability to dump and restore builds to an archive. For a while I've wanted this feature but just never got around to it. The main reason that I wanted it is that when I find an issue on my "production …

Announce: gbp-fl

There's a new plugin for Gentoo Build Publisher available: gbp-fl . Think of it as e-file or equery files but instead it indexes files from binary packages on Gentoo Build Publisher. For example: But more than that it can also fetch the binpkgs without having to go through portage: More features …

Gentoo Build Publisher: Using Separate Machines for Overlays

A powerful feature of Gentoo is the ability to pull in packages from multiple third party repos (aka overlays). Gentoo Build Publisher also takes advantage of this feature, so that a machine definition declares which repos it depends on. This is in fact one of the advantages of using GBP …

Gentoo Build Publisher: Manually Running Repo Jobs

Note: Since version 2.2.0 Gentoo Build Publisher (and the CLI) has the ability to pass a --repo flag to the build subcommand, rendering this article obsolete. The Gentoo Build Publisher command-line interface has the build subcommand, which can schedule a machine definition for a build. For example, If …

Gentoo Build Publisher Installation Woes

I try to make an effort to occasionally go through the Gentoo Build Publisher Install Guide to make sure it is up to date, but I don't always get to it between major changes. Recently it came to my attention that the Install Guide was not working as expected. I've …

Gentoo Build Publisher: Running arbitrary commands in a machine's chroot

Gentoo Build Publisher uses buildah containers to build each machine's binary packages. For each machine, the Jenkins build runs arbitrary commands in the respective container. Usually the user does not need to concern themselves with this implementation detail. But sometimes we need to "open up" the container and do something …

Gentoo binary host, Gentoo Build Publisher version 2 & plugins

Not long ago Gentoo announced binary packages for Gentoo! So even if you're not using Gentoo Build Publisher you can still use Gentoo and take advantage of binary packages. However there is still a place for Gentoo Build Publisher. There are a few things that can be done with GBP …

Gentoo Build Publisher: Pro-Tip: Purging a Machine that is Disabled on Jenkins

This is a short tip and (self) reminder about getting GBP to purge old builds from a machine that is disabled on Jenkins. A bit of background here. Gentoo Build Publisher has a "purge" feature that will auto-purge old builds from a machine. This process kicks off automatically when after …

Bisecting GBP Builds to Find a Bad Package

Let's say you use Gentoo Build Publisher to continuously build your Gentoo machine's packages, but you haven't updated your actual machine in a while. And finally when you do something's broken but you don't know what broke or when? Well something like that happened to me and I want to …

Delaware Tornado

I've decided to set up a GoFundMe for my elderly Aunt and cousins who were affected by the 2023-03-31 a series of tornados and severe thunderstorms struck through North America. It struck in areas that are not typically areas for tornados. One such area was Delaware, and especially Southern Delaware …

Rolling Back a Rolling Release with Gentoo Build Publisher

Let's say you've upgraded to tracker-3.4 and it doesn't work. You could mask tracker-3.4, but it depends on tracker-miners-3.4 so you'll have to mask that too. There may be other dependencies that you'd have to mask too. What you'd really rather do is go back in time …

Historical Values in Python

Often in programming we have some "constant" value that we define as a variable in Python. But the only try constant is change. Consider for example you have a program that needs to process a file with a certain filename. So you might have something like: FILENAME = "foo.txt" data …

Installing Gentoo Build Publisher

In my article from 14 months ago when I introduced Gentoo Build Publisher I wrote "Next time I will write about how one can install one's own gbp instance." Well that didn't happen. It's not that I couldn't document it, but I first wanted to make installing GBP easy. I …

Python Cannot Return Multiple Values

It is often said that Python functions can return multiple values, but this isn't really true. Often the examples given to show Python returning multiple values is something like this: def foo (): return 1 , 3 a , b = foo () But is that really returning multiple values? No. Well then how come …

Python: Comparing timestamp strings

This article discusses how you should (and shouldn't) compare string representations of timestamps in Python . Often times when programmers process external data there are timestamps (date and time) and usually this data comes into Python as a string, although some times it could be an integer or float. The international …

Gentoo Build Publisher: Getting failure logs

When one is performing Gentoo builds inside a CI/CD container (inside another container) and a build fails it is sometimes desirable to create a bug report at bugs.gentoo.org . Often the Gentoo developers require that you include the error output and build logs. However getting the logs out …

Exploring the Gentoo Build Publisher Dashboard

Screenshots and explanation of the new Gentoo Build Publisher dashboard.

du and hard links

If, like me, you've ever been curious about if/how coreutil's du command handles hard links: $ mkdir test $ mkdir test/a test/b $ dd if = /dev/zero of = test/a/a bs = 1M count = 1 1 +0 records in 1 +0 records out 1048576 bytes ( 1 .0 MB, 1 .0 …

Gentoo Build Publisher: Updates/GraphQL

I am still working on a way to make Gentoo Build Publisher easy(er) to install and use. Initially I've wanted to create Docker images for the different components. However the main issue with that is that the Jenkins builds use buildah to build Gentoo machines in containers, and while …

Testing and (false) Confidence

It is often said that one of the advantages of testing is that it gives one confidence when refactoring. And I think this is true. However sometimes poorly-written tests or incomplete testing can have the ability to give someone too much confidence. Take the case of Gentoo Build Publisher . It …

How to install a Gentoo Build Publisher

In my previous post I explained what Gentoo Build Publisher is and how it may benefit Gentoo users, especially those with multiple heterogeneous Gentoo systems. Here I will explain how I currently have a GBP instance running for my systems at home. Firstly you'll need a Jenkins instance. GBP currently …

Introducing Gentoo Build Publisher

Gentoo Linux is a source-based rolling-release meta-distribution that one can twist and mold into pretty much anything one likes. That's just a verbose way of saying Gentoo is awesome. Over the years I have been interested in mixing Gentoo's source-based DNA with continuous integration . For a while I've had most …

An Introduction to Makefiles (Using Test-Driven Development)

I use Makefiles a lot for development. Makefiles have been around for a long time and though there are other tools out there that have come along for building large software projects, I find that Makefiles are still a great way to perform relatively simple, yet repetitive tasks. And the …