PkgTemplates.jl/latest/index.html
2017-10-01 23:28:55 +00:00

66 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · PkgTemplates.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><h1>PkgTemplates.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li class="current"><a class="toctext" href="index.html">Home</a><ul class="internal"><li><a class="toctext" href="#Installation-1">Installation</a></li><li><a class="toctext" href="#Usage-1">Usage</a></li><li><a class="toctext" href="#Comparison-to-[PkgDev](https://github.com/JuliaLang/PkgDev.jl)-1">Comparison to PkgDev</a></li></ul></li><li><a class="toctext" href="pages/package_generation.html">Package Generation</a></li><li><a class="toctext" href="pages/plugins.html">Plugins</a></li><li><a class="toctext" href="pages/plugin_development.html">Plugin Development</a></li><li><a class="toctext" href="pages/licenses.html">Licenses</a></li><li><a class="toctext" href="pages/index.html">Index</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="index.html">Home</a></li></ul><a class="edit-page" href="https://github.com/invenia/PkgTemplates.jl/blob/ca8788d2d41b2ddc27d26eba4cac02f9de09bf0d/docs/src/index.md#L{line}"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Home</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="PkgTemplates-1" href="#PkgTemplates-1">PkgTemplates</a></h1><p><a href="https://invenia.github.io/PkgTemplates.jl/stable"><img src="https://img.shields.io/badge/docs-stable-blue.svg" alt="Stable"/></a> <a href="https://invenia.github.io/PkgTemplates.jl/latest"><img src="https://img.shields.io/badge/docs-latest-blue.svg" alt="Latest"/></a> <a href="https://travis-ci.org/invenia/PkgTemplates.jl"><img src="https://travis-ci.org/invenia/PkgTemplates.jl.svg?branch=master" alt="Build Status"/></a> <a href="https://ci.appveyor.com/project/christopher-dG/PkgTemplates-jl"><img src="https://ci.appveyor.com/api/projects/status/r24xamruqlm88uti?svg=true" alt="Build Status"/></a> <a href="https://codecov.io/gh/invenia/PkgTemplates.jl"><img src="https://codecov.io/gh/invenia/PkgTemplates.jl/branch/master/graph/badge.svg" alt="CodeCov"/></a></p><p><strong>PkgTemplates is a Julia package for creating new Julia packages in an easy, repeatable, and customizable way.</strong></p><h2><a class="nav-anchor" id="Installation-1" href="#Installation-1">Installation</a></h2><p><code>PkgTemplates</code> is registered in <a href="https://github.com/JuliaLang/METADATA.jl"><code>METADATA.jl</code></a>, so run <code>Pkg.add(&quot;PkgTemplates&quot;)</code> for the latest release, or <code>Pkg.clone(&quot;PkgTemplates&quot;)</code> for the development version.</p><h2><a class="nav-anchor" id="Usage-1" href="#Usage-1">Usage</a></h2><p>The simplest template only requires your GitHub username.</p><pre><code class="language-julia-repl">julia&gt; using PkgTemplates
julia&gt; t = Template(; user=&quot;myusername&quot;)
PkgTemplates.Template(&quot;myusername&quot;, &quot;github.com&quot;, &quot;MIT&quot;, &quot;Travis CI User&quot;, &quot;2017&quot;, &quot;/home/travis/.julia/v0.6&quot;, v&quot;0.6.0&quot;, AbstractString[], Dict{Any,Any}(), Dict{DataType,PkgTemplates.Plugin}())
julia&gt; generate(&quot;MyPkg&quot;, t)
INFO: Initialized git repo at /tmp/tmpxDMyLD/MyPkg
INFO: Made initial empty commit
INFO: Set remote origin to https://github.com/myusername/MyPkg.jl
INFO: Staged 6 files/directories: src/, test/, REQUIRE, README.md, .gitignore, LICENSE
INFO: Committed files generated by PkgTemplates
INFO: Moving temporary package directory into /home/travis/.julia/v0.6/
INFO: Finished
julia&gt; cd(joinpath(t.dir, &quot;MyPkg&quot;)); run(`git ls-tree -r --name-only HEAD`)
.gitignore
LICENSE
README.md
REQUIRE
src/MyPkg.jl
test/runtests.jl</code></pre><p>However, we can also configure a number of keyword arguments to <a href="pages/package_generation.html#PkgTemplates.Template"><code>Template</code></a> and <a href="pages/package_generation.html#PkgTemplates.generate"><code>generate</code></a>:</p><pre><code class="language-julia-repl">julia&gt; using PkgTemplates
julia&gt; t = Template(;
user=&quot;myusername&quot;,
license=&quot;MIT&quot;,
authors=[&quot;Chris de Graaf&quot;, &quot;Invenia Technical Computing Corporation&quot;],
years=&quot;2016-2017&quot;,
dir=joinpath(homedir(), &quot;code&quot;),
julia_version=v&quot;0.5.2&quot;,
requirements=[&quot;PkgTemplates&quot;],
gitconfig=Dict(&quot;diff.renames&quot; =&gt; true),
plugins=[
TravisCI(),
CodeCov(; config_file=nothing),
Coveralls(),
AppVeyor(),
GitHubPages(),
],
)
PkgTemplates.Template(&quot;myusername&quot;, &quot;github.com&quot;, &quot;MIT&quot;, &quot;Chris de Graaf, Invenia Technical Computing Corporation&quot;, &quot;2016-2017&quot;, &quot;/home/travis/code&quot;, v&quot;0.5.2&quot;, AbstractString[&quot;PkgTemplates&quot;], Dict(&quot;diff.renames&quot;=&gt;true), Dict{DataType,PkgTemplates.Plugin}(Pair{DataType,PkgTemplates.Plugin}(PkgTemplates.TravisCI, PkgTemplates.TravisCI(AbstractString[], &quot;/home/travis/.julia/v0.6/PkgTemplates/defaults/travis.yml&quot;, &quot;.travis.yml&quot;, PkgTemplates.Badge[PkgTemplates.Badge(&quot;Build Status&quot;, &quot;https://travis-ci.org/{{USER}}/{{PKGNAME}}.jl.svg?branch=master&quot;, &quot;https://travis-ci.org/{{USER}}/{{PKGNAME}}.jl&quot;)], Dict{String,Any}())),Pair{DataType,PkgTemplates.Plugin}(PkgTemplates.AppVeyor, PkgTemplates.AppVeyor(AbstractString[], &quot;/home/travis/.julia/v0.6/PkgTemplates/defaults/appveyor.yml&quot;, &quot;.appveyor.yml&quot;, PkgTemplates.Badge[PkgTemplates.Badge(&quot;Build Status&quot;, &quot;https://ci.appveyor.com/api/projects/status/github/{{USER}}/{{PKGNAME}}.jl?svg=true&quot;, &quot;https://ci.appveyor.com/project/{{USER}}/{{PKGNAME}}-jl&quot;)], Dict{String,Any}())),Pair{DataType,PkgTemplates.Plugin}(PkgTemplates.GitHubPages, PkgTemplates.GitHubPages(AbstractString[&quot;/docs/build/&quot;, &quot;/docs/site/&quot;], AbstractString[])),Pair{DataType,PkgTemplates.Plugin}(PkgTemplates.CodeCov, PkgTemplates.CodeCov(AbstractString[&quot;*.jl.cov&quot;, &quot;*.jl.*.cov&quot;, &quot;*.jl.mem&quot;], #NULL, &quot;.codecov.yml&quot;, PkgTemplates.Badge[PkgTemplates.Badge(&quot;CodeCov&quot;, &quot;https://codecov.io/gh/{{USER}}/{{PKGNAME}}.jl/branch/master/graph/badge.svg&quot;, &quot;https://codecov.io/gh/{{USER}}/{{PKGNAME}}.jl&quot;)], Dict{String,Any}())),Pair{DataType,PkgTemplates.Plugin}(PkgTemplates.Coveralls, PkgTemplates.Coveralls(AbstractString[&quot;*.jl.cov&quot;, &quot;*.jl.*.cov&quot;, &quot;*.jl.mem&quot;], #NULL, &quot;.coveralls.yml&quot;, PkgTemplates.Badge[PkgTemplates.Badge(&quot;Coveralls&quot;, &quot;https://coveralls.io/repos/github/{{USER}}/{{PKGNAME}}.jl/badge.svg?branch=master&quot;, &quot;https://coveralls.io/github/{{USER}}/{{PKGNAME}}.jl?branch=master&quot;)], Dict{String,Any}()))))
julia&gt; generate(&quot;MyPkg&quot;, t; force=true, ssh=true)
INFO: Initialized git repo at /tmp/tmpA25O86/MyPkg
INFO: Applying git configuration
INFO: Made initial empty commit
INFO: Set remote origin to git@github.com:myusername/MyPkg.jl.git
INFO: Created empty gh-pages branch
INFO: Staged 9 files/directories: src/, test/, REQUIRE, README.md, .gitignore, LICENSE, .travis.yml, .appveyor.yml, docs/
INFO: Committed files generated by PkgTemplates
INFO: Moving temporary package directory into /home/travis/code/
INFO: Finished
WARNING: Remember to push all created branches to your remote: git push --all
julia&gt; cd(joinpath(t.dir, &quot;MyPkg&quot;)); run(`git ls-tree -r --name-only HEAD`)
.appveyor.yml
.gitignore
.travis.yml
LICENSE
README.md
REQUIRE
docs/make.jl
docs/src/index.md
src/MyPkg.jl
test/runtests.jl</code></pre><p>If that looks like a lot of work, you can also create templates interactively with <a href="pages/package_generation.html#PkgTemplates.interactive_template"><code>interactive_template</code></a>:</p><p><a href="https://asciinema.org/a/bqBwff05mI7Cl9bz7EqLPMKF8"><img src="https://asciinema.org/a/bqBwff05mI7Cl9bz7EqLPMKF8.png" alt="asciicast"/></a></p><p>And if that&#39;s <strong>still</strong> too much work for you, you can call <code>interactive_template</code> with <code>fast=true</code> to use default values for everything but username and plugin selection.</p><p>You can also use <a href="pages/package_generation.html#PkgTemplates.generate_interactive"><code>generate_interactive</code></a> to interactively generate a template and then immediately use it to create a new package.</p><h2><a class="nav-anchor" id="Comparison-to-[PkgDev](https://github.com/JuliaLang/PkgDev.jl)-1" href="#Comparison-to-[PkgDev](https://github.com/JuliaLang/PkgDev.jl)-1">Comparison to <a href="https://github.com/JuliaLang/PkgDev.jl">PkgDev</a></a></h2><p><code>PkgTemplates</code> is similar in functionality to <code>PkgDev</code>&#39;s <code>generate</code> function. However, <code>PkgTemplates</code> offers more customizability in templates and more extensibility via plugins. For the package registration and release management features that <code>PkgTemplates</code> lacks, you are encouraged to use <a href="https://github.com/apps/attobot">AttoBot</a> instead.</p><footer><hr/><a class="next" href="pages/package_generation.html"><span class="direction">Next</span><span class="title">Package Generation</span></a></footer></article></body></html>