In order to contribute to MindsDB:
- fork the MindsDB GitHub repository,
- install MindsDB locally,
- implement and test your changes,
- push your changes to the
develop
branch.
MindsDB Release Process
Themain
branch of the MindsDB repository contains the latest stable version of MindsDB and represents the GA (General Availability) release. Learn more about MindsDB release types here.
MindsDB follows the Gitflow branching model to manage development and releases as follows.
1
Development Phase
All code changes are first committed to the
develop
branch.2
Release Preparation
When a release is approaching, a short-lived
release
branch is created from the develop
branch.- This branch is used for final testing and validation.
- Pre-GA artifacts are built at this stage, including both the Python package and the Docker image, and shared for broader testing and feedback.
3
Release Finalization
After successful testing and validation:
- The
release
branch is merged into themain
branch, making it an official GA release. - The final GA versions of the Python package and Docker image are released, while the pre-GA version are removed.
Contributor Testing Requirements
As a contributor, you are responsible for writing the code according to the Python Coding Standards and thoroughly testing all features or fixes that you implement before they are merged into thedevelop
branch.
Feature Branch Testing
Before merging your changes, the following types of testing must be completed to validate your work in isolation:- Unit Tests Verify that individual components or functions behave as expected during development.
- Integration Tests Ensure that your new code works correctly with existing functionality and doesn’t introduce regressions.
Post-Release Testing
After a release that includes your features or fixes is published, contributors are encouraged to:- Test their changes in the released environment, and
- Report any issues or unexpected behavior that may arise.