Skip to content

Commit 4bbce28

Browse files
authored
Merge pull request #117 from tp2750/update-package-templates
Update package templates
2 parents 523b3f2 + 42feecb commit 4bbce28

2 files changed

Lines changed: 52 additions & 3 deletions

File tree

docs/comparisons/utility/package_templates.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,59 @@ There are several ways to create a Julia packages from templates.
1111
### PkgTemplates.jl
1212
{{badge PkgTemplates}}
1313

14+
> Create new Julia packages, the easy way
15+
1416
This package is the the most popular package generator.
1517

18+
It helps you set up the package structure, git repository, CI automations for building documentation, running tests, checking code coverage and more.
19+
20+
### PackageMaker.jl
21+
{{badge PackageMaker}}
22+
23+
> GUI for PkgTemplates.jl: "Creating new Julia packages, the easy way" - made a bit simpler.
24+
25+
From the package README:
26+
27+
This package allows you to create either a new package or a new project.
28+
It implements a subset of [PkgTemplates.jl](https://github.com/JuliaCI/PkgTemplates.jl) features (which subset hopefully covers >90% of its use cases).
29+
It also adds a couple of features of its own, e.g. ability to create Julia projects, or adding dependencies to projects or packages being created.
30+
Being a GUI app, it should be mostly self-explanatory, and external links for more information are provided from the GUI, too.
31+
1632
### PkgSkeleton.jl
1733
{{badge PkgSkeleton}}
1834

19-
PkgSkeleton is another package generator.
35+
> Generate Julia package skeletons using a simple template system
36+
37+
From the package README:
38+
39+
Julia package for creating new packages and updating existing ones, following common practices and workflow recommendations.
40+
41+
Design principles:
42+
43+
* Keep it simple: do nothing more than substitute strings into templates, with a few safeguards. This keeps the code simple: currently less than 300 LOC without docstrings. For me, this covers 99% of the use cases; the rest I edit manually.
44+
* Tread ligthly: don't modify uncommitted files (unless asked to, but really don't do that), or files with the same content (to preserve timestamps).
45+
* Assume that tooling for packages will keep changing, make it easy to update.
46+
47+
48+
### BestieTemplate.jl
49+
{{badge BestieTemplate}}
50+
51+
[BestieTemplate.jl](https://github.com/JuliaBesties/BestieTemplate.jl)
52+
53+
> Template for Julia Programming Language packages using the copier engine.
54+
55+
A newer package generator announced at JuliaCon2024.
56+
57+
The main features of this package/template are:
58+
59+
* It provides a curated (opinionated) list of tools and best practices for Julia package development
60+
* It can be applied and reapplied to existing packages, allowing the updates in the template to be imported into the package
61+
62+
It is a bit heavy as it is based on the [copier](https://copier.readthedocs.io/en/stable/) python package.
63+
64+
All of the options are listed [here](https://juliabesties.github.io/BestieTemplate.jl/stable/30-questions/#Table-format).
65+
66+
###
2067

2168
### Pkg.jl
2269
{{badge Pkg}}
@@ -39,4 +86,4 @@ Here are some examples:
3986
* [JuliaSmoothOptimizers/JSOTemplate.jl](https://github.com/JuliaSmoothOptimizers/JSOTemplate.jl)
4087

4188
## Star History
42-
{{star_history PkgTemplates PkgSkeleton Pkg}}
89+
{{star_history PkgTemplates PkgSkeleton Pkg BestieTemplate PackageMaker}}

docs/utils.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,10 @@ const PKGINFOS = [
151151
# PkgInfo(pkgname="LopShelve", username="machkouroke", docslink="https://lopuniverse.me/LopShelve.jl/"),
152152
PkgInfo(pkgname="PeriodicTable", username="JuliaPhysics", branch="master", docslink=nothing),
153153
PkgInfo(pkgname="PhysicalConstants", username="JuliaPhysics", branch="master"),
154-
PkgInfo(pkgname="Mendeleev", username="Eben60", branch="main", docslink="https://eben60.github.io/Mendeleev.jl/"),
154+
PkgInfo(pkgname="Mendeleev", username="Eben60", branch="main", docslink="https://eben60.github.io/Mendeleev.jl"),
155155
PkgInfo(pkgname="IsotopeTable", username="Gregstrq", branch="main", docslink=nothing),
156+
PkgInfo(pkgname="BestieTemplate", username="JuliaBesties", branch="main"),
157+
PkgInfo(pkgname="PackageMaker", username="Eben60", branch="main", docslink="https://eben60.github.io/PackageMaker.jl"),
156158
]
157159

158160
function get_pkginfo(pkgname)

0 commit comments

Comments
 (0)