Hey Maintainers! #1
Replies: 6 comments 25 replies
-
In the spirit of transparency and openness, I'm also going to link to some of the convos that have taken place on other repos: A ton of conversation took place here: Some of the other conversations:
No response (yet):
|
Beta Was this translation helpful? Give feedback.
-
I would like to include naming conventions standardization as part of the governance. When I started with JSONLogic, I found each library having a different notation, like LogicEngine.apply, JSONLogic.apply, JSONLogic.Run etc. |
Beta Was this translation helpful? Give feedback.
-
I think we do need a more informal place to chat. Things like "I'm at work right now and can't properly respond" doesn't really belong in a GH discussion, but it could still be good information to convey. |
Beta Was this translation helpful? Give feedback.
-
PHP FIG is an excellent resource on how to organize specifications and the supporting community: https://www.php-fig.org/. I would be happy to reach out to the group to see if a Q&A could be done if there were well defined questions. Community driven efforts are a highly complex endeavor, but worthwhile. The impact of FIG extends beyond PHP, for example. |
Beta Was this translation helpful? Give feedback.
-
Hello there, I maintain https://github.com/Viicos/jsonlogic (a Python implementation). I don't know if I'll have much spare time, but I can provide some help from time to time. I see that there is already some discussion going on to sort out specific details of the implementation (e.g. https://github.com/orgs/json-logic/discussions/10). I think that before doing so, there is some value in:
Regarding the second point, I'm going to introduce briefly some design decisions I made in my implementation. Whenever possible, I've tried to keep things extensible/abstract:
In other words: whenever possible, I've tried to make things as generic as possible. So what could be done (but of course this is only a suggestion) is to first have a specification describing the general JSON Logic syntax: how operators can be created, how to use them in a JSON Logic expression, etc. We can also define a variable reference parsing/resolving abstract interface, like in the Python example I gave. A second specification, based on the first one, would be more specific and can/should make opinionated choices when it comes to:
Additional note: I my implementation, I kind of already have a distinction between the two previous paragraphs. Given a raw JSON Logic expression, I first parse it into a expr = JSONLogicExpression.from_json(
{
"*": [
{"var": "some_var"},
2
]
}
)
print(expr)
>>> JSONLogicExpression(
>>> expression={'*': [
>>> JSONLogicExpression(expression={'var': ['some_var']}),
>>> 2,
>>> ]
>>> }
>>> ) The parsing doesn't do much, but notice that it makes sure single operand operators (like Footnotes
|
Beta Was this translation helpful? Give feedback.
-
For the specification of CertLogic I didn't use a specific, pre-existing format. One advice: it's probably better to first specify the basics and 1 or 2 operators completely to bits (including defining a good test suite), than it is to try and specify everything including all operators all at once. |
Beta Was this translation helpful? Give feedback.
-
Hey folks; this type of community management is a bit new to me, so I'm open to feedback.
I've opened a project here to try and track our current goals, which are to help set community guidelines & licensing, and also try to decide on communication approach -
https://github.com/orgs/json-logic/projects/2
This should hopefully not take very long.
While I generally prefer to communicate over Slack / Discord, where possible I'd like to try to keep these discussions as open and transparent as possible, so I figured GitHub might be an effective forum.
However, these decisions should be driven by the community.
Beta Was this translation helpful? Give feedback.
All reactions