This page describes the versioning rules Meilisearch SDKs follow after the release of Meilisearch engine v1.0.0. It explains how and when the Integrations Team should increase the MAJOR, MINOR, and PATCH of the versions.
Meilisearch SDKs releases follow the SemVer rules, including the following basic ones:
🔥 Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards compatible manner
- PATCH version when you make backwards compatible bug fixes
Changes that MAY lead the Meilisearch users (developers) to change their code are considered API incompatibility and will make us increase the MAJOR version of Meilisearch SDK.
In other terms, if the users MAY have to do more steps than just downloading the new Meilisearch package and running it, a new MAJOR is needed.
Examples of changes making the code break and then, involving increasing the MAJOR:
- Any change related to the public API the SDK exposes like:
- Renaming a method name or classes
- Removing or changing a positional argument of a method.
There is no strict policy yet regarding the minimum support of the language version, but some ground rules were defined. Example:
Ruby SDK has a required_ruby_version >= 2.6
, which prevents users from using the gem if they run their apps with a Ruby 2.5
.
It is often good to only allow newer versions of the runtimes because they are maintained ✨ and there are always new features is possible to adopt in the code and improve maintenance time.
So when that cut is made, some users can be left behind. Because of this, the adoption of a new runtime is carefully planned because the team's top priority is to keep as many users covered as much as possible.
Currently, all supported versions are set in the CI of each repository.
This is the list of minimum supported language version runtimes*:
Language/Framework | Version |
---|---|
.NET | netstandard2.0 |
Dart | >= 2.12.0 |
Go | >= 1.16 |
Java | >= 8.0 |
JavaScript/Node | >= 14 |
Swift | >= 5.2 |
PHP | >= 7.4 |
Python | >= 3.7 |
Ruby | >= 2.6 |
Rust | N/A |
When an SDK drops a minimum required version of the runtime, a new MAJOR version of the SDK should be released.
* This list may be outdated. Always check the current version in the integration's repository.
SDKs do not follow the Meilisearch engine version. It means that there is no correlation between SDK's version and Meilisearch; an SDK may be in version v8.0.0
while the Meilisearch engine is in v1.0.0
.
Suppose the version of an SDK is the same as the latest version of Meilisearch. It is just a happy coincidence.
You can find out which version of the Meilisearch engine an SDK is compatible with by going to the Compatibility with Meilisearch
section of every SDK README page. For example, the README page of the ruby SDK.
The Integrations Team is still working on making all of the SDKs stable, but there is no roadmap yet. First, some questions need to evolve, like having more feedback about the public API exposed to the users.
If you have a specific use case where you need the SDKs in v1, or if you want to share feedback about them, please share it through the issues.
raw
method like GetAllRawIndexesAsync
, allRaw
, rawSearch
, and similar. Please double-check the Meilisearch version you're running.
Since these methods' responses are made directly by the Meilisearch engine, the SDKs, may be unable to keep backward compatibility in a possible Meilisearch v2, for example. So, if possible, don't use them.