Repository navigation
django-logic 4.0.0
-
Model snapshots no longer copy partial background job records. GV's billing
and shipping-completion tests create required jobs explicitly. Keep model-field
capture because these current consumer tests use it. -
Remove the unused scenario process-name override and state-trace assertion.
Engine tests observe state writes with a test-only helper. Consumer test drives
no longer replaceState.set_state. Unknown failure injections still fail tests. -
A refused action no longer runs every condition and permission again to build
an unused action list. GV uses the existing reason and user message instead.
RemoveTransitionNotAllowed.available_actions; callers can explicitly list actions. -
Remove unused transition command-class overrides,
BackgroundEffect.no_retry_on,
andProcessManager.unbind_model_process. Internal tests keep their own binding
cleanup helper. GV uses stock command classes in the current engine. -
Remove unused public request keys,
operation_options,RequestConflict,
required_nextandcancel_pending. GV uses none
of these APIs. Its required work uses ordinary background jobs and saved
business completion states. Background effects keep their unique request keys. -
Repeated submissions are refused while a job is unfinished. After completion,
a valid action creates a new job. Concurrent duplicates roll back preparation
writes and callbacks from the refused submission. -
Remove
request_fingerprintandrequired_nextfrom the model state only.
The database columns and defaults remain so 3.3 producers can keep inserting
during deployment. Before upgrading, verify no unfinished job has a nonempty
required_next. Cleanup no longer retains public request keys indefinitely. -
Effect jobs are inserted with parent completion. Reopening a completed parent
by hand now fails on the effect's unique key instead of reusing old effects. -
Require new public options, columns and settings to ship with a consumer that
uses them. The release notes name that consumer and the problem solved. -
Complete jobs whose model or transition no longer exists while retaining the
job lock. A failed completion write now reaches normal failure reporting. -
Check failed-job business state once, under its row lock. A superseded job
now logs a warning. If that lock times out after a manual state change,
completion is recorded as failed instead of superseded; the manual state
remains unchanged and failure callbacks do not run. -
Share hook validation traversal and let Python reject positional transition
arguments before work starts. Validation messages for declared hooks stay unchanged. -
Create client turn records when a worker first selects that client's jobs,
avoiding the duplicate write during submission. Existing queued jobs remain eligible. -
Stop the worker if another handler consumed a job process's exit status.
An unknown result can no longer count as a successful job process. -
Remove obsolete broker design notes, Docker test wrappers and duplicate
contributor instructions. Keep the current worker, release and credential rules.
The tag workflow remains the publishing path and retains its existing checks. -
Remove the ten migrations replaced by the initial squash. Keep its
replaces
history and the next migration's dependency so upgraded and rolled-back
applications resolve the same schema. Databases on 0.17.x or earlier must
first runmigrateusing Django Logic 3.2 before taking this release. -
Remove custom messages for the classes and app entry retired in 1.0/1.1.
Installdjango_logicalone; removed names now use Python's normal import errors.