PkgTemplates
PkgTemplates creates new Julia packages in an easy, repeatable, and customizable way.
Documentation
If you're looking to create new packages, see the User Guide.
If you want to create new plugins, see the Developer Guide.
if you're trying to migrate from an older version of PkgTemplates, see Migrating To PkgTemplates 0.7+.
PkgTemplates.PkgTemplates — ModulePkgTemplates
PkgTemplates creates new Julia packages in an easy, repeatable, and customizable way.
Installation
Install with the Julia package manager Pkg, just like any other registered Julia package:
pkg> add PkgTemplates # Press ']' to enter the Pkg REPL mode.or
julia> using Pkg; Pkg.add("PkgTemplates")Usage
Interactive Generation
You can fully customize your package interactively with:
using PkgTemplates
Template(interactive=true)("MyPkg")This will prompt you to select options, displaying the default settings in parentheses.
Manual creation
Creating a Template is as simple as:
using PkgTemplates
tpl = Template()The no-keywords constructor assumes the existence of some preexisting Git configuration (show configuration using git config --list and set with git config --global):
user.name: Your real name, e.g. John Smith.user.email: Your email address, eg. john.smith@acme.corp.github.user: Your GitHub username: e.g. john-smith.
Once you have a Template, use it to generate a package:
tpl("MyPkg")However, it's probably desirable to customize the template to your liking with various options and plugins:
using PkgTemplates
tpl = Template(;
dir="~/code",
plugins=[
Git(; manifest=true, ssh=true),
GitHubActions(; x86=true),
Codecov(),
Documenter{GitHubActions}(),
],
)For a much more detailed overview, please see the User Guide documentation.
Contributing
Issues and pull requests are welcome! New contributors should make sure to read the ColPrac Contributor Guide. For some more PkgTemplates-specific tips, see the Developer Guide documentation.
Index
PkgTemplates.PkgTemplatesPkgTemplates.AppVeyorPkgTemplates.BadgePkgTemplates.BadgePluginPkgTemplates.BlueStyleBadgePkgTemplates.CirrusCIPkgTemplates.CitationPkgTemplates.CodeOwnersPkgTemplates.CodecovPkgTemplates.ColPracBadgePkgTemplates.CompatHelperPkgTemplates.CoverallsPkgTemplates.DependabotPkgTemplates.DevelopPkgTemplates.DocumenterPkgTemplates.DroneCIPkgTemplates.FilePluginPkgTemplates.FormatterPkgTemplates.GitPkgTemplates.GitHubActionsPkgTemplates.GitLabCIPkgTemplates.LicensePkgTemplates.LogoPkgTemplates.PkgBenchmarkPkgTemplates.PkgEvalBadgePkgTemplates.PluginPkgTemplates.ProjectFilePkgTemplates.ReadmePkgTemplates.RegisterActionPkgTemplates.SecretPkgTemplates.SrcDirPkgTemplates.TagBotPkgTemplates.TemplatePkgTemplates.TestsPkgTemplates.TravisCIPkgTemplates.badgesPkgTemplates.collect_versionsPkgTemplates.combined_viewPkgTemplates.compat_versionPkgTemplates.convert_inputPkgTemplates.customizablePkgTemplates.default_filePkgTemplates.destinationPkgTemplates.format_versionPkgTemplates.gen_filePkgTemplates.generatePkgTemplates.getpluginPkgTemplates.gitignorePkgTemplates.hookPkgTemplates.input_tipsPkgTemplates.interactivePkgTemplates.is_ciPkgTemplates.is_coveragePkgTemplates.needs_usernamePkgTemplates.pkg_namePkgTemplates.posthookPkgTemplates.prehookPkgTemplates.priorityPkgTemplates.promptPkgTemplates.render_filePkgTemplates.render_textPkgTemplates.sourcePkgTemplates.tagsPkgTemplates.user_viewPkgTemplates.validatePkgTemplates.viewPkgTemplates.@plugin