Hi, I also find setting VERSION_CODENAME useful.
For the stable vs. testing/sid situation I would suggest that VERSION_CODENAME is only set in stable. For example "VERSION" and "VERSION_ID" are now only set on my jessie boxes, but not on my stretch boxes. We could do the same with "VERSION_CODENAME". (Personally, setting it to "stretch/sid" on testing and sid would also be perfectly fine for me). Why not lsb_release? I also stumble across Debian boxes that don't have lsb_release installed. Sure, every software should be properly packaged with "lsb-release" as a dependency, but we don't have to make it more difficult than required for external, simple scripts. The second thing why I don't like lsb-release is documented here [1]. So yes, detecting the OS will continue to be a crazy mess for some time, but pushing information to /etc/os-release is IMO a good idea. This would be the fast, simple to parse default with fallbacks to distribution specific code. Regards, rck [1] http://0pointer.de/blog/projects/os-release.html