-
Notifications
You must be signed in to change notification settings - Fork 190
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
Scenario Caching #1764
Scenario Caching #1764
Conversation
Hi Saul, just minor, have you tested the this in the replay scenarios (e.g., NGSIM)? I went though your changes/descriptions and the current Also regarding the following point: Thanks! |
@Gamenot I need to do a second review specifically on the build changes. |
Co-authored-by: Tucker Alban <[email protected]>
… into saul/scenario-caching
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 just have a few questions.
Hi @qianyi-sun, getting to your comments just now.
They all build correctly using the new system. I haven't run any examples with them, but there shouldn't be any change.
Yes that's a good idea. There may be some scenarios that require that change that aren't covered by the tests. If you have some time to check them that would be helpful, thanks! |
Should we put in a CI test to specifically test the scenario build caching feature? |
Good idea. I added a test in |
Closes #1595.
Summary of Changes
This PR makes a number of substantial changes to scenario builds:
clean
option) will only build the artifacts that depend on the changed DSL objectsmap.net.xml
or.xodr
file), changes to the map file itself will also trigger a rebuild of artifacts that depend on the mapbuild/
directory in each scenario's directorybuild.db
SQLite database file is now created during builds to keep track of dependenciesallow_offset_map
option has been removed. This must now be set by settingshift_to_origin=True
in aMapSpec
object in the scenario.py file if this option is needed.scenario.py
, and must callgen_scenario()
, rather than the individualgen_
functions. Those functions have been made private, and a deprecation warning will be raised if called from outside ofgen_scenario()
.Example
Here is the output from a terminal session that demonstrates what a typical iteration workflow looks like now: