To make speckle more centralized and allow it to be the central point of information, workflows would be a great addition.
This also allows for the ‘tester/reviewer’ role to be more prominent in the process.
The outcome of the workflow would allow for status on elements, or metadata on commits/streams to change ?or handover to be done?.
Hey @Dickels112 , interesing idea; what would be the anatomy of a workflow? How do you see them work inside Speckle?
@teocomi So we can have multiple scenarios. to keep it simple, I will split it in 2 groups:
- changing metadata on a ‘version’/‘commit’ (easiest one)
- changing metadata on elements inside a ‘version’/‘commit’
Generally, the anatomy would always be the same, but the outcome might differ:
- Open a model version in the speckle viewer (online)
- Push the model version in a workflow
- Allow the reviewer to do the review and assign status
- Finish the workflow with ‘actions upon finish’
for scenario 1 the ‘action upon finish’ could mean: Changing the version metadata a major revision, changing the status to ‘shared’
for scenario 2, the ‘action upon finish’ could mean: Updating object status (changing ‘suitability’) and adding a new ‘version’ to the model(stream).
Gotcha, thanks for clarifying!
Sounds like an approval/revision system (GitHub PR flow comes to mind) and maybe with the possibility of tagging versions as “releases”.
Would be a great addition, ideally timed with support for issues
Yes, that would fit the best. Personally I would have the status then be in line with ISO19650 (by default ‘WIP’, and then the option to be ‘Shared’ and ‘Published’)
Per your previous discussions. This should be simply per-commit or more complicated per-object or both?
So eventually you would want to manage everything per object, as it allows for more flexibility. This, however, is a somewhat complex procedure as it requires baselining of objects, and possibly ‘locking’ during review. so to start, I would suggest to have it per commit first, and then see how the data model can evolve via objects. The main structure of Speckle a.t.m. is commit/version based anyway