# \[ANN\] PackageMaker - GUI for PkgTemplates

**URL:** <https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197>\
**Category:** Package Announcements\
**Tags:** package, announcement, pkgtemplates, gui\
**Created:** [December 26, 2024, 10:05pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197 "2024-12-26T22:05:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 26, 2024, 10:05pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/1 "2024-12-26T22:05:57Z")

</div>

**Edit:** Package registered under the changed name PackageMaker.jl

[StartYourPk.jl](https://github.com/Eben60/StartYourPk.jl) is intended to to help (especially beginner) developers with using projects and creating packages.

 ![Screenshot 2024-12-26 at 22.49.06](https://global.discourse-cdn.com/julialang/original/3X/4/5/45ef5324cff631fb4ed8441db84c6d74aa232204.png)

The package is not yet registered, but you are invited to test it - nothing bad should happen 😀.

If anybody comes with a better package name, it is not too late yet.

* * *

Now a general question (for the package documentation, not yet written): It is commonly recommended not to work in the “main” environment, but use separate projects (i.e. a folder with `Project.toml`. While I see the use of it, I prefer to start a (possibly throwaway) package right from the beginning instead of a project. This gives me the important advantage of having all functions, which I place into the project’s module, `Revise`-ed. I do not see any disadvantages of such a procedure as compared to a bare project. Are there any?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [December 26, 2024, 10:15pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/2 "2024-12-26T22:15:53Z")

</div>

Awesome idea!

> [@Eben60](#):
>
> If anybody comes with a better package name, it is not too late yet.

What about `PkgTemplatesGUI.jl`?

---

<div class="post-metadata">

**Author:** ![togo59](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/togo59/32/4138_2.png) [@togo59](https://discourse.julialang.org/u/togo59)\
**Post date:** [December 28, 2024, 6:13pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/3 "2024-12-28T18:13:06Z")

</div>

Just tried it out. Awesome! Love the way it exits Julia so the next CLI command becomes `code newPackage.` 😍

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 28, 2024, 8:12pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/4 "2024-12-28T20:12:28Z")

</div>

> [@gdalle](#):
>
> What about `PkgTemplatesGUI.jl`?

Your post got a lot of likes, which probably refer to the suggested name. Still, I personally am not 100% happy with it.

First, as the package intended for interactive use, it would be nice to have the name which is easy and pleasant to type, which means short enough, easy to memorize, and easy to pronounce (as it is more difficult to memorize things which your can’t pronounce). `PkgTemplatesGUI` - just try to say it aloud 😁

Second, though `PkgTemplates` is the backend, `StartYourPk` adds / going to add some functionality of it’s own (while supporting only a subset of `PkgTemplates`’s features, on the other side). Furthermore, in the future a switch to BestieTemplate.jl could be an option.

Any more ideas?

* * *

Current state: The package appears fully usable on unixes (Mac and Ubuntu), and broken on Windows. Registration presumably delayed till the next year.

**Edit:** Windows now works, too

---

<div class="post-metadata">

**Author:** ![greatpet](https://avatars.discourse-cdn.com/v4/letter/g/e495f1/32.png) [@greatpet](https://discourse.julialang.org/u/greatpet)\
**Post date:** [December 28, 2024, 8:20pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/5 "2024-12-28T20:20:18Z")

</div>

Minimal modification: **StartYourPkg** , to make the abbreviation more standard.  
And to shorten it a bit: **StartMyPkg**.

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 28, 2024, 11:01pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/6 "2024-12-28T23:01:23Z")

</div>

> [@greatpet](#):
>
> StartMyPkg

I will probably go with **StartMyPk**. Yes, `Pkg` is more standard, but less pronounceable.

---

<div class="post-metadata">

**Author:** ![togo59](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/togo59/32/4138_2.png) [@togo59](https://discourse.julialang.org/u/togo59)\
**Post date:** [December 29, 2024, 2:31pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/7 "2024-12-29T14:31:24Z")

</div>

GenMyPk  
OhMyPk 😆

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [December 29, 2024, 3:33pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/8 "2024-12-29T15:33:46Z")

</div>

> [@Eben60](#):
>
> I will probably go with **StartMyPk**. Yes, `Pkg` is more standard, but less pronounceable.

Why not **StartMyPackage** then?

---

<div class="post-metadata">

**Author:** ![\_bernhard](https://avatars.discourse-cdn.com/v4/letter/_/bc79bd/32.png) [@\_bernhard](https://discourse.julialang.org/u/_bernhard)\
**Post date:** [December 29, 2024, 3:37pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/9 "2024-12-29T15:37:16Z")

</div>

I just want to note that ‘easier to pronounce’ is highly subjective.  
In particular, to me `StartMyPkg` is infinitely easier to pronounce since I’m used to finding `Pkg` all over the place - for what it’s worth, I simply pronounce it `package`.

Whatever the name - thank you for further enriching the julia package ecosystem!

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 29, 2024, 4:15pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/10 "2024-12-29T16:15:27Z")

</div>

> [@gdalle](#):
>
> Why not **StartMyPackage** then?

Well, let it be `StartPackage` (be it my, your, our, or their 🙂)

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [December 29, 2024, 4:26pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/11 "2024-12-29T16:26:42Z")

</div>

I think that’s slightly ambiguous because it could refer to a “starting package” with some default functions for e.g. numerical computing or whatever

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 29, 2024, 4:39pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/12 "2024-12-29T16:39:45Z")

</div>

> [@gdalle](#):
>
> I think that’s slightly ambiguous

Being short, euphonic, easy to remember and to type, strongly 😉 unambiguous and informative - that is set of requirements which is not easy to satisfy all at once.

`StartNewPackage`?

---

<div class="post-metadata">

**Author:** ![Dan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dan/32/42581_2.png) [@Dan](https://discourse.julialang.org/u/Dan)\
**Post date:** [December 29, 2024, 4:39pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/13 "2024-12-29T16:39:50Z")

</div>

Do a poll

---

<div class="post-metadata">

**Author:** ![Janis\_Erdmanis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/janis_erdmanis/32/10869_2.png) [@Janis\_Erdmanis](https://discourse.julialang.org/u/Janis_Erdmanis)\
**Post date:** [December 29, 2024, 4:55pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/14 "2024-12-29T16:55:46Z")

</div>

Perhaps a simple `PkgStarter`

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 29, 2024, 5:02pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/15 "2024-12-29T17:02:41Z")

</div>

`PackageStarter` my current favorit - thank you.

But please don’t suggest me anything with `Pkg` anymore - I personally find it unpronounceable and, well, ugly - whatever the _vox populi_.

---

<div class="post-metadata">

**Author:** ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)\
**Post date:** [December 29, 2024, 5:02pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/16 "2024-12-29T17:02:42Z")

</div>

I don’t think you have to try and be cute with the name. Most names try and just be direct. Or just do what you prefer, it’s your package.

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 29, 2024, 8:49pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/17 "2024-12-29T20:49:48Z")

</div>

> [@Eben60](#):
>
> `PackageStarter` my current favorit - thank you.

Or `PackageMaker` / `PackageLauncher`

---

<div class="post-metadata">

**Author:** ![heliosdrm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/heliosdrm/32/3851_2.png) [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Post date:** [December 29, 2024, 10:50pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/18 "2024-12-29T22:50:46Z")

</div>

> [@Eben60](#):
>
> I prefer to start a (possibly throwaway) package right from the beginning instead of a project. This gives me the important advantage of having all functions, which I place into the project’s module, `Revise`-ed. I do not see any disadvantages of such a procedure as compared to a bare project. Are there any?

(Perhaps this deserves another thread, even though it is in the original post?)

I think that this question is no longer needed if a package is not presented as something different from a project, but as a _special kind_ of project - characterized by the `src` folder with a `jl` file containing a module, matching the name of the package.

Under this view, the dilemma of “project or package” is like comparing e.g. “project with or without `[compat]` section”. The package structure gives the advantages that you mention, at the (minimal) cost of adding a structure that might be superfluous if you are not going to benefit from those advantages.

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [January 2, 2025, 2:59pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/19 "2025-01-02T14:59:43Z")

</div>

The package will be renamed to `PackageMaker` (repo is already renamed), all features I planned to implement before the official release are done, now some minimal clean-up (today?), and go for registration 😓

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [January 5, 2025, 11:16pm UTC](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197/20 "2025-01-05T23:16:58Z")

</div>

PackageMaker.jl v0.1.1 is now registered, and should become available in a short time.

> ~~Compatibility limitations~~
> 
> ~~Currently may be [broken](https://github.com/Eben60/PackageMaker.jl/issues/1) if run from Julia in terminal on Ubuntu.~~ Worked however on same machine from Julia in VSCode. **Edit:** Traced to an upstream bug, implemented a workaround in `v0.1.4`
> 
> ~~Was also broken on Win10 on Julia v1.10 both from terminal and VSCode~~ , but worked fine under Julia v1.11. **Edit:** fixed
> 
> No issues on Mac 🙂.

In the plans: try solve the issues listed above. Most of of the features are already implemented, with exception of saving different sets of default settings for re-use.

And - the boring part - the documentation, tests, refactoring…

[Next page](https://discourse.julialang.org/t/ann-packagemaker-gui-for-pkgtemplates/124197.md?page=2)
