Open DominicOram opened 2 years ago
My two cents:
FYI, I was pointed to ADRs as a lightweight but easily browsable way to document decisions made on a project, although I guess GitHub issues are even more lightweight.
Anyway, here's how I store them for ophyd.v2: https://github.com/dls-controls/ophyd/tree/master/docs/explanations/decisions And here's how they look in the docs: https://dls-controls.github.io/ophyd/master/explanations/decisions.html
I went with RST to fit in with the sphinx project, but the original authors of ADRs used markdown which fits better with what you're doing.
Adding my two cents.
I am not a fan of the first two options, if you want to run Artemis separated from GDA. And considering we're mostly talking of hardcoded values, it just seems like you'd be adding an avoidable additional layer to the code. So far I've been saving the values I need for Nexus writing in a local file, but I recognise it might not be the best option. It works well enough and it's convenient to have everything in the same place, although as @DominicOram mentioned, that means having to make changes twice if there's something to be fixed. It's not a huge issue, just an annoying one. In theory, I do like the idea of pulling these config files from a central location for both GDA and Artemis. However, my understanding of GDA is probably too limited to have a clear idea of if and how this could work.
This is getting more important now that beamline parameters are being required for setting up snapshots, see https://github.com/DiamondLightSource/python-artemis/pull/121/
@callumforrester is there any discussion of how this will be handled in the new architecture in the future?
In general we want to be less reliant on files in the future where possible as they don't make for a great API, so I'm not a fan of 2 or 4. This is especially important in a multi-application land (e.g. Artemis + GDA). Agree with @noemifrisina on 1 and 2 so I would generally favour 3 and 5, particularly 3. Having a single source of truth should lead to a simple codebase and commissioning procedure.
Currently there are a number of "config" files that GDA and artemis both need:
/i03-config/etc
We should have a holistic discussion about how artemis should get this data, some potential options:
Acceptance Criteria