-
Notifications
You must be signed in to change notification settings - Fork 15
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
Proposal for expansion of expression language #31
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to add one more element: every expression language component should be built in such a way that the expression language can create a resulting schema without executing the expression itself if a schema for the referenced value is available. This will help with later adding static workflow analysis.
Especially since you're already implementing it, and it is required regardless as an implementation detail, I'll leave that out of the proposal. The proposed changes in this proposal change how the users create and interact with workflows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes please!
I assume this is a breaking change, particularly:
The new functions and operators I suppose could add functionality in a non-breaking way. IIUC this would cause a workflow built before the change to be incompatible with the engine after the change, and new workflows will not be backward-compatible. This will require some housekeeping across the workflows we already have published, and a good set of release notes. Documentation should be a concurrent requirement with the new engine release, when ready. |
While the () removal is likely a breaking change, no one has used it as far as I am aware. It's an advanced use case that has not been taken advantage of. The main documentation change is that this deviates from JSONPATH. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the proposal. While domain specific programming languages (DSL) generally need to be targeted at non-software developers, many of the most used DSLs, like SQL, OS shells, and even Make, have all incorporated some combination of functionality from general purpose programming languages (GPL) like functions, binary comparison operators, and/or mathematical expressions, so it seems reasonable that these features would facilitate Arcaflow's expression language to meet the complexity of our end users' needs.
I'm taking the liberty to extend the voting date on this to April 7 since the process is still new for us and many of us were distracted by an internal event. |
Changes introduced with this PR
This PR proposes three main changes to the expression language.
See the files changed for the proposal itself.
Voting Period is
721 daysVoting ends Friday
March 24thApril 7th.By contributing to this repository, I agree to the contribution guidelines.