JuliaCon 2023

PackageAnalyzer.jl: analyzing the open source ecosystem & more!
2023-07-26 , 26-100

We have developed PackageAnalyzer.jl in order to analyze the whole open source Julia ecosystem, but it can also be used to analyze private registries and dependency graphs too. In this talk we will give an update on the growth of the Julia ecosystem and how well best-practices such as CI, tests, and documentation have kept up with this growth, as well as show you how to use PackageAnalyzer to easily analyze your own dependency graph.


PackageAnalyzer.jl lets you statically inspect the content of a package and collect information about the use of documentation, testing suite, continuous integration, as well as the licenses used, the number of lines of code, the number of contributors. Additionally, using JuliaSyntax.jl, PackageAnalyzer can introspect the source code and count the number of struct definitions, exports, method definitions, and more. PackageAnalyzer also supports analyzing an entire Manifest.toml or even a whole registry, and takes care to look at exactly the code specified in a manifest rather than the latest version of the code in its source repository. This can be used to check that e.g. all dependencies in an application have an open-source license, or have tests, and is new to PackageAnalyzer v1.0.

We will show how to use PackageAnalyzer in an example application, and the kinds of analyses which can be performed. We will also show statistics about the whole open-source ecosystem, as an update to the JuliaCon 2021 talk called Code, docs, and tests: what's in the General registry?. We'll talk about the current state of the ecosystem as well as how it has grown and changed since 2021.

Research Software Developer at UCL during the day, binary builder during the night.

This speaker also appears in:

I am an algorithm engineer at Beacon Biosignals Inc, working on developing machine learning models for detecting various encephalopathies from EEG recordings. Previously, I completed my PhD in quantum information theory, where I worked on repeated interaction systems and continuity bounds for entropies, among other things.