Juliacon 2024

Best practices for package development using BestieTemplate.jl
07-12, 10:30–11:00 (Europe/Amsterdam), While Loop (4.2)

BestieTemplate.jl is a template for creating packages following opinionated package development practices. It can be used via Julia or as a Copier template. The main advantages of a Copier template are that it allows applying a template to an existing repository and reapplying a template in order to get the updates since that last template application. The template serves as a snapshot of what are the current package development best practices, and will be updated when more tools are avaiable.


BestieTemplate.jl is a template for the engine Copier (https://copier.readthedocs.io/en/stable/). It contains opinionated software development best practices that we adopt in some of our packages. These include traditional Julia package requirements, such as a src, test and docs folder structure, README and LICENSE files, GitHub workflows for testing, documentation, CompatHelper and TagBot. However, it also includes other best practices, such as linting and formatting specification files, pre-commit hooks, and CITATION.cff files.

BestieTemplate.jl can be applied and reapplied to existing packages, as supported by Copier. This means that the best practices can be updated in the template and propagated to packages using it. This solves issues with outdated practices and also allows older packages to improve their package very quickly.

BestieTemplate.jl is also a Julia package. As a package, it wraps some functionalities of Copier to allow users to use the template without having to install Copier directly.

See also:

Research Software Engineer.
Co-creator of JuliaSmoothOptimizers.
YouTuber.
https://abelsiqueira.com

This speaker also appears in: