DiamondLightSource / DiamondLightSource/blueapi
Remove/re-use/replace "deviceFunctions" source kind
- 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
Assessment
This issue has not been assessed yet.