27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
|
---
|
||
|
title: Don't use global dependencies
|
||
|
date: 2025-02-01
|
||
|
permalink: daily/2025/02/01/global-dependencies
|
||
|
tags:
|
||
|
- software-development
|
||
|
cta: ~
|
||
|
snippet: |
|
||
|
Don't use global system-wide versions of your dependencies, use the ones that are defined in your project.
|
||
|
---
|
||
|
|
||
|
I recently watched a YouTube video of someone working on their software.
|
||
|
|
||
|
Everything was working locally, but things were breaking in their CI pipeline.
|
||
|
|
||
|
The issue was their CI environment had different versions of the software than the one they were using locally.
|
||
|
|
||
|
To get the same results locally and in CI, you need your dependencies to be the same.
|
||
|
|
||
|
The same versions of languages, such as PHP and nodejs, and packages like PHPStan, PHPUnit, Jest or eslint.
|
||
|
|
||
|
Dependencies should be installed with a package manager that generates a lock file like composer.lock or package-lock.json, so use these versions instead of installing versions globally that may be different.
|
||
|
|
||
|
For PHP or nodejs, I'd suggest using Docker or Nix, [which has its own lock file][0], to make your environment as reproducible and consistent as possible.
|
||
|
|
||
|
[0]: {{site.url}}/daily/2025/01/20/reproducible
|