Feature and code readiness
The following are the readiness levels for Great Expectations features and code:
- Experimental: Try, but do not rely
- Beta: Ready for early adopters
- Production: Ready for general use
These readiness levels allow experimentation, without the need for unnecessary changes as features and APIs evolve. These readiness levels also help streamline development by providing contributors with a clear, incremental path for creating and improving the Great Expectations code base.
The following table details Great Expectations readiness levels. Great Expectations uses a cautious approach when determining if a feature or code change should be moved to the next readiness level. If you need a specific feature or code change advanced, open a GitHub issue.
Criteria |
Experimental Try, but do not rely |
Beta Ready for early adopters |
Production Ready for general use |
---|---|---|---|
API stability | Unstable ¹ | Mostly Stable | Stable |
Implementation completeness | Minimal | Partial | Complete |
Unit test coverage | Minimal | Partial | Complete |
Integration/Infrastructure test coverage | Minimal | Partial | Complete |
Documentation completeness | Minimal | Partial | Complete |
Bug risk | High | Moderate | Low |
¹ When an experimental class is initialized, the following warning message appears in the log:
Warning: great_expectations.some_module.SomeClass
is experimental. Methods, APIs, and core behavior
may change in the future.
Expectation contributions
Creating Custom Expectations
explains how you can create an Expectation with an
experimental status. The
print_diagnostic_checklist()
method
provides you with a list of requirements that you must
meet to move your Expectation from experimental to
beta, and then to production. The first five
requirements are required for experimental status, the
following three are required for beta status, and the
final two are required for production status.
Criteria |
Experimental Try, but do not rely |
Beta Ready for early adopters |
Production Ready for general use |
---|---|---|---|
Has a valid library_metadata object | ✔ | ✔ | ✔ |
Has a docstring, including a one-line short description | ✔ | ✔ | ✔ |
Has at least one positive and negative example case, and all test cases pass | ✔ | ✔ | ✔ |
Has core logic and passes tests on at least one Execution Engine | ✔ | ✔ | ✔ |
Passes all linting checks | ✔ | ✔ | ✔ |
Has basic input validation and type checking | ― | ✔ | ✔ |
Has both Statement Renderers: prescriptive and diagnostic | ― | ✔ | ✔ |
Has core logic that passes tests for all applicable Execution Engines and SQL dialects | ― | ✔ | ✔ |
Has a robust suite of tests, as determined by a code owner | ― | ― | ✔ |
Has passed a manual review by a code owner for code standards and style guides | ― | ― | ✔ |