Skip to content

External dependencies

It’s encouraged to use external dependencies that are well maintained. It exempts d-centralize from the burden of maintaining custom code.

Of course, it doesn’t prevent us from contributing.

Locking

It’s important to prevent bit-rot in projects. If a project successfully builds today, chances are that it’ll not work anymore in a couple of months if dependencies are not tied to a certain version that is known to work.

Dependencies defined in a project have the requirement to be locked on the major and minor version. The micro version may be loosely defined.

Bumping policy

Bumping is the process of tracking new upstream versions.

When a d-centralize project is under development, it’s good to track the latest upstream versions.

When a d-centralize project is in production, any new version of an external library may introduce incompatibilities. Therefore, there’s no good reason to bump, except for gaining bug fixes that currently affect us.

Auto-update with Renovate

For any dependencies that do not need to be locked, it’s recommended to keep them up-to-date with Renovate.

Renovate is a bot that runs as a global CI job and scans projects for outdated dependencies. If your project is eligible, you will see an initial Merge Request to activate Renovate for your project by generating a renovate.json file. After merging it, Renovate will scan your dependencies daily and create a Merge Request for any outdated ones. Learn more about Renovate in the official documentation.

You can either accept or skip the update by following the instructions in generated Merge Requests.

Additionally, configure Renovate for your specific repository by modifying the renovate.json file. Configuration options are provided here.