Skip to content

Update dependency ophyd_async to v0.21.3 - autoclosed - #72

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ophyd_async-0.x
Closed

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ophyd_async-0.x

Conversation

@renovate

@renovate renovate Bot commented Apr 10, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
ophyd_async ==0.19.3 → ==0.21.3 age confidence

Release Notes

bluesky/ophyd-async (ophyd_async)

v0.21.3

Compare Source

What's Changed

Full Changelog: bluesky/ophyd-async@v0.21.2...v0.21.3

What's Changed

Full Changelog: bluesky/ophyd-async@v0.21.2...v0.21.3

v0.21.2

Compare Source

What's Changed

New Contributors

Full Changelog: bluesky/ophyd-async@v0.21.1...v0.21.2

What's Changed

New Contributors

Full Changelog: bluesky/ophyd-async@v0.21.1...v0.21.2

v0.21.1

Compare Source

What's Changed

Full Changelog: bluesky/ophyd-async@v0.21.0...v0.21.1

What's Changed

Full Changelog: bluesky/ophyd-async@v0.21.0...v0.21.1

v0.21.0

Compare Source

Breaking Changes

StandardFlyer renamed to StandardFlyable, FlyerController to FlyableLogic

Flyers now follow the same logic-object pattern as StandardMovable and StandardDetector: a FlyableLogic holds the signals and the hardware logic, and StandardFlyable is the Device that drives it. The hooks are renamed with an on_ prefix, and state that used to be stashed on the logic between prepare/kickoff/complete is now threaded through an explicit context object that the Device owns.

# old
from ophyd_async.core import FlyerController, StandardFlyer

class MyTriggerLogic(FlyerController[MyInfo]):
    def __init__(self, block: MyBlock) -> None:
        self.block = block

    async def prepare(self, value: MyInfo):
        self._status = None
        ...  # arm the hardware

    async def kickoff(self) -> None:
        self._status = self._start()

    async def complete(self) -> None:
        await self._status

    async def stop(self):
        ...

flyer = StandardFlyer(MyTriggerLogic(block), name="flyer")

# new
from dataclasses import dataclass
from ophyd_async.core import FlyableLogic, StandardFlyable

@dataclass
class MyFlyCtx:
    status: AsyncStatus | None = None

@dataclass
class MyFlyableLogic(FlyableLogic[MyInfo, MyFlyCtx]):
    block: MyBlock

    async def on_prepare(self, value: MyInfo) -> MyFlyCtx:
        ...  # arm the hardware
        return MyFlyCtx()

    async def on_kickoff(self, ctx: MyFlyCtx) -> MyFlyCtx:
        ctx.status = self._start()
        return ctx

    async def on_complete(self, ctx: MyFlyCtx) -> None:
        await ctx.status

    async def stop(self):
        ...

flyer = MyFlyableLogic(block).with_device(name="flyer")

StandardFlyable enforces prepare() -> kickoff() -> complete() ordering and raises if called out of order, so logic classes no longer need to guard against it. Use FlyableLogic[MyInfo, None] for hardware that carries no state between stages. stage()/unstage() call on_stage()/on_unstage(), which both default to stop().

Devices that are always flyers (e.g. a motor controller) mix StandardFlyable into the Device class and provide a flyable_logic @cached_property instead of calling with_device(). The old StandardFlyer.trigger_logic property is now StandardFlyable.flyable_logic. See the new How to write a flying
Device
guide.

PandA trigger logics renamed to *FlyableLogic

They are now @dataclasses rather than hand-written __init__s, and are wrapped with with_device() rather than StandardFlyer.

# old
from ophyd_async.core import StandardFlyer
from ophyd_async.fastcs.panda import (
    ScanSpecSeqTableTriggerLogic,
    StaticPcompTriggerLogic,
    StaticSeqTableTriggerLogic,
)

flyer = StandardFlyer(StaticSeqTableTriggerLogic(panda.seq[1]), name="flyer")
flyer = StandardFlyer(StaticPcompTriggerLogic(panda.pcomp[1]), name="flyer")
flyer = StandardFlyer(
    ScanSpecSeqTableTriggerLogic(panda.seq[1], motor_pos_outs), name="flyer"
)

# new
from ophyd_async.fastcs.panda import (
    ScanSpecSeqTableFlyableLogic,
    StaticPcompFlyableLogic,
    StaticSeqTableFlyableLogic,
)

flyer = StaticSeqTableFlyableLogic(panda.seq[1]).with_device(name="flyer")
flyer = StaticPcompFlyableLogic(panda.pcomp[1]).with_device(name="flyer")
flyer = ScanSpecSeqTableFlyableLogic(panda.seq[1], motor_pos_outs).with_device(
    name="flyer"
)

StaticPcompTriggerLogic.complete() took an optional timeout argument; StaticPcompFlyableLogic.on_complete(ctx) does not (it was never passed by the flyer).

PMAC PmacTrajectoryTriggerLogic is now PmacTrajectoryFlyableLogic, and is not a Device

It used to be a Device that implemented Flyable itself, so it was passed straight to bps.prepare. It is now a plain logic object with no name argument, and needs wrapping in a flyer.

# old
from ophyd_async.epics.pmac import PmacTrajectoryTriggerLogic

trajectory = PmacTrajectoryTriggerLogic(pmac, name="trajectory")
yield from bps.prepare(trajectory, PmacScanInfo(...), wait=True)

# new
from ophyd_async.epics.pmac import PmacTrajectoryFlyableLogic

trajectory = PmacTrajectoryFlyableLogic(pmac).with_device(name="trajectory")
yield from bps.prepare(trajectory, PmacScanInfo(...), wait=True)

What's Changed

Full Changelog: bluesky/ophyd-async@v0.20.1...v0.21.0

What's Changed

Full Changelog: bluesky/ophyd-async@v0.20.1...v0.21.0

v0.20.1

Compare Source

What's Changed

Full Changelog: bluesky/ophyd-async@v0.20.0...v0.20.1

What's Changed

Full Changelog: bluesky/ophyd-async@v0.20.0...v0.20.1

v0.20.0

Compare Source

What's Changed

Full Changelog: bluesky/ophyd-async@v0.19.4...v0.20.0

v0.19.4

Compare Source

What's Changed

New Contributors

Full Changelog: bluesky/ophyd-async@v0.19.3...v0.19.4


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from cbde603 to 9ae00c7 Compare April 17, 2026 14:32
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.17a2 Update dependency ophyd_async to v0.17a3 Apr 17, 2026
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.17a3 Update dependency ophyd_async to v0.20.1 Jul 26, 2026
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from 9ae00c7 to 06dff94 Compare July 26, 2026 02:17
@codecov

codecov Bot commented Jul 26, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 48.18%. Comparing base (902fd74) to head (d0e3a93).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #72   +/-   ##
=======================================
  Coverage   48.18%   48.18%           
=======================================
  Files          27       27           
  Lines        1459     1459           
=======================================
  Hits          703      703           
  Misses        756      756           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from 06dff94 to e0eb112 Compare July 30, 2026 18:57
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.20.1 Update dependency ophyd_async to v0.21.0 Aug 3, 2026
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from e0eb112 to f68e88f Compare August 3, 2026 14:13
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.21.0 Update dependency ophyd_async to v0.21.1 Aug 4, 2026
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from f68e88f to fb489d5 Compare August 4, 2026 10:39
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from fb489d5 to 55c6527 Compare August 12, 2026 04:30
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch 2 times, most recently from ad8fa28 to bf1bdc1 Compare August 28, 2026 18:06
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.21.1 Update dependency ophyd_async to v0.21.2 Aug 28, 2026
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from bf1bdc1 to 9c53ac5 Compare September 7, 2026 20:45
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch 2 times, most recently from 1bccf51 to 30fc675 Compare September 21, 2026 04:41
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from 30fc675 to e2e4d7e Compare September 23, 2026 17:53
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.21.2 Update dependency ophyd_async to v0.21.3 Sep 23, 2026
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from e2e4d7e to 4806139 Compare October 13, 2026 18:37
@renovate
renovate Bot force-pushed the renovate/ophyd_async-0.x branch from 4806139 to d0e3a93 Compare October 20, 2026 13:09
@renovate renovate Bot changed the title Update dependency ophyd_async to v0.21.3 Update dependency ophyd_async to v0.21.3 - autoclosed Oct 21, 2026
@renovate renovate Bot closed this Oct 21, 2026
@renovate
renovate Bot deleted the renovate/ophyd_async-0.x branch October 21, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants