Open Source Dependency Management and Supply Chains
A team playbook
In this document, we share insights discussed in the Chan-Zuckerberg Initiative’s Essential Open Source Software program community call held on November 20, 2025.
Introduction
Managing dependencies in open source projects is about people, processes, and culture and how your team brings these together for the benefit of your project. This playbook helps teams develop an approach to dependency management that works for them while balancing security, maintainability, and developer’s time.
Part 1: Building Your Team’s Dependency Culture
Part 2: Moving from Reactive to Proactive
2.1 The Dependency Maturity Model
| Stage | Characteristics | Next Steps |
|---|---|---|
| Firefighting | • Updates only when things break • No visibility into dependencies • Manual, ad-hoc processes |
Start tracking manually |
| Aware | • Know what dependencies exist • Some automated scanning • Reactive to security alerts |
Implement basic automation |
| Managed | • Regular update cycles • Automated testing • Clear ownership |
Develop update policies |
| Optimized | • Proactive monitoring • Dependency health metrics • Upstream engagement |
Contribute back upstream |
2.2 Essential Capabilities Checklist
Technical Prerequisites:
- Automated testing suite
- Lockfiles or similar reproducibility mechanisms
- Dependency scanning in CI/CD
- SBOM generation capability
Social Prerequisites:
- Clear communication channels with upstream projects
- Regular team discussions about dependencies
- Documented escalation paths
- Time allocated for dependency maintenance
Part 3: Practical Implementation Guide
3.1 Week 1-2: Discovery Phase
Inventory Your Dependencies:
- Generate a complete dependency tree
- Identify critical vs. nice-to-have dependencies
- Map dependencies to team members who understand them
- Note any dependencies without clear maintainers
Tools to Consider:
- GitHub/GitLab dependency graphs
- Ecosyste.ms for ecosystem-wide visibility
- Language-specific tools (npm audit, pip-audit, etc.)
3.2 Week 3-4: Establish Baselines
Set Up Monitoring:
# Example: Monthly Dependency Review Checklist
- [ ] Run security scans
- [ ] Review automated PR success rates
- [ ] Check upstream project health
- [ ] Update team wiki/documentation
- [ ] Discuss any concerning trends
Configure Automation Thoughtfully:
- Start with security-only updates
- Limit update frequency (e.g., max 5 PRs/week)
- Group related updates
- Ensure CI/CD catches breaking changes
3.3 Week 5-6: Build Processes
Create Communication Workflows:
Establish Review Practices:
- Add dependency impact to PR templates
- Require justification for new dependencies
- Consider “dependency cooldown” settings in dependency tools
Part 4: Advanced Strategies
4.1 Reducing Dependency Surface Area
The “Hedge Trimming” Approach:
- Audit current dependencies quarterly
- Identify barely-used dependencies
- Consider inlining simple utilities
- Make heavy dependencies optional
- Split packages to isolate dependency-heavy features
4.2 Upstream Engagement
Building Relationships:
- Join upstream project communities
- Contribute fixes back
- Share your use cases
- Participate in roadmap discussions
Early Warning Systems:
- Subscribe to upstream release notes
- Monitor deprecation notices
- Track upstream issue trackers
- Build relationships with maintainers
4.3 Container and Deployment Strategies
Reproducibility Approaches:
- Use containers for consistent environments
- Implement proper tagging strategies
- Document system-level dependencies
- Consider managed build systems (like Bioconductor’s)
Part 5: Keeping It Fresh
5.1 Regular Team Activities
Monthly Dependency Coffee Chat:
- 30-minute informal discussion
- Rotate who presents a “dependency of the month”
- Share recent challenges and solutions
- Celebrate successful updates
Quarterly Dependency Health Check:
- Review policy effectiveness
- Analyze automation metrics (e.g., % of automated PRs merged)
- Identify process improvements
- Plan for major updates
Resources and Further Reading
Essential Tools
- Ecosyste.ms - Dependency ecosystem monitoring
- Dependabot Insights - Automation effectiveness metrics
- CHAOSS Security Guide
- PyOpenSci Review Guide
Recommended Reading
- Dependency Cooldowns
- CISA SBOM Resources
- Language-specific security guides
Community Resources
- Join #dependency-management in your language community
- CHAOSS working groups
- OpenSSF Best Practices Badge program
Remember: Good dependency management is a journey, not a destination. Start small, iterate often, and celebrate progress along the way.
This resource was generated as part of CZI’s EOSS Community Calls during late 2024 with Organizational Mycology facilitating discussions, gathering input, and generating the final document. Participants in the calls, and open comment periods are given co-authorship in alphabetical order by last name.