This is why it is important to stratify your API promises.
Git is a good example of this, with "plumbing" commands meant for scripts and software and "porcelain" commands meant for a more comfortable user experience. Code is rigid while humans are flexible.
Only freeze APIs that have been proven in the field to be stable and necessary in the field by thousands of people.
Well to be fair, most people don't look at the apt's output in their scripts, they just do "apt install -y --no-install-recommends all the wonderful packages they need" and move on with "&&".
If that was the case then I wouldn't see messages that X or Y commands behavior are going to change in the future. The master branch moral panic thing comes to mind for example.
Git is a good example of this, with "plumbing" commands meant for scripts and software and "porcelain" commands meant for a more comfortable user experience. Code is rigid while humans are flexible.
Only freeze APIs that have been proven in the field to be stable and necessary in the field by thousands of people.