Skip to content

workbench_algorithms.experimental

Subpackage for experimental WBA functions and Qubricks.

This directory is designed to allow for free-form experimentation and prototyping while keeping core development constrained to the WBA repo. The idea is that new interfaces, refactors or otherwise experimental Qubricks will be implemented here, to be imported as from workbench_algorithms.experimental import ... so that they can be used by other developers without them having to align disparate branches (that may have become stale).

NOTES FOR USERS: - The code contained within this directory should be considered unstable and subject to breaking changes. It should be used with appropriate caution. - Code implemented here may have less documentation than code implemented in the main package, and may also have more uncaught bugs. - The organization of the code in this subpackage is designed to mimic that of the main WBA package - so where in WBA you might have from workbench_algorithms.subroutines import x, here you would do from workbench_algorithms experimental.subroutines import x.

NOTES FOR DEVELOPERS: - Experimental code will have a relaxed, but not totally eliminated, set of requirements to be merged. Specifically: - Code is still expected to be tested, but requirements won't be as robust as for the main branch (i.e. if the main functionality works on expected inputs, this should be sufficient) - Documentation requirements will be relaxed - docstrings and usage notebooks are still recommended to make usage clearer, but robust documentation will not be enforced. - Breaking changes can be made to experimental interfaces without requiring a major version bump, but devs should be conscious of the effects on users of doing so - if you're implementing a number of alternative APIs to choose from, consider using versioning as MyAPIV1, MyAPIV2 to minimise churn - Code merged into experimental should be considered as transient and short-lived. It should either be merged into the main repo once the API is stabilized or deleted if the feature is not needed. - MRs are still subject to review, but we should err a little more on the side of rapid development rather than robust checks.