Skip to content

Version History

A summary of breaking API changes across major versions, for users upgrading from older installations.

For a complete changelog including non-breaking changes and bug fixes, see CHANGELOG.md in the library repository.


3.9.1 (current)

No breaking changes from 3.9.0.


3.8.2

Breaking: get_data_structure path format changed.

Dotted string paths are no longer accepted. Use tuple paths instead:

# Old (pre-3.8.2) — broken
asset.get_data_structure("group.field")

# Current (3.8.2+)
asset.get_data_structure(("group", "field"))

3.8.0

Breaking: result handling redesigned.

CascadeError and isinstance result checks are gone. Use .success and .failed on the returned ChainResults:

# Old — broken
result = wrapper.read(id)
if isinstance(result, CascadeError):
    handle_error(result)

# Current
results = cascade.operations.read(id).submit_requests(Asset)
for failure in results.failed:
    handle_failure(failure)

Breaking: submit_requests() now takes an explicit result type.

# Old — broken
results = cascade.submit_requests()

# Current
results = cascade.submit_requests(Asset)

3.7.0

Breaking: get_page_configuration is now read-only.

Attempting to write to a PageConfiguration object raises ReadOnlyPageConfigError. Use asset-level operations for modifications instead.


3.4.0

utils.script_notes module added. script_log.note() is now the recommended way to write log lines from scripts:

from cascade_cms.utils import script_log
script_log.note("Processing started")

3.3.0

Breaking: response caching removed.

The caching layer and its configuration keys no longer exist. Remove any cache-related configuration from your scripts.


3.2.0

failures module added (ChainResults, ChainFailure, FailureCategory, classify_failure). This is the version that introduced .success and .failed as the result API.


3.0.0

Breaking: class renamed.

CascadeWrapperBase is still importable as an alias but the canonical name is now Cascade:

# Old — still works via alias
from cascade_cms.wrapper import CascadeWrapperBase

# Current — preferred
from cascade_cms.wrapper import Cascade

Update __init__.py exports narrowed: cmstypes symbols must be imported from cascade_cms.cmstypes directly, not from the package root.