-
Notifications
You must be signed in to change notification settings - Fork 21
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
Procedural Scheduling activity deletion #1610
Open
JoelCourtney
wants to merge
9
commits into
develop
Choose a base branch
from
feat/scheduler-activity-deletion
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
JoelCourtney
had a problem deploying
to
e2e-test
November 22, 2024 02:06 — with
GitHub Actions
Failure
JoelCourtney
had a problem deploying
to
e2e-test
November 22, 2024 18:10 — with
GitHub Actions
Failure
JoelCourtney
force-pushed
the
feat/scheduler-activity-deletion
branch
from
November 22, 2024 18:22
8265777
to
908f4b9
Compare
JoelCourtney
had a problem deploying
to
e2e-test
November 22, 2024 18:22 — with
GitHub Actions
Failure
JoelCourtney
force-pushed
the
feat/scheduler-activity-deletion
branch
from
November 22, 2024 19:53
908f4b9
to
5a03889
Compare
JoelCourtney
temporarily deployed
to
e2e-test
November 22, 2024 19:53 — with
GitHub Actions
Inactive
JoelCourtney
force-pushed
the
feat/scheduler-activity-deletion
branch
from
November 22, 2024 21:07
5a03889
to
62049ea
Compare
JoelCourtney
temporarily deployed
to
e2e-test
November 22, 2024 21:08 — with
GitHub Actions
Inactive
JoelCourtney
temporarily deployed
to
e2e-test
November 22, 2024 23:58 — with
GitHub Actions
Inactive
JoelCourtney
force-pushed
the
feat/scheduler-activity-deletion
branch
from
November 23, 2024 00:05
c9abefa
to
c2e20c2
Compare
JoelCourtney
temporarily deployed
to
e2e-test
November 23, 2024 00:05 — with
GitHub Actions
Inactive
JoelCourtney
requested review from
mattdailis and
Mythicaeda
and removed request for
dandelany and
srschaffJPL
December 3, 2024 21:44
JoelCourtney
force-pushed
the
feat/scheduler-activity-deletion
branch
from
December 11, 2024 00:35
c2e20c2
to
327fdec
Compare
JoelCourtney
temporarily deployed
to
e2e-test
December 11, 2024 00:35 — with
GitHub Actions
Inactive
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR does two main things:
EasyEditablePlanDriver
. This way all the adapter has to do is translate the plan representations.Unpredictability of re-anchoring
The timeline/scheduling procedural libraries try to keep track of an estimated start time for anchored activities, but it is not guaranteed to be right. In practice, I expect the estimates will usually be wrong due to the interop between eDSL and procedural; and even if an estimate is right, it can become wrong in the future. This can definitely be improved, but its a separate task and it will probably never be perfect.
This is usually fine because its an "unofficial" estimate. But if we have the activity chain
A <- B <- C
, and we deleteB
and try to reanchorC
to the plan, we need to turn the start estimate into an official start time. This way too fallible and unpredictable to do automatically on a large batch of activities.On the other hand, we could reanchor
A <- C
in a predictable and reliable way. Its still not necessarily accurate, because if the original state wasA <- B (end)<- C
thenC
will be shifted forward by the duration ofB
, becauseB
is assumed to be instantaneous. So its not perfect, but its at least reproducible and predictable.Verification
I've added unit tests for the changes to
InMemoryEditablePlan
, and e2e tests to make sure the changes are reflected in the database.Documentation
I've added doc comments, and I'll open a PR for the docs website soon.
Future work
It turns out that implementing activity modification is so easy that I went ahead and did it in this PR, hidden in the backend. You'll notice in
GraphQLMerlinDatabaseService
that it not has routines for uploading creations, deletions, and modifications. The modifications part is used to update anchored activities during a deletion. I think extending support for this to the user will be almost trivial, but does deserve a separate PR.