# ANN: COPIERTemplate.jl

**URL:** https://discourse.julialang.org/t/ann-copiertemplate-jl/104412
**Category:** Package Announcements
**Tags:** package, best-practices, template
**Created:** [September 29, 2023, 8:03pm UTC](https://discourse.julialang.org/t/ann-copiertemplate-jl/104412 "2023-09-29T20:03:06Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![abelsiqueira](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abelsiqueira/32/47269_2.png) [@abelsiqueira](https://discourse.julialang.org/u/abelsiqueira)
#### Post date: [September 29, 2023, 8:03pm UTC](https://discourse.julialang.org/t/ann-copiertemplate-jl/104412/1 "2023-09-29T20:03:06Z")

</div>

I am happy to announce [COPIERTemplate.jl](https://github.com/abelsiqueira/COPIERTemplate.jl)

- A template using [copier](https://copier.readthedocs.io/en/stable/), a python package that renders project templates; and
- A Julia package created with said template, wrapping the copier Python package.

I chose copier because it can be applied to existing projects and it can be reapplied if the template is updated. I plan to use it to help maintain JSO packages, and every once in a while there is a small update to a workflow or config file that I want to propagate - and I got tired of writing mass github calls.

To that end, I also included a workflow in the template that **automatically checks for update** once a week.

The template is opinionated, with the most apparent addition being a pre-commit configuration.  
There are many rough edges, so I hope other people find it useful so we can work on it together.

Please let me know if you like the idea or not. Constructive feedback and/or stars are appreciated.

* * *

To use the template, you can install the package and run

```julia
COPIERTemplate.generate("PkgName.jl")

```

or install the Python package and run

```bash
copier copy https://github.com/abelsiqueira/COPIERTemplate.jl PkgName.jl

```

Here is an asciinema: [COPIERTemplate.jl - asciinema](https://asciinema.org/a/611189)

The Julia version will automatically generate a UUID, but it comes with the cost of installing Python through PythonCall.
