All about dependencies
All about dependencies
@ixchelruiz — JFrog
@IXCHELRUIZ
Key
Dependencies
Dependencies
Software development
Development
Runtime
Test
Dependencies
Not all are the same.
ixchelruiz
True? Or False?
ixchelruiz
“Dependencies are collections containing high-
quality tested code that provides functionality
that required significant expertise to develop. ”
ixchelruiz
“Dependency managers like NPM have
made possible that trivial functionality can
be packaged and published”
Dependencies
Types of Dependencies
ixchelruiz
Types of Dependencies
Frameworks, libraries, packages, modules
and resources.
ixchelruiz
Resources
“Collection of files for example templates, media ( audio,
video or images ), plain text files or blobs that need to
be included by applications to execute correctly”
ixchelruiz
Module
“Set of methods and functions that provide a self
contained functionality. A module usually has
an interface that specifies both the functionality it
provides as well as the functionality it depends on”
ixchelruiz
Package
“A collection of modules that hold in general the same
functional purpose. Usually a directory that contains
a file that describe metadata about the package.”
ixchelruiz
Library
“A collection of related functionality defined in several
packages, is essentially a set of functions that you can
call, each call does some work and returns control to
the client or application that executed said function. ”
ixchelruiz
Frameworks
“A framework embodies some abstract design, with more
behaviour built in. In order to use it you need to insert
your behaviour into various places in the framework .The
framework's code then calls your code at these points.”
Frameworks — Platforms
Key points
• Functionality
• LOC ( size )
• Opinionated
• Integration between functional components
• Roadmap — Versioning
• Licensing
• Tests
ixchelruiz
Angular — React
Framework — Platform
Library
All about dependencies
Perspective
ixchelruiz
Key considerations
“Cadence of update, migrations costs or
cleanup efforts”
What can possibly go wrong?
ixchelruiz
The unknown programmer
“ Adding a dependency outsources the work of
developing that code—designing, writing, testing,
debugging, and maintaining—to someone else”
ixchelruiz
NPM
Notable breakages
March 2016: left-pad → unpublish
February 2018: npm version 5.7.0 on Linux → ownership of system
files
July 2018: eslint-scope version 3.7.2 → copied the npm
credentials.
November 2018: event-stream version 3.3.6 (flatmap-stream)
→ stole bitcoins
ixchelruiz
NPM
Notable breakages
April 2020: is-promise → outage in serverless applications
January 2022: colors pushed changes → text in an infinite loop.
https://jfrog.com/blog/malicious-npm-packages-are-after-your-discord-tokens-17-new-packages-disclosed/
https://jfrog.com/blog/malware-civil-war-malicious-npm-packages-targeting-malware-authors/
https://jfrog.com/blog/npm-package-hijacking-through-domain-takeover-how-bad-is-this-new-attack/
https://jfrog.com/blog/how-to-prevent-the-next-log4j-style-zero-day-vulnerability/
Dependencies
Tools
https://jfrog.com/xray/
https://owasp.org/www-project-dependency-track/
https://github.com/ossf/scorecard
ixchelruiz
Surviving Software
Dependencies
Russ Cox
acmqueue
ixchelruiz
Cost of adopting a bad dependency
ixchelruiz
Inspect the Dependency
ixchelruiz
Inspect Dependency: Design
“Is the documentation clear? Does the
API have a clear design? ”
ixchelruiz
Inspect Dependency: Code Quality
“Is the code well written? Does it look like the authors
have been careful, conscientious, and consistent?
Does it look like code you would want to debug?”
ixchelruiz
Inspect Dependency: Testing
“Does the code have tests? Can you run
them? Do they pass? Tests establish that
the code's basic functionality is correct”
ixchelruiz
Inspect Dependency: Bug
fi
xing
“Issue tracker. Are there many open bug reports?
How long have they been open? Are there many
fixed bugs? Have any bugs been fixed recently?”
ixchelruiz
Inspect Dependency: Maintenance
“How long has the code been actively
maintained? Is it actively maintained now?
How many people work on the package?”
ixchelruiz
Inspect Dependency: Usage
“Do many other packages depend on this
code? How often others write about
using the project?”
ixchelruiz
Inspect Dependency: Security
“Will you be processing untrusted inputs with the package?
If so, does it seem to be robust against malicious inputs?
Does it have a history of security problems listed in the
NVD (National Vulnerability Database)?”
ixchelruiz
Inspect Dependency: Licensing
“Is the code properly licensed? Does it
have a license at all? Is the license
acceptable for your project or company?”
ixchelruiz
Inspect Dependency: Dependencies
“Does the code have dependencies of its
own? List all the transitive
dependencies”
ixchelruiz
Universal Artifact Management
ONE tool at the centre
https://jfrog.com/start-free/
https://github.com/jfrog/frogbot
https://github.com/jfrog/frogbot
https://jfrog.com/blog/get-peace-of-mind-about-security-when-deploying-containers-from-docker-desktop/
IntelliJ Idea Plugin
All about dependencies
All about dependencies

More Related Content

PPTX
GDG Morgantown, WV: Write code you can depend on!
PPTX
Software Composition Analysis Deep Dive
PDF
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
PDF
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
PDF
NPM ecosystem threats
PPTX
Comparing dependency issues across software package distributions (FOSDEM 2020)
PPTX
Overview of Node JS
PPTX
Keynote - Open Source 101 - How JavaScript Became a Legitimate Open Source En...
GDG Morgantown, WV: Write code you can depend on!
Software Composition Analysis Deep Dive
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
NPM ecosystem threats
Comparing dependency issues across software package distributions (FOSDEM 2020)
Overview of Node JS
Keynote - Open Source 101 - How JavaScript Became a Legitimate Open Source En...

Similar to All about dependencies (20)

KEY
Dcjq node.js presentation
PDF
Dependency Issues in Open Source Software Package Registries
PPTX
AFTAB AHMED.pptx
PPTX
Say No to the Dependency Hell
PDF
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
PDF
Server Side Apocalypse, JS
KEY
Nodeconf npm 2011
PDF
Introduction to javascript technologies
PDF
Node JS - A brief overview on building real-time web applications
PPTX
Node js meetup
PDF
Cover Your Apps While Still Using npm
PPTX
Java script framework-roller-coaster
PPTX
Mastering node.js, part 1 - introduction
PDF
What Are The Best Alternatives Of Angular_.pdf
PDF
Top 11 Front-End Web Development Tools To Consider in 2020
PDF
Node js (runtime environment + js library) platform
PPTX
Introduction to NodeJS JSX is an extended Javascript based language used by R...
PDF
An introduction to Node.js
PDF
Fasten Industry Meeting with GitHub about Dependancy Management
PDF
Getting Started with Node.js
Dcjq node.js presentation
Dependency Issues in Open Source Software Package Registries
AFTAB AHMED.pptx
Say No to the Dependency Hell
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
Server Side Apocalypse, JS
Nodeconf npm 2011
Introduction to javascript technologies
Node JS - A brief overview on building real-time web applications
Node js meetup
Cover Your Apps While Still Using npm
Java script framework-roller-coaster
Mastering node.js, part 1 - introduction
What Are The Best Alternatives Of Angular_.pdf
Top 11 Front-End Web Development Tools To Consider in 2020
Node js (runtime environment + js library) platform
Introduction to NodeJS JSX is an extended Javascript based language used by R...
An introduction to Node.js
Fasten Industry Meeting with GitHub about Dependancy Management
Getting Started with Node.js
Ad

More from Ixchel Ruiz (10)

PDF
JUGUtrecht2023 - GithubActions
PDF
Failure is not an option
PDF
Failure is not an option
PDF
JCConf.tw 2022 - DevOps for Java developers
PDF
DevoxxMA_MavenPuzzlers.pdf
PDF
(De) Human Future
PDF
DevoxxMA : The WHY series: Metrics
PDF
Voxxed Banff 2018 : Containers & Integration tests
PDF
Testing libraries for fun & profit. Beware: Increased productivity ahead
PDF
DevoxxUK one size fits all
JUGUtrecht2023 - GithubActions
Failure is not an option
Failure is not an option
JCConf.tw 2022 - DevOps for Java developers
DevoxxMA_MavenPuzzlers.pdf
(De) Human Future
DevoxxMA : The WHY series: Metrics
Voxxed Banff 2018 : Containers & Integration tests
Testing libraries for fun & profit. Beware: Increased productivity ahead
DevoxxUK one size fits all
Ad

Recently uploaded (20)

PPTX
Cyber Hygine IN organizations in MSME or
PPT
12 Things That Make People Trust a Website Instantly
PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PPTX
Layers_of_the_Earth_Grade7.pptx class by
PPT
250152213-Excitation-SystemWERRT (1).ppt
PPTX
Introduction to cybersecurity and digital nettiquette
PPTX
Database Information System - Management Information System
PDF
Uptota Investor Deck - Where Africa Meets Blockchain
PDF
BIOCHEM CH2 OVERVIEW OF MICROBIOLOGY.pdf
PPTX
curriculumandpedagogyinearlychildhoodcurriculum-171021103104 - Copy.pptx
PDF
si manuel quezon at mga nagawa sa bansang pilipinas
PDF
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
PPTX
TITLE DEFENSE entitle the impact of social media on education
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PDF
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
PDF
simpleintnettestmetiaerl for the simple testint
PDF
Exploring The Internet Of Things(IOT).ppt
PDF
Exploring VPS Hosting Trends for SMBs in 2025
PPT
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
Cyber Hygine IN organizations in MSME or
12 Things That Make People Trust a Website Instantly
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
Layers_of_the_Earth_Grade7.pptx class by
250152213-Excitation-SystemWERRT (1).ppt
Introduction to cybersecurity and digital nettiquette
Database Information System - Management Information System
Uptota Investor Deck - Where Africa Meets Blockchain
BIOCHEM CH2 OVERVIEW OF MICROBIOLOGY.pdf
curriculumandpedagogyinearlychildhoodcurriculum-171021103104 - Copy.pptx
si manuel quezon at mga nagawa sa bansang pilipinas
mera desh ae watn.(a source of motivation and patriotism to the youth of the ...
TITLE DEFENSE entitle the impact of social media on education
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
simpleintnettestmetiaerl for the simple testint
Exploring The Internet Of Things(IOT).ppt
Exploring VPS Hosting Trends for SMBs in 2025
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt

All about dependencies