-
Notifications
You must be signed in to change notification settings - Fork 6
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
UI updates for Procedural Constraints #1478
Comments
@skovati, @Mythicaeda, @AaronPlave & I met a few times re: some outstanding questions about the UX for procedural constraints, and the impacts of those decisions on UI & DB implementation. The main issue is related to questions around cacheability, ordering, and idempotence of procedural constraints. We are walking a fine line here, because on one hand, it's possible that the constraints provided by users will not be idempotent and could have side effects that are order-dependent or timing-dependent (see NASA-AMMOS/aerie#1609 for a discussion of this problem with goals) - and we want to provide them with the "escape hatch" needed to deal with these scenarios. On the other hand, we very much want to encourage users to write idempotent, order-free constraints, and we want to keep the same visual language around "checked" vs "unchecked" constraints - ie. a constraint that has already been run on a given plan with given inputs should be considered "checked" even though technically it could be non-idempotent and return a different result if re-run. With these considerations in mind, we're proposing the following user experience:
I think this is an effective compromise between the two worlds, but feel free to discuss if there are other ideas for how to handle this more simply. The main things that need to be implemented for this on the UI side are:
|
Background
Now that Procedural Scheduling has been released, we are working on implementing Procedural Constraints. The workflow for using them will be very similar to scheduling goals: write a constraint in Java, compile a JAR, upload it via the Aerie UI, and add it to a plan using the same list UI that is used for eDSL constraints. Whereas procedural scheduling goals create activities on an editable plan, procedural constraints will return violations, ie. windows of time when the constraint is violated, and will not be able to edit the plan directly.
The UI updates to support procedural goals were defined in #1436 and implemented in #1444
Requirements
On the Constraints page (mostly copied from #1436):
On the constraints panel on a Plan:
Related Issues
NASA-AMMOS/aerie#1571, NASA-AMMOS/aerie#1572
The text was updated successfully, but these errors were encountered: