Cookiecutter template for Julia

I could be misisng something, but there still seems no cookiecutter template for Julia?

There must be a reason for this:

  • cookiecutter does not generate Project.toml and uuid for package, so it has to be used with Pkg.generate and two-step process is not fun
  • python tooling is alien to Julia
  • everyone just satisfied with Pkg.generate and copy-pastes other files by hand
  • people are waiting for PkgDev to pick version 1.0

Would be nice to hear is anyone wanted to use cookiecutter with Julia.

My specific case is making a repo with Travis-CI, look like things need to be done manually?

The only one I encountered was https://github.com/QuantStack/xtensor-julia-cookiecutter and it is for specific extension needs.

I don’t know what cookicutter is, but I wrote

https://github.com/tpapp/skeleton.jl

to set up package skeletons.

2 Likes

There is GitHub - invenia/PkgTemplates.jl: Create new Julia packages, the easy way which already supports Julia 1.0. It is pretty customisable with its plugin mechanism (although it is more specialized tool than cookiecutter).

4 Likes

I guess it is this: GitHub - cookiecutter/cookiecutter: A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.

When I read the title I was expecting to see something like this:
cutter
Made from julia logo.

4 Likes

Would be just three round cookies though :slight_smile:

1 Like

Awesome! Didn’t know about this package. :pray:

I created a cookiecutter template at GitHub - goerz/cookiecutter-juliapackage: Cookiecutter Template for Julia Projects.

I’ve always found PkgTemplates rather unsatisfying, as it takes me quite a while to tweak whatever it generates to my needs. This template is highly opinionated, obviously. I’d recommend people create their own personalized templates, but feel free to treat the above as a starting point.

4 Likes

Very nice. Will check it out for sure. I mainly use gitlab for my development but I’ll try to adapt your code to support it. :folded_hands:t2::blush:

Also note the existence of BestieTemplate.jl

1 Like

There’s a simple Julia solution, PkgSkeleton.jl. It’s very lightweight and transparent, I personally find it the most convenient option. Especially straightforward to create your own template!

1 Like