Originally started by @willem in PLR Dev Roadmap 2025 - Q1 & Q2 - #9 by willem. I am specifically responding to posts PLR Dev Roadmap 2025 - Q1 & Q2 - #11 by willem and PLR Dev Roadmap 2025 - Q1 & Q2 - #12 by CamilloMoschner
hardcoding plate information is not great as it a) requires contributors to be python programmers with access to a repository, superuser permissions, and time on their hands etc, and b) requires others to update their code in order to use new (other people’s) plates - which makes it harder on you to have a stable release for a while.
If such definitions would be in a database, or separate file, you can start thinking about crowdsourcing such info, or ask vendors if they can supply it in a certain format, independently of any ongoing coding work.
I think I can kind of see what you’re getting at: making the PLR-RL more useful to non-PLR usecases. I think it’s an interesting idea for improving the state of lab automation software. Like separating the PLR-RL from PLR. At one point I was writing a prototype for a system like that: https://github.com/rickwierenga/lwdb
this project is kind of dead (for now) because the added complexity and wanting to do everything is difficult to design from scratch without a clear use case. We (used to) often make changes to the PLR resource ontology, necessitated by specific use cases (which really show what’s needed). Standardization follows implementation. Naming conventions, physical attributes to model, resource relations, etc. When working with non PLR systems, it becomes a headache. The main reason the resource system is in Python/PLR is it’s super easy to iterate on the ontology, write code (for existing contributors), use the definitions, etc.
When we feel like we have converged on a good PLR resource model, we could think about moving the information (plate sizes etc.) to a separate system (other than the plr repo).
I agree with your point about versioning: the PLR-RL should be versioned separately from the main library. (long term goal - right now we have to get things working and i don’t see this as an immediate need.)
Manufacturer’s can already contribute as it is today: fork the repo, make a PR. Very easy to do. They can also have their own python library that can instantiate PLR classes for their resources (PLR would be a dependency of that library).
We already support JSON serialization and deserialization. So you can already communicate about PLR resources without actually running Python.
Regarding documentation / finding resources: it’s a wip. we want to have a nice UI where you can filter resources across the entire PLR-RL. Currently it’s cataloged by manufacturer > resource type. We want to have a Craigslist-level UX.
Do you have a specific use case in mind? I think a lot can be done with the current Python apis, albeit a bit hacky.
superuser permissions
for contributing to PLR? or running python code? i am a little confused.
but it misses the point
i am not sure if I hit “the point” above, but as far as I understand you’re approximately describing a centralized labware database slightly separated from main PLR. I agree this is necessary and we’ll probably build it. But it also comes with a lot of added complexity that would slow down development.