Setting up a Julia Project or Package

PackageMaker is mostly a GUI for the Julia package PkgTemplates

What do you want to do?


Depending on your choice, a different set of options will be selected, which you however can override manually.

Saved configurations:








Options and Plugins

Most of the functionalities of PkgTemplates is provided by plugins.
The following section provides access to general options as well as to selected PkgTemplates plugins.

General Options.
Whether to create a package (vs. a project).

Project/Package name. Required input.

User name. Required for many plugins.

Authors. Will be an entry in Project.toml.

Directory to place project in. Required input.

URL to the code hosting service where the project will reside.

Minimum allowed Julia version for this package.

Short package* info.
This will be put into the package docstring. If you plan to publish it on GitHub, it is recommended to provide (the same) short info under "About", which will also be then shown on juliahub.com after the package registration.


Packages to add to your project. Suffix .jl is accepted, but not required. You can of course always add packages later on by using Pkg.
Creates a Project.toml.

The initial version of created package (ignored for projects).
Creates a module entrypoint.

Template file for src/MyPackage.jl
Sets up testing for packages.

Template file for runtests.jl
Whether to create a new project for tests (test/Project.toml).
Whether to add quality tests with Aqua.jl.

List of Aqua tests to skip. For full power of Aqua testing, edit your runtests.jl file manually.
Whether to add a linting test with JET.jl (works best on type-stable code).
Creates a README file that contains badges for other included plugins.

Template file for the README.

File destination, relative to the repository root.
Whether to put the badges on the same line as the package name.
Creates a license file.
Name of a license supported by PkgTemplates.

Path to a custom license file. This keyword takes priority over name.

File destination, relative to the repository root. For example, "LICENSE.md" might be desired.
Creates a Git repository and a .gitignore file.

Patterns to add to the .gitignore

Your real name, if you have not set user.name with Git.

Your email address, if you have not set user.email with Git.

The desired name of the repository's default branch.
Whether to use SSH for the remote. If left unset, HTTPS is used.
Whether to add a .jl suffix to the remote URL.
Whether to commit Manifest.toml.
Whether to sign commits with your GPG key. This option requires that the Git CLI is installed, and for you to have a GPG key associated with your committer identity.
Creates a Git repository and a .gitignore file.
Integrates your packages with CompatHelper via GitHub Actions.
Adds GitHub release support via TagBot.
Setups Dependabot to create PRs whenever GitHub actions can be updated. This is very similar to CompatHelper, which performs the same task for Julia package dependencies.
Sets up documentation generation via Documenter.jl. Only subset of options currently supported.
Sets up code coverage submission from CI to Codecov..
You can save the applicable parameter for later reuse. Excluded are: project name, description, and added dependencies.
Configuration name. You can select an existing config (if there are any) to update it, or create a new one.

You can use alphanumeric characters, space,
and following characters: .,+-_*


Destination of the workflow file, relative to .github/workflows