-
Notifications
You must be signed in to change notification settings - Fork 225
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enhance Renovate configuration (#314)
* Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update Dockerfile.tmpl * Update Dockerfile * Update variables.sh * Delete go.sum.tmpl * Update generate_gateway.sh * Update Dockerfile * Update renovate.json5 * Update renovate.json5 * Update renovate.json5 * Update Dockerfile * Update go.mod.tmpl * Update renovate.json5 * chore(deps): update dependency google.golang.org/grpc to v1.47.0 * Update Dockerfile.tmpl * Update renovate.json5 * Update variables.sh * Add readme for Renovate * readme fixes * Update .github/README.md Co-authored-by: Steve Ognibene <[email protected]> * Update .github/README.md Co-authored-by: Steve Ognibene <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Steve Ognibene <[email protected]>
- Loading branch information
1 parent
f8c9fff
commit ddcb1d2
Showing
8 changed files
with
167 additions
and
608 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Renovate Configuration | ||
|
||
## What is Renovate? | ||
|
||
[Renovate](https://www.mend.io/free-developer-tools/renovate/) is an open-source dependency manager. | ||
The `Renovate` Github app is configured to automatically open PRs in an attempt to update configured dependencies of different kinds. | ||
The configuration is managed in [renovate.json5](./renovate.json5). | ||
|
||
## How does Renovate work? | ||
|
||
`Renovate` is able to automatically identify dependencies of different kinds in different files and start opening PRs once a basic configuration file is found in the repo and the app is enabled. `Renovate` has a lot of different configuration options beyond the supported dependencies which are well documented [here](https://docs.renovatebot.com/). | ||
|
||
However, in cases such as this repo where the dependencies are managed in proprietary files, additional configuration is required. | ||
|
||
## How is Renovate used in this repo? | ||
|
||
In this repo, we have a variety of dependencies pinned to specific versions, primarly to create reproducible, testable builds.\ | ||
Most of these dependencies are installed in the built docker images and are referenced in [Dockerfile](../Dockerfile). However, their versions are set separately in [variables.sh](../variables.sh), which means most PRs opened by `Renovate` will attempt to update this file. | ||
Because it is a proprietary file, we leverage `Renovate`'s support of using Regular Expressions to find & replace dependencies versions. | ||
|
||
The different sources used to find dependencies include `npm`, `Go`, and `Github Releases`. | ||
|
||
### Dependencies PR grouping | ||
|
||
One of great features of `Renovate` is the ability to group dependency updates into mutual PRs according to different criteria to avoid spamming the repo with too many PRs (1 PR per dependency). | ||
|
||
In this repo, we have several groups configured according to specific dependencies and/or dependency types: | ||
|
||
* Major/Minor (main) gRPC updates - these dependencies' updates will be opened in one PR. Merging PRs for this dependency group will be followed by releasing new major version in this repo. | ||
|
||
* All other minor/patch dependency updates - Usually as long as the tests pass for this PR we should be able to merge & release a new patch version in this repo. | ||
|
||
* Go gRPC Gateway module - This dependency is singled out since we cannot update it yet due to a breaking change. Once we do update it, we can move this dependency to the same group as the other non gRPC dependencies. | ||
|
||
## How to keep maintaining Renovate in this repo? | ||
|
||
If and when adding a new dependency, we should pin its version in `variables.sh` (if applicable), configure it | ||
in `Renovate`'s configuration file and ensure it is grouped correctly. |
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
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
Oops, something went wrong.