# ANN: skeleton.jl, a script for creating packages quickly

**URL:** <https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417>\
**Category:** Community\
**Tags:** announcement\
**Created:** [September 24, 2018, 7:43am UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417 "2018-09-24T07:43:05Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 24, 2018, 7:43am UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/1 "2018-09-24T07:43:05Z")

</div>

To simplify creation of Julia packages, I wrote

> **[GitHub - tpapp/skeleton.jl: Julia script for creating new packages quickly.](https://github.com/tpapp/skeleton.jl)**
>
> Julia script for creating new packages quickly. Contribute to tpapp/skeleton.jl development by creating an account on GitHub.

which is a simple script that replaces placeholders in a directory of template files and copies them into a destination directory.

It is nowhere near as fancy as PkgDev.jl, lacking the fine granularity & customizations, and also the registry management functionality. But it is dead simple, less than 100 LOC, and you can easily tailor it to your own purposes, and create new templates just by editing a bunch of files in a directory. The default template embodies practices from eg [Literate.jl](https://github.com/fredrikekre/Literate.jl), using projects for documentation generation and coverage.

Issues and PRs are welcome, but my intention is to cover 90%+ of the use cases, not make a very complicated and general tool.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [September 24, 2018, 4:17pm UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/2 "2018-09-24T16:17:56Z")

</div>

Nice, I like this approach!

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [September 24, 2018, 5:30pm UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/3 "2018-09-24T17:30:55Z")

</div>

License.md probably don’t have to contain `Copyright (c) 2018: Tamas K. Papp.`?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 24, 2018, 6:42pm UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/4 "2018-09-24T18:42:24Z")

</div>

Good catch, fixed.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [September 24, 2018, 8:24pm UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/5 "2018-09-24T20:24:26Z")

</div>

> [@Tamas\_Papp](#):
>
> Good catch, fixed.

You almost got the copyright for all future Julia code there. Bummer someone found it.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 25, 2018, 5:52am UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/6 "2018-09-25T05:52:50Z")

</div>

Yep, the best laid schemes… 😉

There are more fixes to come, so perhaps I should package this after all.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [October 7, 2018, 8:58am UTC](https://discourse.julialang.org/t/ann-skeleton-jl-a-script-for-creating-packages-quickly/15417/7 "2018-10-07T08:58:30Z")

</div>

I would like to thank everyone who reported bugs and made PRs. Since the initial announcement, a couple of minor things were fixed, including documentation generation, using `Pkg.METADATA_compatible_uuid`, various corner cases with paths, etc. So I tagged a release, and I am committing to maintaining this project (at least until a much better approach becomes available).
