TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Software versions are broken

2 pointsby mtschoppover 9 years ago

1 comment

nostrademonsover 9 years ago
It&#x27;s actually quite interesting to compare best practices of people who have &gt; ~5 years of experience vs. those who have less than that.<p>The latter say &quot;Use package managers. Use SemVer. Automatically upgrade to the latest version when it comes out. Check in your package.json, but don&#x27;t check in your node_modules.&quot;<p>The former say &quot;Check any dependencies on third-party software into source control, and always build from source. If you use a different build system from the original package, write the appropriate files &amp; tools to build it with your own build system. Use new versions only after they&#x27;ve been proven safe with your software. Budget significant time and manpower each time you need to upgrade the version of your dependencies.&quot;<p>The other interesting thing is that this distinction has been in force for at least 15 years. It&#x27;s not something related to just the Node.js ecosystem, nor to tooling that was recently developed. I can recall being that junior developer in 2000-2002 saying &quot;Let&#x27;s just write a few shell scripts to run RPM and PEAR install, and everyone can run them to bring their local installations up to date&quot;, and being overruled with &quot;No, we&#x27;re checking this code into the repository with all the appropriate license files and build rules.&quot; I think it&#x27;s really because version breakage is something that will hit you and cause a monetarily-significant loss about once every 5 years, and so until you&#x27;ve been burned by it or worked with someone who has, you&#x27;ll always gravitate to the more convenient package-manager approach.