Need help with PkgTemplates.jl?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

invenia
344 Stars 65 Forks MIT License 507 Commits 49 Opened issues

Description

Create new Julia packages, the easy way

Services available

!
?

Need anything else?

Contributors list

PkgTemplates

Stable Dev CI Codecov Code Style: Blue ColPrac: Contributor Guide on Collaborative Practices for Community Packages

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

jl
julia> using Pkg; Pkg.add("PkgTemplates")

Usage

Interactive Generation

You can fully customize your package interactively with:

using PkgTemplates
Template(interactive=true)("MyPkg")

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 (set with

git config --global
):
  • user.name
    : Your real name, e.g. John Smith.
  • user.email
    : Your email address, eg. [email protected]
  • 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:

tpl = Template(;
    dir="~/code",
    plugins=[
        Git(; manifest=true, ssh=true),
        Codecov(),
        TravisCI(; x86=true),
        Documenter{TravisCI}(),
    ],
)

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.