Package Development
Resources for package development:
- Tim Holy: Advanced Scientific Computing
- Chris Rackauckas How to develop a Julia package
- Antonello Lobianco Concise tutorial
PkgTemplates
Setting up project folder structure and CI.
https://github.com/JuliaCI/PkgTemplates.jl
using PkgTemplates
Template(interactive=true)("MyPkg")
I like to customize:
- user: just to be sure
- dir: choose "."
- plugins:
- Documenter: use GitHubActions
- Git: use ssh
From https://github.com/timholy/AdvancedScientificComputing/blob/main/lectures/ci_docs/CIandDocs.ipynb
using PkgTemplates
tpl = Template(plugins=[GitHubActions(), Codecov(), Documenter{GitHubActions}()])
Documenter
Document the package using Documenter.
https://github.com/JuliaDocs/Documenter.jl
DocumenterTools
Setting up DOCUMENTER_KEY for use with GitHub Actions
julia> using DocumenterTools
julia> DocumenterTools.genkeys(user = "myuser", repo="myPkg.jl")
Follow the instructions.
Revise
Developing packages is terrible without Revise.
https://github.com/timholy/Revise.jl
SnoopCompile
Tool to improve precompilation.
https://github.com/timholy/SnoopCompile.jl
ArgParse
Parse commandline arguments