Versioning & Backwards Compatibility Policy

Last Major Update: May 25, 2023

As our ecosystem matures, we are aware that many of you are relying on the SDV synthesizers for your projects. To support your endeavors, we aim to maintain a high standard for SDV software releases.

Many Python libraries follow different approaches to managing software releases. We feel that it is important to communicate our standards with you upfront, so that you can make the best decisions for your project. While we may tweak or amend these in the future, we will do so with the goal of creating a more reliable and stable software for you.

This versioning and backwards compatibility policy applies to the SDV library and SDV Enterprise features.

Versioning

Each SDV software release has a version in the form of <MAJOR>.<MINOR>.<PATCH>, for example, 1.1.0. You can find a version history GitHub releases page.

We aim to follow the general SemVer guidelines with a few exceptions, which we'll explain in this page.

  • MAJOR releases include significant changes to the API, functionality or other parts of the workflow. These releases may not be backwards compatible so you may need to update your scripts when upgrading. We do not expect to make major releases often. (We have only made 1 so far.)

  • MINOR releases include new features and potentially some deprecations. Minor releases will be backwards compatible for supported SDV features (see next section). We expect to make frequent minor releases to provide you with improved usage.

  • PATCH releases are small updates that do not impact the API. They typically include internal code changes, logical updates and bug fixes. We expect to make patch releases ad-hoc for small but important updates.

Supported Features

Everything described in this docs website is a supported feature. We maintain a high standard for these features:

  • Backwards Compatibility: The feature will not crash on the next SDV release

  • Documentation: The functionality and detailed API will be available in this documentation site

  • Support: If you ask a question on our public Slack or GitHub communities, a member of the SDV team will help you to debug the issue. To solve your problem, we may make fixes and ask you to upgrade to a newer version of the SDV.

Python Parameter Names. When using the SDV library, we encourage you to provide named keywords when providing your parameters, just as shown in the docs.

For example, supply the keywords modality and dataset_name when downloading a demo dataset.

from sdv.datasets.demo import download_demo

data, metadata = download_demo(
    modality='multi_table',
    dataset_name='fake_hotels'
)

Keywords can be inputted in any order. If you do not provide the keywords, we cannot guarantee the functions will work.

Please note that the SDV source code may contain additional public features that are not described in our documentation. These features are unsupported. While you are welcome to experiment with such features, we will not be able to provide you with the same software standard.

Backwards Compatibility

Backwards compatibility means that if your SDV script runs on today's SDV version, it will continue to run without crashing on the next release. The duration of backwards compatibility depends on the type of feature, as shown below.

Type of ChangeBackwards Compatibility

Modifying the API for a supported feature, i.e. one that is listed in these docs

Yes, until next major release

Modifying the API for an unsupported feature, i.e. one that is available in the codebase but is not listed in these docs

None. (We'll make our best effort to support larger changes for a few months.)

Internal, logical changes to any feature that does not affect the API, for eg. bug fixes, internal workflows and Python maintenance updates.

None

Note: While we aim to provide this standard for all features, know that exceptional situations may arise. For example, a typo may force us to make an update without enforcing compatibility for the misspelled version.

Communication

When we deprecate a feature, you will receive FutureWarning with more details about the changes and a recommendation for updating your script. The software will continue to produce the warning (without crashing) according to the compatibility standard.

When we deprecate a supported feature, we'll cover it in the corresponding release notes.

Questions

If you have any questions about SDV versioning and backwards compatibility, please reach out to us on Slack or Github.

Last updated

Copyright (c) 2023, DataCebo, Inc.