This document provides maintenance procedures to assist maintainers.
Salvo reuses large parts of Envoy's and Nighthawk's build system and codebase, so keeping Salvo up to date with Envoy's and Nighthawk's changes is an important maintenance task. When performing the update, follow this procedure:
- Create a fork of Salvo, or fetch upstream and merge changes into your fork if you already have one.
- Create a new branch from
main
, e.g.envoy-update
. - Sync (copy) .bazelrc from
Nighthawk's version to
update our build configurations. Be sure to retain our local modifications, all lines that are
unique to Salvo are marked with comment
# Salvo unique
. - Determine the Envoy commit Nighthawk is updated to from here.
- Sync (copy) ci/run_envoy_docker.sh from
Envoy's version at the
commit in step(4). Be sure to retain our local modifications, all lines that are unique to
Salvo are marked with comment
# Salvo unique
. - Sync (copy) ci/envoy_build_sha.sh from
Envoy's version at the
commit in step(4). Be sure to retain our local modifications, all lines that are unique to
Salvo are marked with comment
# Salvo unique
. - Run
ci/do_ci.sh test
. Sometimes the dependency update comes with changes that break our build. Include any changes required to Salvo to fix that in the same PR. - If the PR ends up modifying any python files, execute
ci/do_ci.sh fix_format
to reformat the files and avoid a CI failure. - Create a PR with a title like
Syncing configuration files from Nighthawk and Envoy (..date here..)
, describe all performed changes in the PR's description.