"value":"\n <p>I recently watched a YouTube video of someone working on their software.<\/p>\n\n<p>Everything was working locally, but things were breaking in their CI pipeline.<\/p>\n\n<p>The issue was their CI environment had different versions of the software than the one they were using locally.<\/p>\n\n<p>To get the same results locally and in CI, you need your dependencies to be the same.<\/p>\n\n<p>The same versions of languages, such as PHP and nodejs, and packages like PHPStan, PHPUnit, Jest or eslint.<\/p>\n\n<p>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.<\/p>\n\n<p>For PHP or nodejs, I'd suggest using Docker or Nix, <a href=\"/daily\/2025\/01\/20\/reproducible\">which has its own lock file<\/a>, to make your environment as reproducible and consistent as possible.<\/p>\n\n ",
"processed":"\n <p>I recently watched a YouTube video of someone working on their software.<\/p>\n\n<p>Everything was working locally, but things were breaking in their CI pipeline.<\/p>\n\n<p>The issue was their CI environment had different versions of the software than the one they were using locally.<\/p>\n\n<p>To get the same results locally and in CI, you need your dependencies to be the same.<\/p>\n\n<p>The same versions of languages, such as PHP and nodejs, and packages like PHPStan, PHPUnit, Jest or eslint.<\/p>\n\n<p>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.<\/p>\n\n<p>For PHP or nodejs, I'd suggest using Docker or Nix, <a href=\"/daily\/2025\/01\/20\/reproducible\">which has its own lock file<\/a>, to make your environment as reproducible and consistent as possible.<\/p>\n\n ",