DiamondLightSource / DiamondLightSource/blueapi

Remove/re-use/replace "deviceFunctions" source kind

Open
#1,264 4 comments 0 reactions 0 assignees View on GitHub
c: context
Dominant language
Python
Stars
13
Forks
13
Avg merge
2d 11h
Merged PRs (30d)
25

Description

`SourceKind`, used to distinguish between imported modules currently has three variants.

* `planFunctions` for modules containing plans
* `dodal` for modules containing device functions that are called via dodal's make_all_devices and assume DeviceInitializationControllers
* `deviceFunctions` the previous version for devices that is now an alias for `dodal`.

Now that there is about to be an alternative to dodal modules in the device manager, should we

1. Create a new source type, `deviceManager` to support the new loading
2. Convert all beamlines at once and use `dodal` for the new loading
3. Stop `deviceFunctions` delegating to `dodal` and use it for the new loading

I'm currently erring towards `1`. I think `2` would cause chaos and we should have at least a brief transition period where both are supported. `3` could work but are any beamlines currently relying on it being an alias to `dodal`?

If we don't re-use `deviceFunctions`, could we remove it entirely?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.