# Breaking Changes

Corgi follows semantic versioning and, in general, adheres to its guarantees. However, there are a few exceptions where a corgi version might introduce "breaking" changes, without incrementing the major version:

1. Corgi guarantees that the semantics of generated HTML never change, but it does not guarantee, that the generated HTML is always the same (as in equal bytes).\
   For example, corgi might improve its minification, leading to semantically equal HTML, but different outputs.\
   Beside the obvious guarantees, it is guaranteed that the order of attributes and the order of classes never changes across versions.
2. Corgi does not guarantee that generated code will be equal.\
   For example, corgi might change the way it generates mixins, without incrementing the major leading to a different generated function, but still the equal HTML.
3. Corgi does not guarantee that variables and imports generated by corgi (i.e. symbols starting with `__corgi_`) will still exists in code generated by future version.\
   The only exception is `__corgi_w`.
4. Corgi guarantees that error-free corgi code from a previous minor version will still compile using a compiler with a higher minor. However, corgi may refuse to compile code that makes use of precompiled libraries if they contain security vulnerabilities that would be fixed re-precompiling the library first.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mavolin.gitbook.io/corgi/learning-corgi/breaking-changes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
