-
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
feat: early deploy at network generation #445
base: transition-to-runkit
Are you sure you want to change the base?
Conversation
309e84c
to
396f3b5
Compare
396f3b5
to
d7d69a0
Compare
d7d69a0
to
b25b027
Compare
6907422
to
1c41f2b
Compare
bc98f43
to
a5e3faf
Compare
03d9cfe
to
d999c66
Compare
necessary for sharing data with the public api that takes no arguments
propagate it from engine to system network generator
d999c66
to
5d3caa1
Compare
it actually tests for instantiation, not for deployment
the test was "succeding" because can_merge? was returning false, and not because both execution agents were non nil, as the test intended
In order to it be possible, I had to change merge_solver.merge_identical_tasks call to merge_solver.merge_compositions at Engine#finalize_deployed_tasks. With merged previously because all had non nil execution agents, but now when this rule changes with early_deploy and the merge solver would attempt to merge tasks contexts because their agents are non nil. It particulary breaks when for some reason the current task context cannot be deployed by its transaction proxy counter part as in "ensures that the old task gets garbage collected when child of another still useful task test"
when early deploying, a non deployed task can't be merged with a deployed one, because the basic assumption is that all tasks should have a deployment'
verifying it earlier led throwing deploying errors where there were primary instantiation errors
when early deploying the assumption changes to "every task should have an execution agent" so merging one that does with one that doesn't would be wrong. Note that when not early_deploying the merge criteria is exactly the opposite, two task contexts should be merged when just one of them has an execution agent
because all validate_* paramenters are passed to generate so far
f3236cc
to
d726d8e
Compare
move network generation exception to helpers
now it gives global context information
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.
Just this small suggestion, I am fine with the rest of the PR
lib/syskit/exceptions.rb
Outdated
agent = tasks.first.execution_agent | ||
deployment_m = agent.deployed_orogen_model_by_name(orocos_name) |
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.
You need to extract this information in the constructor. There is no guarantee that the plan will be the way it was once pretty_print is called
Co-authored-by: jhonasiv <[email protected]>
Co-authored-by: jhonasiv <[email protected]>
The task->agent relation is registered in the plan graph and it changes between exception raise and the moment it is printed
On top of:
Depends on:
Opening this PR for getting a CI run with test failures and an early request for comments