The Bazel team generally avoids making backwards-incompatible changes. However, these changes are sometimes necessary to fix bugs, make improvements (such as improving performance or usability) to the system, or to lock down APIs that are known to be brittle.
Major changes are announced in advance on the bazel-discuss mailing list. Both undocumented features (attributes, rules, "Make" variables, and flags) and documented features that are marked experimental are subject to change at any time without prior notice.
Report any bugs or regressions you find on GitHub. The repository maintainers make an effort to triage reported issues within 2 business days.