Skip to content

add skip_update as a replacement for returning nothing in ComputePipeline callbacks - #5754

Draft
ffreyer wants to merge 4 commits into
ff/breaking-0.25from
ff/disambiguate-nothing
Draft

add skip_update as a replacement for returning nothing in ComputePipeline callbacks#5754
ffreyer wants to merge 4 commits into
ff/breaking-0.25from
ff/disambiguate-nothing

Conversation

@ffreyer

@ffreyer ffreyer commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Description

This is mostly in response to #5717 (comment)

Currently edge callbacks can return nothing to mark all outputs or a specific output as "not updated". This can be problematic when an output is fixed to Union{Nothing, ...} as it makes it impossible to switch to nothing. This pr adds struct SkipUpdate end and an exported const skip_update = SkipUpdate() to fix this.

Note that this can't be deprecated cleanly because the old and new use of nothing can't be differentiate. So instead I added a Preferneces.jl based global to enable/disable warnings. These also give a bunch of information about the edge to hopefully make it easier to find the actual issue.

I also deprecated some special casing for edge initialization which allows return nothing to initialize all outputs rather than the usual on value per output. I don't see why nothing should be treated differently here.

Type of change

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • Added an entry in CHANGELOG.md (for new features and breaking changes)
  • Added or changed relevant sections in the documentation
  • Added unit tests for new algorithms, conversion methods, etc.
  • Added reference image tests for new plotting functions, recipes, visual options, etc.

@github-project-automation github-project-automation Bot moved this to Work in progress in PR review Aug 22, 2026
@ffreyer

ffreyer commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark 20

@MakieBot

Copy link
Copy Markdown
Collaborator

Benchmark Results

SHA: eb33c7e6de6ec169614ebe0c157b384993640007 · 20 samples

Warning

These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking.

GLMakie
CairoMakie
WGLMakie

@ffreyer ffreyer mentioned this pull request Aug 28, 2026
34 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Work in progress

Development

Successfully merging this pull request may close these issues.

2 participants