Tools to setup Renovate in Nx or Angular monorepos, check the documentation to see all available features.
npm install --save-dev @nx-squeezer/renovate
nx g @nx-squeezer/renovate:setup
Shareable config preset for Renovate. Angular and Nx dependencies require post upgrade tasks, then Renovate must be configured as self-hosted, an easy way to do it would be with Github Action Renovate.
You can find an example configuration here and GitHub workflow here.
For Nx projects it is recommended to use the default preset for Nx monorepos.
This generator will:
- Configure Renovate to run self-hosted by creating a GitHub Workflow Action.
- Upgrade the CI workflow to run on Renovate branches.
- Add badge to
README.md
.
Options:
- Force overwriting of configuration with
--force
(defaultfalse
). - Use Nx Cloud
--useNxCloud
(defaulttrue
). - Use local presets
--local
(defaultfalse
). This option is not recommended, instead it is better to rely on pointing to the configuration in thenx-squeezer/squeezer
GitHub repo to always count with the latest version. Use local presets only if you want to customize them. - Provide the assignee for Renovate PRs with
--assignee=github-user
.
Presets:
Default Preset
This preset includes all presets included in this repo except for Nx, Angular workspaces, and tooling preset they have to be added manually:
"extends": ["github>@nx-squeezer/squeezer"]
Nx Monorepo
This preset groups all dependencies related to Nx and Angular, including upgrade schematics:
"extends": ["github>@nx-squeezer/squeezer:nxMonorepo"]
It is incompatible with preset
"github>@nx-squeezer/squeezer:angularWorkspace"
, choose one or another.
Angular Workspace
This preset groups all dependencies related to Angular, including upgrade schematics:
"extends": ["github>@nx-squeezer/squeezer:angularWorkspace"]
It is incompatible with preset
"github>@nx-squeezer/squeezer:nxMonorepo"
, choose one or another.
Group All Non Major
This preset groups all non-major npm dependencies, including bump
dependencies:
"extends": ["github>@nx-squeezer/squeezer:groupAllNonMajor"]
Tooling
This preset groups all dependencies related to linting and formatting:
"extends": ["github>@nx-squeezer/squeezer:tooling"]
Examples:
chore(deps): :arrow_up: update dependency
fix(deps): :lock: refresh package-lock.json
fix(deps): :arrow_down: roll back dependency
GitHub Workflow Actions
This preset groups all dependencies related to Github actions:
"extends": ["github>@nx-squeezer/squeezer:githubActions"]
Gitmoji Conventional Commits
This preset adds a ✨ gitmoji ✨ to the commit message:
"extends": ["github>@nx-squeezer/squeezer:gitmoji"]
NPM
This preset updates node
and npm
only to LTS versions.
"extends": ["github>@nx-squeezer/squeezer:npm"]
Maintenance
This preset configures maintenance of package-lock.json
file as a separate PR.
"extends": ["github>@nx-squeezer/squeezer:maintenance"]
Widen Range for Library Dependencies
This preset causes Renovate to not update libraries' package.json
, only the root package.json
will be updated for minor and patch versions. This has the purpose of keeping libraries with a wider compatibility range, within the last major version. This is the recommended configuration for library authors.
"extends": ["github>@nx-squeezer/squeezer:widenRangeLibraryDeps"]