Writing a package -- a thorough guide
2019-07-22, 13:30–17:00, PH 111N

In this workshop, we will go through all the necessary steps to create a Julia package. The goal of the workshop is that attendees should be well prepared for getting started with package writing in Julia.


In Julia a lot of important functionality is implemented in packages living outside the core language. There are many reasons for this, for example that user defined types and functions are first class citizens and treated the same way as built-in types and functions, and that Julia's multiple dispatch makes it possible to work together with, and extend, other packages and the core language.

There are packages available in Julia for almost everything, for example differential equations, machine learning, data science, debugging and web applications. They are all very different, some are tens of thousands of source lines, while others are single line packages. Basically, the common denominator is that a package is a reusable piece of code wrapped in a specific structure, that solve a specific problem.

For newcomers to Julia, or to programming in general, it might seem like a difficult task to author a Julia package. Therefore, in this workshop, we will go through all the necessary steps to create a Julia package. In particular we will learn how to:

  • set up the package structure;
  • add package dependencies;
  • write unit tests;
  • write documentation;
  • set up continuous integration (CI);
  • release a package.

The goal of the workshop is that attendees should be well prepared for getting started with package writing in Julia.