Should you write your own dependency scanner?
What building a dependency scanner in house involves: parsers, advisory data, matching, upkeep and triage, and when a small script is enough for you.
Deep dives, practical guides, and incident analyses from engineers who build Safeguard. No fluff, no vendor FUD — just what you need to ship secure software.
What building a dependency scanner in house involves: parsers, advisory data, matching, upkeep and triage, and when a small script is enough for you.
Avoid mavenLocal and flatDir in shared or release builds. Gradle bypasses its cache for local repositories and says they make reproducible builds harder.
Signing update archives is the baseline. Sparkle can also require a signed feed and release notes. Here is what that adds, what it needs and what to watch.
Pinning makes builds repeatable but can freeze in a vulnerable version or break when a version leaves the archive. Weigh both and pick a refresh routine.
The Composer FAQ says no: ignore vendor, commit composer.lock, and install on each build. Reasons, the exceptions, and how to audit what you deploy.
Commit poetry.lock for applications so every install matches. For libraries the advice differs. See why, and what changes when the file is out of sync.
Commit it for apps and other top-level projects. For a library it does not pin anything for your users. What SwiftPM docs say and what it means for scans.
Committing node_modules is rarely the right way to pin dependencies. Compare lockfile installs, Yarn zero-installs and vendoring, and the review each needs
AWS recommends packaging the SDK with your function. The reasons are control, compatibility and an honest dependency list. Trade offs and exceptions.
Weekly insights on software supply chain security, delivered to your inbox.
Your first fix PR is minutes away.
No sales call required, even your agent can complete the purchase over MCP.