Delegated Build Questions

This post accumulates what I thought would be the common questions about the /posts/delegated-builds post/tool. For more background see the /posts/build-woes post. Couldn't you just have a separate build-only repository? Sure, but you'd still have to manage that repository which would probably require a non-trivial amount of code and wouldn't support building/testing topic branches. Furthermore unless you linked the build directories in some way, which this solution does, you'd end up chronically overbuilding.…

Keep reading

Build Woes

I thought I'd back up after the /posts/delegated-builds post and expand on the nature of the build engineering problem that I've been dealing with (at my day job) on a documentation related problem. we do roughly continuous deployment. All active development and editing happens in topic branches, and there's no really good reason to leave typos and what not on the site any longer than we need to. we publish and maintain multiple versions of the same resource in parallel, and often backport basic changes to maintenance branches.…

Keep reading

Delegated Builds

Introduction I cooked up something at work that I think is going to be awesome for building the project that I work on a day to day basis. Here's the basic problem, in a different post, I'll expand on these in more depth: we do continuous deployment. we maintain and publish multiple branches. our builds take a non-trivial amount of time (4-6 minutes depending on hardware,) and will continue to get longer.…

Keep reading

git raspberry

This is an awful pun, but I've recently written the following script to help with some of the work of back-porting patch sets to maintenance branches. Basically you pass it a bunch of commit identifiers and it cherry picks them all in order. #!/usr/bin/python import os import sys import subprocess for commit in sys.argv[1:]: with open(os.devnull, "w") as fnull: subprocess.call( ['git', 'cherry-pick', commit ], stdout=fnull, stderr=fnull ) What I'd been doing, previously is assembling commit hashes in an emacs buffer, and then copy-pasting git cherry-pick before each line and then pasting those lines into the shell and hoping nothing goes wrong.…

Keep reading

New Knitting Project: Ballstown

I've started a new project, much to my own surprise. After many years of looking at the merino/tencel blend "colrain" I ordered a cone of it, and have cast on a project: a plain tube using size 0s.. I think I may be crazy. The thing is, I got one of these neck tubes a month or two ago, and it's the most amazing thing ever. Looks good with most things, not weird, very comfortable, etc.…

Keep reading

Sphinx Caveats

This is a rough sketch of some things that I've learned about the Sphinx documentation generation system. I should probably spend some time to collect what I've learned in a more coherent and durable format, but this will have to do for now: If you describe a type in parameter documentation it will automatically link to the Python documentation for that type when using the Python Domain and if you have intersphinx connected.…

Keep reading

Stability is a Crutch

I don't think the tension between having good, robust, and bug-free software and having software with new features and capabilities is solvable in the macro case. What follows is a musing on this subject, related in my mind to the On Installing Linux post. I'm not exactly making the argument that we should all prefer to use unstable and untested software, but I think there is a way in which the stability [1] of the most prevalent Linux distributions is a crutch.…

Keep reading