sqlite-vec/site/versioning.md

20 lines
1.1 KiB
Markdown
Raw Normal View History

2024-07-22 21:24:44 -07:00
# Semantic Versioning for `sqlite-vec`
2024-07-31 12:55:03 -07:00
`sqlite-vec` is pre-v1, so according to the rules of
[Semantic Versioning](https://semver.org/), so "minor" release like "0.2.0" or
"0.3.0" may contain breaking changes.
2024-07-22 21:24:44 -07:00
Only SQL functions, table functions, and virtual tables that are defined in the default `sqlite3_vec_init` entrypoint are considered as the `sqlite-vec` API for semantic versioning. This means that other entrypoints and other SQL functions should be considered unstable, untested, and possibly dangerous.
2024-07-22 21:24:44 -07:00
For the SQL API, a "breaking change" would include:
2024-07-22 21:24:44 -07:00
- Removing a function or module
- Changing the number or types of arguments for an SQL function
- Changing the require arguments of position of a table functions
- Changing the `CREATE VIRTUAL TABLE` constructor of a virtual table in a backwards-incompatible way
- Removing columns from a virtual table or table function
2024-07-22 21:24:44 -07:00
The official "bindings" to `sqlite-vec`, including the Python/Node.js/Ruby/Go/Rust are subject to change and are not covered by semantic versioning.
Though I have no plans to change or break them, and would include notes in changelogs if that ever needs to happen.