, 9 tweets, 2 min read Read on Twitter
Some researchers downloaded all of @pypi (!) and parsed the source of every package (!!!)

Some insights below 👇

(1/9)
Insight #1: PyPI is growing.

Compound Annual Growth Rate (CAGR) for new packages, active packages, new releases, and new authors are all in the double-digits:

• New packages: 43.28%
• Active packages: 47.31%
• New releases: 51.21%
• New authors: 39.30%

(2/9)
Insight #2: PyPI is becoming more dense.

"...the number of connections or imports per package is increasing", and "annual growth rate in the number of imports [exceeds] the growth rates of the number of packages or releases alone by 10%."

(3/9)
Insight #3: License classification on PyPI is a bit of a mess.

"For example, PyPI does not distinguish between any variations of the BSD License" 🤦‍♂️

We're working on finding a way to improve this, see github.com/pypa/warehouse… for more details.

(4/9)
Insight #4: Software is never done.

More packages are either "Alpha" or "Beta" than "Production/Stable":

• Alpha: 27.70%
• Beta 35.36%
• Production/Stable 24.93%

(5/9)
Insight #5: Everyone wants to live in the future.

Top 10 most imported modules, in-order, are:

• __future__
• os
• sys
• logging
• re
• datetime
• json
• numpy
• unittest
• time

(6/9)
Insight #6: Most packages don't change very much.

"In general, we find that most authors contribute a single package with a small number of releases, and... nearly two in every three packages went without a release during 2018."

(7/9)
Insight #7: That said, the averages of PyPI might surprise you.

On average:

• Each author has 2.15 packages;
• Each package has 6.93 releases;
• A package makes a new release every 65.38 days

(8/9)
PDF of the full paper is here: arxiv.org/pdf/1907.11073…

Thanks to Ethan Bommarito and Michael J Bommarito II for taking the time to do this analysis! 👏

(9/9)
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Dustin Ingram
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!