Skip to content

Add sync-params workflow #7048

@paulsohn

Description

@paulsohn

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

Automate autoware_universe (and possible other sources) -> autoware_launch param updating PRs.

Purpose

Currently every time autoware_universe param files has changed, the integration side (autoware_launch) needs to update the fields by manual PRs and drifts are not tracked. Similar to sync-files, automate the syncing process so that the autoware_universe param updates can be detected and auto-updated, while allowing certain fields in autoware_launch param files can be overridden over the base file.

Possible approaches

I already opened a PR and demonstrated that sync-params can track and update the param files to the latest, while allowing override with # {OVERRIDE} or # {OVERRIDE: reason} markers.

autowarefoundation/autoware_launch#1812
(auto-PR result in personal fork: paulsohn/autoware_launch#14 )

One approach for registering sync-params to other categories (localization, planning, control, ...) involves these step: say you want to register localization param files:

  1. Register upstream - downstream pairs into localization key of sync-params.yaml.
  2. Initially run python3 .github/scripts/sync_params.py localization once
  3. Some downstream values might be overwritten from the upstream. Using git diff view of your IDE and identify such overwritten lines, revert it, and add # {OVERRIDE} comment for each of them
  4. Run python3 .github/scripts/sync_params.py localization again, confirm that # {OVERRIDE} marked lines are no longer updated
  5. Check locally with python3 .github/scripts/sync_params.py localization --check

Definition of done

Note: making sync-params callable workflow is currently in a low priority as this is only used by autoware_launch, but I am open to the idea.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions