This is one of the articles from the Software Release Engineering series that I have been working on. Suggestions on topics to cover are very welcomed.
I came across Abseil (an open-source collection of C++ libraries from Google) lately and noticed that they suggests users (mostly developers) to adopt a special “live at head” approach. I’m going to use this post to describe this approach and discuss what it means for release management.
What is “live at head”
According to the description on the philosophy page, it’s a “different approach to software engineering”. One that can minimize “version mismatch issues”, and enable even most common libraries to “refactor regularly and safely”.
The 2 promises they make to users adopting this approach:
- If your code behaves according to our compatibility guidelines, it shouldn’t break in the face of our changes.
- If we need to refactor an API that you depend on, we will provide a tool that should be able to perform the refactoring for well-behaved code.