-
Notifications
You must be signed in to change notification settings - Fork 25
sync metamodel format #751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Let's have a look at the 19 requirements layed out in useblocks/sphinx-needs#1451 ❓ = not quite sure what that requirement means. Needs clarification with @ubmarco
|
Hi @AlexanderLanin thanks for the efforts you and the team put in to make Sphinx-Needs even more useful. Thanks also for this write-up and comparison. Ultimately I think that Sphinx-Needs requires an internal way to describe the metamodel. I say that because we are building tools around Sphinx-Needs such as ubCode and its companion CLI app ubc that require a reliable schema interface to support the user in real-time as they type. Some of above requirements (e.g. Python+Rust, fast execution, split between local and graph validation, typing, default values) stem from this. I consider typing crucial for the solution as it allows typed import and exports. You would not put a bool or integer into a string in a (graph) database. It also allows to connect Sphinx-Needs with stricter Engineering-as-Code solutions. Other requirements (graph validation over multiple nodes, user provided messages and severity, composition mechanism) stem from requirements of other Sphinx-Needs users that build their solutions around RDF and SHACL. These descriptions are much more powerful but also less well known in the community, so my goal is to build something that is at least compatible and transpilable. My PR exists to showcase how a solution could look like that ticks all I think we should organize a meeting (next week?) to align on this. In the meantime I will look a bit into your metamodel format and write some docs for my solution. (Btw, I cannot edit your messages) |
speed: agreed, I did not mark 14-15 as done, since it's not quite clear what "fast" is. And we did not measure. And it's probably the same anyway for python. typing: agreed. So far we simply don't have a use case for it. But we want to add it anyway. Most notably an enum support, instead of writing regex. testing: we are rather fond and happy with our rst based tests. Combined with the (hopefully readable) yaml config, this allows non developers to specify exactly how they want the metamodel to behave. the others: let's see whether both solutions satisfy all requirements in detail meeting: invitation is out to @danwos, please make sure he forwards the meeting. Public announcement at #236 So far my feeling is that the solutions are similar, although completely different. Ours is more specific, focuses on our use cases and on readable config. So from a very high level it might be possible for us to use our yaml frontend with your backend. Which does sound quite reasonable in general for any user facing software architecture. From your point of view, ours might have something that you don't have so far (at least a simpler architecture 😉), and a real life use case. |
I looked through the referenced metamodel example. Looks understandable from a user perspective and I think its built for the use cases you have. Let me lay out some difficulties I see and that I want to discuss tomorrow:
|
|
Uh oh!
There was an error while loading. Please reload this page.
Our current metamodel.yml follows a different approach than the one by ubcode. We should align.
Participants:
While we were just talking about contributing, @ubmarco has already prepared a PR at useblocks/sphinx-needs#1441. Now we really urgently need to compare the approaches.
First draft (please edit this message!)
Open points:
The text was updated successfully, but these errors were encountered: